我目前已建立两个 PPPoE 连接,第一个ppp0
(配置为默认网关)完全可用,ppp1
但第二个似乎不会将任何流量转发到“用户空间”。如果我这样做,ping -I ppp0 google.com
我会得到响应,在第二个连接上执行相同操作 -ping -I ppp1 google.com
导致明显的 100% 数据包丢失。tshark -i ppp1
同时运行会显示 ICMP Echo 请求和回复。
ping -I ppp1 google.com
PING google.com (74.125.225.142) from 1.2.3.4 ppp1: 56(84) bytes of data.
^C
--- google.com ping statistics ---
7 packets transmitted, 0 received, 100% packet loss, time 6047ms
Tshark 正在同时运行
tshark -i ppp1
Capturing on ppp1
8.358744 1.2.3.4 -> 74.125.225.142 ICMP 100 Echo (ping) request id=0x3630, seq=1/256, ttl=64
8.381235 74.125.225.142 -> 1.2.3.4 ICMP 100 Echo (ping) reply id=0x3630, seq=1/256, ttl=57
9.366481 1.2.3.4 -> 74.125.225.142 ICMP 100 Echo (ping) request id=0x3630, seq=2/512, ttl=64
9.388846 74.125.225.142 -> 1.2.3.4 ICMP 100 Echo (ping) reply id=0x3630, seq=2/512, ttl=57
我认为问题可能与防火墙规则有关,但规则是为配置的ppp+
,因此ppp0
和ppp1
应该同等对待(已确认iptables -v -L
)。
我究竟做错了什么?
答案1
在这里找到答案:http://blog.meisterbrau.org/2009/03/routing-over-multiple-ppp-accounts.html。基本上,成功建立连接是不够的,必须创建一个单独的路由表,即使第二个接口不用于路由除自身之外的任何流量。在我看来,这有点违反直觉。