我有两个子网从ISP路由到我的服务器。 我只有一个网关IP。 网关和我的IP地址在同一个VLAN上。 例如,netowrk 1是1.0.0.0/24,networking2是2.0.0.0/24。 两者都由我的ISP路由到eth0。 网关是1.0.0.1。 我的主机IP是2.0.0.1/24(eth0)所以我可以使用手动configuration默认网关
ip route add default dev eth0 ip route add default via 1.0.0.1
然后互联网连接正常工作。 如何在/ etc / sysconfig / network-scripts / ifcfg-eth0中configuration它?
我试图设置GATEWAY = 1.0.0.1,但它不起作用。 试图在/ etc / sysconfig / network中设置GATEWAY和GATEWAYDEV,并且它只做上面列出的第一个命令。
你真的不会find这样的支持,因为它不会通过任何健康检查。
所以,想一想。 您的计算机需要知道网关地址才能到达本地子网之外的其他计算机。 所以,如果你有一个子网10.0.1.0/24,你的机器是10.0.1.12,它将能够到达任何来自10.0.1.0-10.0.1.255的机器而不使用网关。
网关通常需要在机器的子网内,否则机器无法达到它(没有一些路由技巧,就像你正在做的那样)。 回到上面的例子,如果网关的IP为10.0.2.10,那么机器就无法到达它(为了在子网之外发送stream量,它们需要到达子网之外的网关) 。
你确定你有正确的子网掩码吗? 作为另一个例子,如果你在10.0.1.0/16中拥有一个IP地址为10.0.2.0的网关,这是完全有效的。 如果你有10.0.1.0/24和10.0.2.0的网关,这不是。 我会怀疑你的ISP给了你错误的networking掩码信息。
我已经设法自己find答案。
#cat /etc/sysconfig/network-scripts/route-eth0 1.0.0.0/24 dev eth0 default via 1.0.0.1 dev eth0
它看起来比rc.local中的行好一点,至less它与RHEL的networkingconfiguration方式有关
你不能用initscripts达到同样的结果。 以下是/ etc / sysconfig / network-scripts / network-functions的相关部分:
if [ "$GATEWAY" = "0.0.0.0" ]; then /sbin/ip route add default dev ${GATEWAYDEV} else /sbin/ip route add default via ${GATEWAY} fi
这意味着只列出你列出的两个命令中的一个,但不能同时运行。
一个更好的解决scheme是从1.0.0.0/24获取另一个IP,并将其提供给服务器上的eth0而不是2.0.0.1。 然后你有常规的设置,路由一切通过1.0.0.0/24,并使用2.0.0.0/24与完全合法的东西,如代理ARP和iptables。
如果你不能这样做,只需将两个ip route命令粘贴到/etc/rc.local中即可。
上周同样的问题。 使用ip route add...手动设置路由,并使其保持不变, ip rl > /etc/sysconfig/network-scripts/route-em1 (稍后编辑它)和voila