将特定IP路由到ppp0隧道

我觉得我已经挣扎了很长时间,需要一些帮助。

我有一个pptp隧道,并试图将目标stream量从208.85.40.20路由到pptp隧道(ppp0)。 (敏锐的观察者可能认识到ip是pandora.com的ip)。 我正在做一个路由器上的所有这些configuration…我知道它不能成功地工作,因为traceroute什么都不产生,只是astericks。

我已经粘贴了下面的相关输出:(一些“安全”编辑到地址)

root@OpenWrt:~# ifconfig br0 Link encap:Ethernet HWaddr 00:1A:92:BC:XX:XX inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:28185 errors:0 dropped:0 overruns:0 frame:0 TX packets:24936 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:4894242 (4.6 MiB) TX bytes:5941902 (5.6 MiB) eth0 Link encap:Ethernet HWaddr 00:1A:92:BC:XX:XX UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1 RX packets:51829 errors:0 dropped:0 overruns:0 frame:0 TX packets:56824 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:11490288 (10.9 MiB) TX bytes:11857913 (11.3 MiB) Interrupt:4 eth2 Link encap:Ethernet HWaddr 00:1A:92:BC:XX:XX UP BROADCAST RUNNING ALLMULTI MULTICAST MTU:1500 Metric:1 RX packets:4 errors:0 dropped:0 overruns:0 frame:15426 TX packets:9529 errors:21 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:423 (423.0 B) TX bytes:596036 (582.0 KiB) Interrupt:2 Base address:0x2000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:30 errors:0 dropped:0 overruns:0 frame:0 TX packets:30 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:2300 (2.2 KiB) TX bytes:2300 (2.2 KiB) ppp0 Link encap:Point-Point Protocol inet addr:68.68.39.250 PtP:172.16.20.1 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1400 Metric:1 RX packets:165 errors:2 dropped:0 overruns:0 frame:0 TX packets:68 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3 RX bytes:7006 (6.8 KiB) TX bytes:3462 (3.3 KiB) vlan0 Link encap:Ethernet HWaddr 00:1A:92:BC:XX:XX UP BROADCAST RUNNING ALLMULTI MULTICAST MTU:1500 Metric:1 RX packets:28182 errors:0 dropped:0 overruns:0 frame:0 TX packets:33813 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:5006544 (4.7 MiB) TX bytes:6609774 (6.3 MiB) vlan1 Link encap:Ethernet HWaddr 00:1A:92:BC:XX:XX inet addr:173.183.111.3 Bcast:173.183.111.255 Mask:255.255.224.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:23653 errors:0 dropped:0 overruns:0 frame:0 TX packets:23012 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:5522012 (5.2 MiB) TX bytes:4982944 (4.7 MiB) wds0.4915 Link encap:Ethernet HWaddr 00:1A:92:BC:XX:XX UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) wds0.4915 Link encap:Ethernet HWaddr 00:1A:92:BC:XX:XX UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) 

 root@OpenWrt:~# cat /etc/ppp/ip-up iptables -A FORWARD -t filter -i br0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -t filter -i ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.1.1/24 -d 0/0 -j MASQUERADE iptables -A forwarding_rule -o ppp0 -j ACCEPT iptables -A forwarding_rule -i ppp0 -j ACCEPT iptables -t nat -A postrouting_rule -o ppp0 -j MASQUERADE 

 root@OpenWrt:~# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 172.16.20.1 * 255.255.255.255 UH 0 0 0 ppp0 208.85.40.20 * 255.255.255.255 UH 0 0 0 ppp0 192.168.1.0 * 255.255.255.0 U 0 0 0 br0 173.183.192.0 * 255.255.224.0 U 0 0 0 vlan1 default d173-183-192-1. 0.0.0.0 UG 0 0 0 vlan1 default 192.168.1.1 0.0.0.0 UG 0 0 0 br0 

任何意见,非常感谢,我不是太好,与networking,但我很聪明在学习;-)

你可以为你的ip-up脚本做这样的事情:

 echo "route add 208.85.40.20 dev \$IFNAME" >> /etc/ppp/ip-up.local chmod 755 /etc/ppp/ip-up.local 

编辑

我看到你使用openwrt; 我不认为$ IFNAME会parsing为ppp0,ppp1等。openwrt wiki在ip-up脚本中提示$ INTERFACE:

 echo "route add 208.85.40.20 dev \$INTERFACE" >> /etc/ppp/ip-up 

EDIT2

你有没有尝试手动添加路线?

 route add 208.85.40.20 dev ppp0 route add 208.85.40.50 dev ppp0 

如果是这样,它是否显示在您的路由表中? 如果是这样,(我假设它),那么我怀疑这个问题是在你的防火墙或在PPP连接的另一端。 你可以使用tcpdump进行validation – 如果你看到stream量离开ppp0接口但是没有返回,那么很可能是ppp对等体。 如果您看不到stream量,请检查iptables设置。

 tcpdump -n ip host 208.85.40.20 

不安全的iptables进行故障排除:

 iptables -t nat -I PREROUTING -d 208.85.40.20 -j ACCEPT iptables -t nat -I PREROUTING -s 208.85.40.20 -j ACCEPT iptables -I FORWARD -s 208.85.40.20 -j ACCEPT iptables -I FORWARD -d 208.85.40.20 -j ACCEPT iptables -t nat -I POSTROUTING -s 208.85.40.20 -j ACCEPT iptables -t nat -I POSTROUTING -d 208.85.40.20 -j MASQUERADE 

我做了类似的设置,但使用两个路由器,它的工作很好。 我将第一台路由器设置为192.168.199.1,并将strongVPN路由器设置为192.168.199.2。 StrongVPN路由器有一个指向192.168.199.1的静态WAN地址作为网关。 主要路由器添加了地址的路由,它希望通过隧道出去。 例如208.85.40.20,子网255.255.255.0,网关192.168.199.2。 我使用/ 24子网,因为我认为公司可能有不同的服务器地址块。 它可以很好地工作,并且全速地处理大量的networkingstream量和隧道速度,以便通过您的主机国家服务器路由到您想要的服务。 我知道这并不是专门回答你原来的问题,但它是另一种到达那里的方式,我知道的作品。