Networking

如何為同一子網中的第二個網路介面設置路由?

  • November 27, 2017

我在 AWS 上有兩個 EC2 實例。我將第二個網路介面附加到其中一個 EC2 實例,並將 Redhat 配置為使用新介面和 IP。

問題是我無法通過第二個 NIC ping EC2 實例。

我正在閱讀必須為此防止非對稱路由,但我沒有正確地做到這一點。我的步驟如下。

  1. 設置新網卡,因為它不會自動獲取新的 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:經過更多的Google搜尋並將頭髮從我的頭上拉出來。另一個嘗試(不工作:/)。

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

答案是為兩個介面配置路由和規則。

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進行持久設置。

引用自:https://serverfault.com/questions/885006