![对数据包使用指定网关。 (CentOS/RHEL)](https://linux22.com/image/31516/%E5%AF%B9%E6%95%B0%E6%8D%AE%E5%8C%85%E4%BD%BF%E7%94%A8%E6%8C%87%E5%AE%9A%E7%BD%91%E5%85%B3%E3%80%82%20%EF%BC%88CentOS%2FRHEL%EF%BC%89.png)
我刚刚设置了一台有两个网卡的机器,一个用于专用网络,另一个用于分配有真实IP的公共网络。
DEVICE=eth0
HWADDR=XXX
TYPE=Ethernet
UUID=XXX
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
IPADDR=172.26.111.131
NETMASK=255.255.255.128
GATEWAY=172.26.111.129
公网eth1配置如下;
DEVICE=eth1
HWADDR=XXX
TYPE=Ethernet
UUID=XXX
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
IPADDR=PUBLIC_IP
NETMASK=255.255.255.248
GATEWAY=PUBLIC_GATEWAY
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default PUBLIC_GATEWAY 0.0.0.0 UG 0 0 0 eth1
PUBLIC_NID * 255.255.255.248 U 0 0 0 eth1
link-local * 255.255.0.0 U 1002 0 0 eth0
link-local * 255.255.0.0 U 1004 0 0 eth1
172.26.111.128 * 255.255.255.128 U 0 0 0 eth0
我确信这是很容易实现的。我已经对此进行了搜索,但不知何故无法使其正常工作。该计算机仍尝试通过公共网关路由专用 IP。
我将不胜感激对此的任何想法。我哪里错了?
我只是想通过 eth0 访问 172.26.111.128/25。
答案1
我的设置
我为 eth0 设置了一个别名,以便它实际上拥有 2 个 IP 地址:192.168.1.6 和 192.168.1.254。
我在本地做了这样的事情:
ifconfig eth1:0 192.168.1.254
route add -host 192.168.1.254 dev eth1:0
这给了我一个像这样的路由表:
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.254 0.0.0.0 255.255.255.255 UH 0 0 0 eth1
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
ISP_NETWORK 0.0.0.0 255.255.240.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1
0.0.0.0 ISP_GATEWAY 0.0.0.0 UG 0 0 0 eth0
这给了我一条这样的路线:
192.168.1.254 0.0.0.0 255.255.255.255 UH 0 0 0 eth1
参考
答案2
好吧,这是我们的错。我试图 ping 一个确实不存在的主机,因此我认为网络路由不正确。感谢您的所有留言和帮助!