服务器路由表配置的核心在于根据网络拓扑规划静态路由,通过route、ip route或netsh命令将特定网段流量指向对应网关,确保多网卡或跨网段通信的精准转发。
路由表基础与核心概念
咱们在搞服务器网络配置时,路由表就是那张”交通指挥图”,数据包从服务器发出去,到底走哪个网卡、去往哪个网关,全靠这张表来指路,理解路由表,是搞定所有复杂网络架构的前提。
路由表到底在管什么
路由表本质上是一组规则集合,每条规则都明确告诉操作系统:遇到去往某个目标IP段的数据包,应该怎么处理,业内专家指出,合理规划路由表能有效降低网络延迟并避免非对称路由问题,一条完整的路由表项通常包含以下几个核心要素:
- 目标网络:数据包想要到达的IP网段,比如192.168.1.0/24。
- 子网掩码:决定了目标网络的范围,比如255.255.255.0。
- 网关:数据包下一跳要交给谁,通常是同网段的路由器接口IP。
- 接口:数据包从服务器的哪块网卡发出去,比如eth0或ens32。
- 度量值:当有多条路径到达同一目标时,系统会选度量值最小的那条走。
路由匹配遵循最长掩码匹配原则,比如服务器要去访问192.168.1.100,路由表里同时有192.168.0.0/16和192.168.1.0/24两条记录,系统会精确匹配后者,因为掩码越长,匹配越精确。
Linux和Windows路由表配置区别
不同操作系统在路由表管理和配置命令上存在明显差异,近年来,随着混合架构数据中心的普及,运维人员经常需要跨平台操作,下面这张表对比了两大系统的常见操作:
| 操作维度 | Linux系统命令 | Windows系统命令 |
|---|---|---|
| 查看路由表 | ip route show |
route print |
| 添加临时路由 | ip route add 目标网段 via 网关 |
route add 目标网段 mask 掩码 网关 |
| 删除路由 | ip route del 目标网段 |
route delete 目标网段 |
| 永久生效配置 | 写入网卡配置文件或Netplan | route add -p 或 netsh |
Linux系统习惯把一切视为文件,路由配置也能通过修改配置文件实现永久生效;而Windows更依赖命令行工具和注册表,图形化界面操作也相对完善。
双网卡服务器路由表配置实例
在实际业务中,双网卡服务器是最常见的需要手动配置路由表的场景,比如一台服务器同时连接着公网和内网管理网,如果不配路由表,系统很可能把内网流量往公网网关发,导致管理不通。
场景描述与网络规划
假设咱们有一台业务服务器,装了两块网卡,eth0接公网,IP是114.114.114.10,网关114.114.114.1;eth1接内网,IP是10.0.0.10,网关10.0.0.1,内网还有个10.0.1.0/24的独立业务网段,需要通过这台服务器访问。
多数情况下,系统默认只会配置一个默认网关,如果默认网关指向公网,那么去往10.0.1.0/24的数据包就会被扔给公网路由器,直接导致丢包,这时候就得手动加一条静态路由,让去往10.0.1.0/24的数据包乖乖从eth1走。
Linux环境实操步骤
在Linux环境下,配置路由表非常直接,以CentOS 7和Ubuntu 20.04为例,咱们分步搞定。
查看当前路由状态
敲入命令看看当前的路由表长啥样:
ip route show
输出结果里会有一条default via 114.114.114.1 dev eth0,这就是默认路由,如果没看到去往10.0.1.0/24的记录,说明内网跨网段不通。
添加临时静态路由
临时加一条路由,重启网卡或重启系统就会失效,适合测试用:
ip route add 10.0.1.0/24 via 10.0.0.1 dev eth1
这条命令的意思是:去往10.0.1.0/24网段的数据,统一交给10.0.0.1这个网关,并且从eth1网卡发出去,敲完之后,用ping 10.0.1.x测试连通性。
配置永久生效路由
测试通了,咱们得让它永久生效,不同Linux发行版方法不同。
对于CentOS/RHEL系统,直接编辑网卡配置文件,新建或编辑/etc/sysconfig/network-scripts/route-eth1文件,写入:
0.1.0/24 via 10.0.0.1 dev eth1
保存后重启网络服务systemctl restart network即可。
对于Ubuntu系统,则需要编辑/etc/netplan/目录下的yaml文件,在eth1的配置块下加入路由段:
routes:
- to: 10.0.1.0/24
via: 10.0.0.1
保存后执行netplan apply生效。
Windows环境实操步骤
Windows服务器的配置逻辑和Linux类似,只是命令换了张皮,咱们同样以双网卡场景为例。
使用route命令配置
打开CMD或PowerShell,以管理员身份运行,先查看现有路由:
route print
在IPv4路由表里,找到0.0.0.0对应的默认路由,确认网关指向公网,接着添加去往内网的静态路由:
route add 10.0.1.0 mask 255.255.255.0 10.0.0.1
这条命令末尾如果不加参数,默认会匹配最合适的网卡,如果想强制指定从某块网卡走,可以加上网卡接口索引号(Interface List里的十六进制数字):
route add 10.0.1.0 mask 255.255.255.0 10.0.0.1 if 12
永久路由设置
上面敲的命令重启后会消失,加个-p参数就能写进注册表,实现永久生效:
route -p add 10.0.1.0 mask 255.255.255.0 10.0.0.1
配置完成后,再次执行route print,在”持久路由”(Persistent Routes)列表里就能看到咱们刚加的条目了。
进阶场景:北京机房多线服务器路由策略
当业务规模扩大,很多企业会选择在北京、上海等地的多线机房托管服务器,这时候网络环境就复杂了,往往涉及电信、联通、移动多条专线,单靠简单的静态路由表就玩不转了,得引入策略路由。
策略路由的引入
行业共识认为,在多线BGP网络环境下,基于源地址的策略路由是解决跨网延迟和丢包的有效手段,假设北京机房的服务器有两根专线:电信1.1.1.10/24和联通2.2.2.10/24,默认路由指向电信网关1.1.1.1,这就导致联通用户访问服务器时,回包走了电信线路,造成跨网绕行,延迟极高。
策略路由的核心逻辑是:根据数据包的源IP地址,决定它下一跳走哪个网关,源IP是联通的,就走联通网关;源IP是电信的,就走电信网关。
策略路由配置命令
在Linux系统里,咱们用ip rule和ip route组合来实现。
创建自定义路由表
给联通线路单独建一张路由表,编辑/etc/iproute2/rt_tables文件,在末尾加一行:
100 unicom
这里的100是路由表的编号,unicom是自定义名称。
添加默认网关到自定义表
给这张新表设置默认网关,指向联通的网关:
ip route add default via 2.2.2.1 dev eth1 table 100
这条命令的意思是,在编号为100的路由表里,默认路由走2.2.2.1这个联通网关。
设置策略规则
最关键的一步,告诉系统什么样的数据包用这张表:
ip rule add from 2.2.2.10 table 100
命令解析:凡是源IP是2.2.2.10(服务器联通网卡IP)的数据包,统统查编号100的路由表,这样一来,联通用户请求进来,服务器回包时源IP是2.2.2.10,就会去查table 100,从而把回包扔给联通网关,完美解决跨网绕行问题。
为了让这条规则永久生效,同样需要写入网卡配置文件或启动脚本中,CentOS系统可以写在/etc/sysconfig/network-scripts/rule-eth1里:
from 2.2.2.10 table 100
路由表配置的避坑指南
配置路由表看似简单,但实操中踩坑的运维人员不在少数,据统计,相当一部分服务器网络故障是由路由配置不当引起的,下面列几个高频坑点。
默认网关冲突问题
多网卡服务器最容易犯的错,就是给每块网卡都配了网关,比如eth0配了公网网关,eth1也配了内网网关,系统在启动时,往往会根据网卡启动顺序或路由度量值,随机选一个作为默认网关,这就导致网络时通时断。
正确做法:只在连接公网的主网卡上配置网关,其他所有网卡配置文件里的GATEWAY字段全部删掉或留空,内网网段全靠手动添加静态路由来打通。
永久生效配置遗漏
很多人在命令行敲了ip route add或route add,测试通了就以为搞定了,结果服务器一重启,业务直接挂掉,急得满头大汗,Linux的ip命令和Windows不带-p的route命令,都是临时生效的,只存在于内存中。
正确做法:测试通过后,立刻把命令写入持久化配置文件,Linux写入/etc/sysconfig/network-scripts/route-<接口名>或Netplan配置,Windows务必加上-p参数。
掩码匹配错误
有时候咱们想配一条到达单个IP的路由,结果掩码写错了,导致整个网段流量走偏,比如想配0.1.100,结果写成0.1.0 mask 255.0.0.0,这下好了,整个10.0.0.0/8网段的流量全被牵引走了。
正确做法:主机路由必须用32位掩码,Linux下可以直接写ip route add 10.0.1.100/32 via 10.0.0.1,Windows下写route add 10.0.1.100 mask 255.255.255.255 10.0.0.1。
路由表配置没有一劳永逸的模板,必须结合实际网络拓扑进行测试与验证,才能保障服务器网络的高可用性。
服务器路由表配置实例常见问题
服务器静态路由怎么配置?
服务器静态路由配置主要分两步,第一步使用命令添加临时路由,Linux使用ip route add 目标网段/掩码 via 网关 dev 网卡名,Windows使用route add 目标网段 mask 掩码 网关,第二步将路由写入配置文件实现永久生效,Linux需修改网卡配置文件或Netplan,Windows需在route命令后加-p参数。
配置路由表后网络不通怎么排查?
排查路由不通问题需遵循从本机到远端的顺序,首先使用ip route show或route print检查路由表是否生效且指向正确网关,其次使用ping命令测试网关连通性,最后使用traceroute或tracert命令追踪路径,观察数据包在哪一跳被丢弃,多数情况下,问题出在网关设备拒绝Ping或网段掩码配置错误。
路由表中的Metric度量值有什么作用?
Metric度量值用于当到达同一目标网络存在多条路由时决定优先级,系统会选择Metric值较小的路由进行数据转发,在多网卡或多网关环境中,可以通过设置不同的Metric值实现主备路由或负载均衡。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/568757.html




