如何为同一子网中的第二个网络接口设置路由?

如何为同一子网中的第二个网络接口设置路由?

我在 AWS 上有两个 EC2 实例。我将第二个网络接口连接到其中一个 EC2 实例,并将 Redhat 配置为使用新的接口和 IP。

问题是我无法通过第二个 NIC ping EC2 实例。

我读到过,必须防止非对称路由,但我没有正确做到这一点。我的步骤如下。

1) 设置新的 NIC,因为它不会自动获取新的 IPv4。

cd /etc/sysconfig/network-scripts/
cat ifcfg-eth0 > ifcfg-eth1

eth1 配置如下所示。

BOOTPROTO=dhcp
DEVICE=eth1
HWADDR=02:d9:f6:0e:09:00
ONBOOT=yes
TYPE=Ethernet
USERCTL=no
IPADDR=192.168.125.232

ifdown eth1
ifup eth1

ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 9001
        inet 192.168.125.247  netmask 255.255.255.224  broadcast 192.168.125.255
        inet6 fe80::3d:5cff:fef4:f5a8  prefixlen 64  scopeid 0x20<link>
        ether 02:3d:5c:f4:f5:a8  txqueuelen 1000  (Ethernet)


eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 9001
        inet 192.168.125.232  netmask 255.255.255.224  broadcast 192.168.125.255
        inet6 fe80::d9:f6ff:fe0e:900  prefixlen 64  scopeid 0x20<link>
        ether 02:d9:f6:0e:09:00  txqueuelen 1000  (Ethernet)

[...]

route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.125.225 0.0.0.0         UG    100    0        0 eth0
0.0.0.0         192.168.125.225 0.0.0.0         UG    101    0        0 eth1
192.168.125.0   0.0.0.0         255.255.255.0   U     100    0        0 eth1
192.168.125.224 0.0.0.0         255.255.255.224 U     100    0        0 eth0
192.168.125.224 0.0.0.0         255.255.255.224 U     101    0        0 eth1

2)尝试像这样设置非对称路由。

ip route add default via 192.168.125.225 dev eth0 tab 1
ip route add default via 192.168.125.225 dev eth1 tab 2

ip rule add from 192.168.125.247/24 tab 1 

一旦运行上述命令,我就会与实例断开连接,并且无法通过 SSH 重新连接。此后,我只需重新创建实例即可。

我从来没有设法运行我认为需要的最后一个命令。

ip rule add from 192.168.125.232/24 tab 2

我遗漏了什么?如何正确设置我的设置路由?

编辑#1:尝试使用新的 IP 地址将不会起作用。

ip route add 192.168.125.224/27 dev eth0 table t1
ip route add 192.168.125.224/27 dev eth1 table t2
ip route add default via 192.168.125.225 dev eth0 table t1
ip route add default via 192.168.125.225 dev eth1 table t2

ip rule add from 192.168.125.243/27 table t1 priority 100
ip rule add from 192.168.125.232/27 table t2 priority 200
ip route flush cache

禁用源/目标检查的解决方法有效但这不是我真正想要的。

编辑#2:经过更多的谷歌搜索,我的头发都快掉光了。又试了一次(没用 :/)。

ip route add default via 192.168.125.225 dev eth0 table t1
ip route add default via 192.168.125.225 dev eth1 table t2

ip rule add from 192.168.125.243/32 table t1 priority 100
ip rule add from 192.168.125.232/32 table t2 priority 200
ip route flush cache

答案1

答案是为两个接口配置一条路由和一条规则。

echo 100 t1 >> /etc/iproute2/rt_tables
echo 101 t2 >> /etc/iproute2/rt_tables

ip route add default via 192.168.125.225 dev eth0 table t1
ip rule add from 192.168.125.243/32 table t1 priority 100

ip rule add from 192.168.125.232/32 table t2 priority 200
ip route add default via 192.168.125.225 dev eth1 table t2

可以添加 ip 命令/etc/rc.d/rc.local以实现持久设置。

相关内容