场景一:
主机AB得网卡1和网卡2都分别划分在VLAN1和VLAN2中,主机C在VLAN3中,VLAN1,2,3在三层交换设备上配置好网关192.168.1.1 192.168.2.1 192.168.3.1,并开启三层交换功能。
主机A的两块网卡分别IP为192.168.1.100/24 192.168.2.100/24
在网卡的配置文件中分别写入192.168.1.1 192.168.2.1作为网关
配置完成查看使用route -n路由表如下
此时通过主机C ping 192.168.1.100通, ping 192.168.2.100不通
原因为192.168.1.1这条默认网关Metric更小,选路规则决定了回包网卡。
Metric为路由指定所需跃点数的整数值,范围(1-9999)
解决方法一:
编辑网卡2的配置文件,将网卡2的网关配置去掉,重启网络服务
编辑文件/etc/iproute2/rt_tables 加入1 rt2后保存退出
终端执行以下命令
#ip route add 192.168.2.0/24 dev eno33554976 src 192.168.2.100 table rt2 指定192.168.2.100走网卡eno33554976
#ip route add default via 192.168.2.1 dev eno33554976 table rt2 指定eno33554976网卡的默认网关为192.168.2.1
#ip rule add from 192.168.2.100/32 table rt2 指定规则192.168.2.100走rt2路由表
#ip rule add to 192.168.2.100/32 table rt2
配置完成后在从主机C ping192.168.1.100 192.168.2.100
两个网卡的IP就都可以通过三层路由访问了。
如果需要开机自动生效需要将上述配置写入/etc/rc.d/rc.local中
如果需要重启网络后还能自动生效,配置文件/etc/rc.d/init.d/network
将上述命令插入start脚本的末尾处,此方法开机也会自动生效。
解决方法二:
在/etc/sysconfig/network-scripts下新建route-ib0文件,将以下内容写入,第一张网卡配置文件中写网关,第二张网卡配置文件不写网关,在终端执行以下命令指定第二张网卡网段的路由
ip route add 10.200.1.0/24 via 10.206.210.254 dev ib0
场景二:
Linux或window下两网卡两网关:
现象描述:用户的Linux服务器上现接了2个网络分别为管理跟业务网,管理网接千兆,业务网接万兆,且有各自的网关,而操作系统下,默认只能有一个默认网关,所以即使网络工程师在3层交换机配置了各自网段的网关,也会导致其中一个网不通
管理网192.1168.241.0/23 gw 192.168.241.254
业务网 192.168.251.0/24 gw 192.168.251.254
用户需求:
服务器上IP 192.168.241.0需要到192.168.241.254网关通,192.168.251.0需要到192.168.251.254通。
其他需求:
需要ping通客户端其他网段的IP。
解决方法:
汇聚或核心交换机需要将2个或其他的网关配置上,必须将业务网段同其他网段在交换机端调通。交换机端2个网段通了,客户端还是不通就需要按照配置方法,添加路由,管理网网卡配置文件写网关,业务网卡配置文件不写网关。
管理网网卡配置文件如下:
业务网网卡配置文件如下,业务网卡是双25G做的bond6:
终端执行以下命令添加路由:
#route add -net 192.168.251.0 netmask255.255.255.0 dev bond6 (指定业务网走的接口为bond6)
#route add -net 192.168.251.0 netmask255.255.255.0 gw 192.168.251.254
(192.168.251.0/24网段下一跳或网关为192.168.251.254)
业务网到其他网段通需要加以下路由
#route add -net 192.168.244.0 netmask255.255.252.0 gw 192.168.251.254 (指定192.168.244.0网段下一跳为192.168.251.254)
其他业务网段如果需要同192.168.251.0段通信,按照上述方法添加路由就行
需要注意的是:终端执行命令为临时添加,重启后失效,要求重启生效将命令加到rc.local即可