为redhat永久添加默认路由

我有一个由几台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 

几分钟后,这些变化都消失了。 我有一些疑问。

  1. 为什么默认路由在一段时间之后被删除?
  2. ip route show中静态标签是指什么?
  3. 如何解决整个问题?

谢谢你的帮助。

编辑

这两个文件的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 

静态意味着它是由你静态设置的,而不是一些路由协议。