我有一台具有两个接口的测试服务器。对于一个接口,我分配了 ip 172.16.122.1 和 GW 172.16.xxx.xxx
现在我将电缆连接到第二个接口并为其指定 IP 10.2.2.98。
现在它们都位于不同的子网中。
那么如何在 /etc/sysconfig/network 文件中添加第二个网关。当我尝试 ping 时,它将通过哪个接口 ping 远程系统。
答案1
从技术上讲,您可以拥有多个默认网关,但这在很大程度上是核心互联网服务器、网络负载平衡器等的领域。
更常见的是需要多个路由,每个路由都有自己的路由器。
示例:您有一台计算机位于两个网络之间,如下所示:192.168.1.5/24 和 192.168.2.5/24
您使用 192.168.1.1 作为默认网关 - 这是非本地连接的任何内容的默认路由。本地连接明确定义为任何子网中的任何内容,在该子网中您拥有处于 UP/RUNNING 状态的接口,并且没有定义显式静态路由。
在此配置中,您已经拥有三个路由: 192.16.8.1.0/24 上本地所有内容的路由,网关是该子网上您自己的 IP 地址。 192.168.2.0/24 上的系统有类似的路由...最后,您有一个默认路由,即指向默认网关的“0.0.0.0”。 (某些操作系统上还有一些其他“伪”路由,例如用于访问环回设备或用于广播流量)
现在假设 192.168.2.2 有一个路由器,它提供对多个网络的访问。通常这些是“内部”网络。您现在可以将“静态路由”添加到这些网络。子网为 192.168.5.0/24 的网络示例
Linux 示例:
route add -net 192.168.5.0 netmask 255.255.255.0 gw 192.168.2.2
您可以通过一台路由器添加多个“静态”路由,或者路由可以根据需要使用任意多个路由器/网关。
您可以使用以下命令查看已知路由表
netstat -rn
Linux 特定命令将以略有不同的格式显示相同的信息。
ip route show
指定的路由器必须“知道”如何到达目标网络,否则它将转到自己的默认网关并以这种方式转发数据包。
要使此配置更改持久存在,您需要将其添加到系统配置文件中。静态路由与一个特定接口相关,因此它们不会进入 /etc/sysconfig/network。相反,这些进入位于以下位置的文件/etc/sysconfig/network-scripts/
例如:/etc/sysconfig/network-scripts/route-eth0
您可以将“via”条目添加到此文件中以用于路由。这些行的读法类似于“通过网络接口设备 Z 上的网关 Y 访问网络 X”。示例
default 192.168.1.1 dev eth0
192.168.5.0/24 via 192.168.2.2 dev eth0
192.168.6.0/24 via 192.168.2.2 dev eth0
等等。