服务器企业版多网卡情况下默认路由或静态路由配置管理方案

服务器企业版多网卡情况下默认路由或静态路由配置管理方案

应用场景

OS版本信息:服务器企业版
软件信息:NetworkManager管控下的默认路由静态路由管理
重点:对默认路由静态路由的操作永久生效
场景:在客户生产环境中,经常会遇到通过多网卡来分别处理内外网业务的场景,而在检查路由的时候会发现存在多条默认路由,这时路由设置至关重要,稍有不慎就会出现网络不通或网络服务起不来的情况。
如图为多网卡情况下,存在多个默认路由的情况

使用nmcli管理默认路由或静态路由

通过nmcli配置的默认路由或静态路由为永久生效的,即网络或系统重启后依然存在

  1. 允许自动添加默认路由
  2. nmcli con modify conn_name ipv4.never-default no #默认情况下,该参数即为no,也就是会为该网卡自动添加0.0.0.0的默认路由
  3. nmcli con up conn_name #使配置生效
  1. 禁止自动添加默认路由
  2. nmcli c modify conn_name ipv4.never-default yes #设置为yes,将不会为该网卡自动添加0.0.0.0的默认路由
  3. nmcli c up conn_name #使配置生效

  1. 添加静态路由
  2. nmcli c modify conn_name [+]ipv4.routes 'ip/prefix gateway' #ipv4.routes前的有‘+’作为前缀或无前缀,表示add
  3. 删除静态路由
  4. nmcli c modify conn_name -ipv4.routes 'ip/prefix gateway' #ipv4.routes前面有‘-’作为前缀,表示remove

路由表常用操作汇总

查询路由表
route -n
ip route #和以下两个带参数的查询效果一模一样
ip route show
ip route list

删除路由(网卡重启后会自动恢复)
使用route删除
route del -net ip netmask mask
使用ip route删除
ip route del default via 192.168.3.1
删除路由(永久生效)
使用nmcli删除
(无法删除默认路由和系统自动生成的其他直连路由,只可删除一般的静态路由)
nmcli c modify connection_name -ipv4.routes ‘172.16.3.0/24 172.16.3.1’

禁止NetworkManager自动添加静态路由
ipv4.never-default yes
nmcli c modify connection_name ipv4.never-default yes

一个此类问题解决方案案例

问题现象

以下现象只是众多问题中的一个,本文针对的应该是更广泛的多网卡的使用情景,大家参考时不要被此应用场景所限定

  1. 环境 Huawei TaiShan 200K 1030版。
  2. 步骤 服务器多网卡,连接四条网线,12进行了bond1的绑定,34口单独进行使用,配置完成后对网络管理服务(networking/NetworkManager二者都有尝试)进行重启。
  3. 结果 网络管理服务重启失败。
问题分析

经分析定位后发现,用户在网络配置中添加了多个默认路由,此时用户的路由是由多个网关出去,但是不知道是从哪个MAC发的包,导致服务起不来

解决方案

提供的解决方案:

  1. 通过注释掉用户配置中多的gateway
  2. route delete -net ip netmask mask 删除已存在的默认网段
  3. 重启networking服务网络服务启动正常
  4. 如果需要重新让其他网络生效,就意味着重新添加一条这个网段的临时路由 ,需要做到开机自启动就把这个临时路由写到rc.local里面就可以了
    • 此方案的不足:
      实际管理配置中,以上这种方式并不友好,甚至经常会出现设置不生效的情况,
    • 推荐方案:
      从源头上禁用掉不需要的默认路由,然后再进行逐步配置
      1 分析多网卡应用的具体场景,找到每个网卡对应的connection的通讯范围及工作的网段
      2 根据上面的分析,对于工作网段涉及范围最小的connection(例如connc3),设置禁止系统自动添加默认路由,然后重启该网卡
      nmcli connection modify connc3 ipv4.never-default yes #禁止nm为此连接自动添加默认路由
      nmcli c modify connc3 +ipv4.routes 'ip/prefix gateway' #给指定的网段添加静态路由,此中方式添加的在重启后依然生效,注意路由表要使用引号
      nmcli c up connc3 #重启该连接使配置生效
      其他的网卡也按这种方式逐一设置,只保留网络活动范围最大的网卡的默认路由
posted @   云中看世界  阅读(1586)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
点击右上角即可分享
微信分享提示