我对网络还很陌生,我真的搞不懂这一点。
我正在尝试添加一条静态路由,以便所有到 aa.aa.aa.aa 的流量都通过 eth0:0 接口
root@LSW-199:~# ifconfig
eth0 Link encap:Ethernet HWaddr 80:c1:6e:6f:f8:68
inet addr:xx.xx.xx.xx Bcast:xx.xx.xx.xx Mask:255.255.255.224
inet6 addr: fe80::82c1:6eff:fe6f:f868/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:93598294 errors:0 dropped:0 overruns:0 frame:0
TX packets:95074908 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:23532770742 (23.5 GB) TX bytes:27395117749 (27.3 GB)
Memory:c0400000-c0420000
eth0:0 Link encap:Ethernet HWaddr 80:c1:6e:6f:f8:68
inet addr:bb.bb.bb.bb Bcast:xx.xx.xx.xx Mask:255.255.255.192
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Memory:c0400000-c0420000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:107 errors:0 dropped:0 overruns:0 frame:0
TX packets:107 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:9416 (9.4 KB) TX bytes:9416 (9.4 KB)
eth0:0 肯定可以正常工作,因为当我使用 cURL 测试时,它可以成功使用该设备并且 IP 是正确的:
root@LSW-199:~# curl --interface eth0:0 api.ipify.org
bb.bb.bb.bb
但是当我尝试添加静态路由时收到以下错误消息:
root@LSW-199:~# ip route add aa.aa.aa.aa via bb.bb.bb.bb
RTNETLINK answers: Network is down
我已尝试过service networking restart
,但ifconfig eth0:0 down/up
没有成功。
有任何想法吗?
答案1
好吧,在实际尝试了一些之后......
ip addr add aa.aa.aa.aa/24 dev eth0 label eth0:0
ip addr add dd.ad.aa.aa/27 dev eth0 label eth0:1
ip addr add gg.gg.gg.gg/14 dev eth0 label eth0:2
ip addr add 9.23.23.23/8 dev eth0 label eth0:3
一切很好,我的机器认为它现在在 IBM 的 /8 上。
但实际上 无功能差异我可以看到 eth0、eth0:0、eth0:1、eth0:2、eth0:3 之间。 “ip route” 和 “netstat -nr” 不区分接口,它们都报告 eth0。(尽管 route 和“ip route”将接受 eth0:X 别名标签作为 dev 参数)。“tcpdump -ni eth0”和“tcpdump -ni eth0:2”发送和接收相同的流量……但是,如果我这样做
ip route replace to 9.23.23.23/8 src dd.ad.aa.aa dev eth0:1
我对 9.23.23.23.2 的 ping(未成功)现在似乎来自我的别名 IP dd.ad.aa.aa。如果我没记错的话,这正是你在我用一堆不相关的错误想法分散你的注意力之前试图完成的事情。
我希望这有帮助。
答案2
我通过在路由命令中添加网关解决了这个问题。
route add -net aa.aa.aa.aa netmask 255.255.255.255 gw 199.115.112.190 dev eth0:0
我认为原因是 eth0:0 与 eth0 位于不同的网关上,但它尝试通过该网关进行路由,我不太确定这是否是原因,但它们肯定位于不同的网关上,而且它肯定解决了这个问题。