ip route add: RTNETLINK 回答:网络已关闭

ip route add: RTNETLINK 回答:网络已关闭

我对网络还很陌生,我真的搞不懂这一点。

我正在尝试添加一条静态路由,以便所有到 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 位于不同的网关上,但它尝试通过该网关进行路由,我不太确定这是否是原因,但它们肯定位于不同的网关上,而且它肯定解决了这个问题。

相关内容