我有一个由几台RedHat_7电脑组成的集群。 主节点连接到两个networking(内部和Internet)。 我曾经利用NAT为所有电脑提供互联网服务。
出于某种原因,这种方法现在不起作用。 NAT cmds显示如下。
sudo iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o em4 -j MASQUERADE sudo sysctl -w net.ipv4.ip_forward=1
通常,我必须添加一个默认路由,
sudo route add default gw 'my_gateway' em4
那么,我可以上网了。 但是,它只能运行几分钟,所以我必须定期执行这些命令。
路线-n得到下面:
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.10.10 0.0.0.0 UG 100 0 0 em1 0.0.0.0 XXX1 0.0.0.0 UG 101 0 0 em4 192.168.10.0 0.0.0.0 255.255.255.0 U 100 0 0 em1 XXX0 0.0.0.0 255.255.224.0 U 0 0 0 em4 XXX0 0.0.0.0 255.255.224.0 U 100 0 0 em4
和ip路由显示得到如下:
default via 192.168.10.10 dev em1 proto static metric 100 default via XXX1 dev em4 proto static metric 101 192.168.10.0/24 dev em1 proto kernel scope link src 192.168.10.10 metric 100 XXX0/19 dev em4 proto kernel scope link src MY_IP XXX0/19 dev em4 proto kernel scope link src MY_IP metric 100
如果我执行route add cmd,更改显示如下:
0.0.0.0 XXX1 0.0.0.0 UG 0 0 0 em4 default via XXX1 dev em4
几分钟后,这些变化都消失了。 我有一些疑问。
谢谢你的帮助。
编辑
这两个文件的configuration文件如下所示:
在/ etc / sysconfig / network中的脚本/的ifcfg-EM1
TYPE=Ethernet BOOTPROTO=none DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=no IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no NAME=em1 UUID=MYUUID ONBOOT=yes HWADDR=MYMAC IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPADDR=192.168.10.10 PREFIX=24 GATEWAY=192.168.10.10
在/ etc / sysconfig / network中的脚本/的ifcfg-EM4
TYPE=Ethernet BOOTPROTO=dhcp DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=no IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=no NAME=em4 UUID=MYUUID ONBOOT=yes HWADDR=MYMAC PEERDNS=yes PEERROUTES=yes
看起来你可能使用DHCP作为你的内部networking,而你的DHCPconfiguration似乎包含一个默认路由。
你的问题基本上是这两个条目:
default via 192.168.10.10 dev em1 proto static metric 100 default via XXX1 dev em4 proto static metric 101
您的em1默认路由比em4默认网关的成本稍低,这意味着通过192.168.10.10的路由更受欢迎。
对于提供与互联网连接的一个(“主”)节点,最好的办法是设置一个静态IP(主节点大概是一个网关,所以静态IP我认为是有意义的),而不使用DHCP。
你也可以在你的主节点上为DHCP创build一个主机特定的configuration,但是我怀疑使主节点静态化更简单。
sudo vi /etc/sysconfig/network
find并更改GATEWAY=xxxx
sudo service network restart
静态意味着它是由你静态设置的,而不是一些路由协议。