CentOS 多网卡和策略路由?

CentOS 多网卡和策略路由?

我不熟悉 CentOS,我需要帮助来完成路由。我有一个带有 3 个 NIC 的 CentOS 盒子。

eth0      Link encap:Ethernet  
          inet addr:10.50.121.16  Bcast:10.50.121.255  Mask:255.255.255.0


eth1      Link encap:Ethernet  
          inet addr:10.50.128.134  Bcast:10.50.128.255  Mask:255.255.255.0

eth2      Link encap:Ethernet  
          inet addr:10.50.140.97  Bcast:10.50.140.255  Mask:255.255.255.0

eth0 是一个现有接口,它具有默认路由,我添加了 eth1 和 eth2。eth1 和 eth2 段上有网关(两者上的 .1 地址)。我需要在 eth1 和 eth2 NIC 之间建立一些网络流(通过它们各自的网关)来进行一些测试。所以我想我需要为此设置策略路由?

编辑:抱歉,我并没有说我试图在两个新接口之间路由数据包。我需要通过一些基础设施将一些数据包从 eth1 的 IP 发送到 eth2 的 IP(从而模拟 eth1 的 vlan 和 eth2 的 vlan 之间的对话)。所以我想这样做 eth1 -> eth1-vlan-router -> ??? -> eth2-vlan-router->eth2,然后能够使用反向路由进行回复。我的错,这里没有完全说清楚。

答案1

修改/etc/sysctl.conf并启用ipv4路由。

net.ipv4.ip_forward = 1

然后运行sysctl -p以应用设置。

要显示 的当前值net.ipv4.ip_forward,请使用:

sysctl net.ipv4.ip_forward

答案2

您将无法使用标准网络 API 来执行此操作。

Linux 网络堆栈使用所谓的弱宿主模型,这特别意味着分配给本地接口的任何地址都被视为本地地址。如果您尝试将数据包发送到本地接口,它将在本地循环,并且永远不会到达网络。

虽然您可能可以使用原始套接字来解决一些问题,但最好的解决方案很可能是使用第二台主机,或许可以作为虚拟机实现。

相关内容