【问题标题】:Disable linux internal route?禁用linux内部路由?
【发布时间】:2016-10-01 07:46:41
【问题描述】:

我有一个带有 2 个 NIC(eth0,eth1)的系统,我用电缆将它们从外部连接
(使用交叉电缆或将它们连接到同一个交换机)。

我想 ping eth1来自 eth0 的 IP 地址,我想通过外部(通过电缆)从 eth0 到 eth1 进行流量传递,但 linux 内核在内部发送流量并且不允许它通过电缆传递,

我该如何解决这个问题和向外部发送流量? 我将 ping 与“-I eth0”一起使用,但问题存在。

【问题讨论】:

  • @hek2mgl 与您的代表,我希望您也提交了一个近距离投票,而不仅仅是进行微不足道的标题编辑。
  • @Alnitak 我认为这个问题很有趣,但你是对的,它更适合 serverfault.com。也许有人甚至可以在谷歌上找到答案? :) 我从来没有搜索过这个......

标签: linux networking ping nic


【解决方案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

【讨论】:

    【解决方案2】:

    首先,至少在不同 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) 上要简单得多:)

    【讨论】:

      猜你喜欢
      • 2021-05-07
      • 2020-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-13
      • 1970-01-01
      • 2015-02-21
      相关资源
      最近更新 更多