admin 管理员组

文章数量: 887021

一、【背景】

一次,在业务系统接入4A测试过程中,服务器到4A平台网络不通,临时添加到4A网络的静态路由后,测试通断正常,但考虑到命令方式添加为临时性路由表,要保证下次重启后依然生效,需添加永久路由。但是添加完路由,重启网络服务后,本地客户端却无法ssh连接服务器了。

二、【分析】

1)问题出在添加路由信息文件,static-routes,且在重启网络服务后,故导致ssh无法连接的原因是该问题导致。
2)查看路由表发现,默认路由有2条信息,但是每条针对不同网卡,理论是不应该影响的。
3)查看网卡配置文件,/etc/sysconfig/network-scripts/下只有ifcfg-eth0,没有eth1文件;怀疑读路由文件到内存中,而内存中没有eth0,故连eth0无法连接;

三、【处理】

创建eth1网卡文件,配置为开机启动,DHCP获取地址,重启网络后正常。

注意:当2块网卡分别连不通网络时,将上内网的网卡地址设为静态地址,不设网关,上外网的配置网关,此时重启服务时就不会产生默认路由。

或配置文件添加参数METRIC=<优先级>(指定接口的优先级,值越小优先级越高);或直接在sysconfig目录的network(全局网络配置文件)里添加以下内容:

netstat -rn
route del default gw 默认网关地址
#然后再
route add default gw 默认网关地址 metric 10
route add -net  目标网段 gw  通过网关 dev eth1

还可以使用Linux中提供的iptables命令来更加灵活地进行路由配置,添加多个网段,示例如下:

iptables -A FORWARD -s 0/0 -d 0/0 -j ROUTE --gw 192.168.1.1
iptables -A FORWARD -s 0/0 -d 0/0 -j ROUTE --gw 192.168.2.1

其他命令操作:

ip route show  #查看当前路由表
#添加静态路由:metric参数用于设置优先级,值越小优先级越高
ip route add <目标网络> via <网关> dev <接口> [metric <优先级>]
ip route add default via <网关> dev <接口> [metric <优先级>]
#设置接口优先级:
ip route change default dev <接口> [metric <优先级>]

#nmcli配置
nmcli connection modify <连接名称> ipv4.routes "<目标网络> <网关> [metric <优先级>]"
nmcli connection modify <连接名称> ipv4.gateway <网关>
nmcli connection modify <连接名称> ipv4.route-metric <优先级>  #配置接口优先级

四、附录

4.1、网卡新增network服务启动报错:RTNETLINK answers: File exists


可能原因:

1):和 NetworkManager 服务有冲突,可直接关闭 NetworkManger 服务就好了, service NetworkManager stop,并且禁止开机启动 chkconfig NetworkManager off 或systemctl disable NetworkManager。
/
2):和配置文件的MAC地址不匹配,可手动修改 /etc/udev/rules.d/70-persistent-net.rules文件的MAC地址和 /etc/sysconfig/network-scripts/ifcfg-eth0为一致的。系统MAC地址记录在:/etc/udev/rules.d/70-persistent-net.rules。
/
3):清楚当前网络信息: ip addr flush dev eth0,然后:systemctl restart network

本文标签: 路由 双网卡