我有一个centos7
具有 4 个接口和 2 个网关、2 个网络范围的操作系统。一个接口有自己的网关并且可以工作,没有问题。
其他 3 个接口应该使用单个网关,但只有其中一个能够看到/ping 网络。
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=enp2s0
DEVICE=enp2s0
ONBOOT=yes
PROXY_METHOD=none
BROWSER_ONLY=no
IPV6INIT=no
IPADDR=10.8.8.53
NETMASK=255.255.255.192
GATEWAY=10.8.8.3
DNS1=4.2.2.4
其他 3 个接口的配置如下:
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=enp3s0
DEVICE=enp3s0
ONBOOT=yes
PROXY_METHOD=none
BROWSER_ONLY=no
IPV6INIT=no
IPADDR=10.8.8.200
NETMASK=255.255.255.192
DNS1=4.2.2.4
ip route add 10.8.8.192/26 dev enp3s0 src 10.8.8.200 table rt3
ip route add default via 10.8.8.195 dev $device table rt4
ip rule add from 10.8.8.200/26 table rt3
ip rule add to 10.8.8.200/26 table rt3
另外两个接口的设备名称和ip是:
enp4s0 => 10.8.8.200
enp5s0 => 10.8.8.201
命令如下ip route show
:
default via 10.8.8.3 dev enp2s0 proto static metric 100
10.8.8.192/25 dev enp2s0 proto kernel scope link src 10.8.8.51 metric 100
10.8.8.192/26 dev enp5s0 proto kernel scope link src 10.8.8.201 metric 103
10.8.8.192/26 dev enp4s0 proto kernel scope link src 10.8.8.200 metric 104
10.8.8.192/26 dev enp3s0 proto kernel scope link src 10.8.8.199 metric 105
我曾尝试设置DEFROUTE=no
,我曾尝试rt
对所有接口使用相同的名称。
我需要所有接口(enp3s0
,,enp4s0
)enp5s0
能够拥有 10.8.8.195 的网关。
答案1
ip rule add from 10.8.8.200/26 table rt3
该/26
部分告诉机器它应该使用与接收接口相同的网络掩码发送结果。
我们刚刚编辑了这部分并将其更改为/32
代表接收它的相同接口和 IP。
或255.255.255.255
表示/32
只能分配一个主机,它是机器的当前 IP。
我不知道如何或为什么,但它解决了这个问题并且我的路由现在已经修复。
ip rule add from 10.8.8.200/32 table rt3
ip rule add to 10.8.8.200/32 table rt3