禁用linux内部路由?

时间:2016-10-01 07:46:42

标签: linux networking ping nic

我有一个带有2个NIC(eth0,eth1)的系统,我用外部电缆连接它们(使用corssover电缆或将它们连接到同一个开关)。

我想要从eth0 ping eth1 ip地址我希望从eth0到eth1从外部(通过电缆)传输流量,但linux内核在内部发送流量而不允许它通过电缆,
我如何解决这个问题并在外部发送流量? 我使用ping" -I eth0"但问题存在。

2 个答案:

答案 0 :(得分:1)

问题不在于VRF,而是在内核检测到它时使用的环回可以使用它而不是通过线路发送。

让我们使用真实的MAC地址和虚拟IP 地址和NAT来强制内核通过网络发送数据:

arp -s IP0 MAC0
arp -s IP1 MAC1
ip route add IP0 dev eth1
ip route add IP1 dev eth0
iptables -t nat -A POSTROUTING -d IP1 -j SNAT --to-source IP0
iptables -t nat -A POSTROUTING -d IP0 -j SNAT --to-source IP1
iptables -t nat -A PREROUTING -d IP0 -j DNAT --to-destination IP0
iptables -t nat -A PREROUTING -d IP1 -j DNAT --to-destination IP1

答案 1 :(得分:-1)

首先,奴役不同VRF上的至少一个接口然后尝试ping -l eth0 dest

Linux上有关VRF的一些有用资源:

https://www.kernel.org/doc/Documentation/networking/vrf.txt

https://renard.chezwam.org/blog/2014/09/vrf-on-linux/index.html

PS:它在BSD(rdomain)上简单得多:)