Networking
如何為同一子網中的第二個網路介面設置路由?
我在 AWS 上有兩個 EC2 實例。我將第二個網路介面附加到其中一個 EC2 實例,並將 Redhat 配置為使用新介面和 IP。
問題是我無法通過第二個 NIC ping EC2 實例。
我正在閱讀必須為此防止非對稱路由,但我沒有正確地做到這一點。我的步驟如下。
- 設置新網卡,因為它不會自動獲取新的 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
進行持久設置。