路由配置是网络搭建的核心技能之一,正确的路由设置可以确保不同网段之间的数据包按照预期路径传输。静态路由适用于拓扑简单的网络环境,策略路由则实现了基于源地址、端口等多种条件的灵活选路。本文以Debian 12为例,深入讲解Linux路由配置的方方面面。
▶一、路由基础概念
Linux内核维护着路由表(Routing Table),决定数据包的下一跳转发路径。每个数据包根据目标IP地址在路由表中查找匹配条目,找到对应的网关和出接口。路由优先级由管理距离(metric)决定,值越小优先级越高。默认路由(0.0.0.0/0)匹配所有未明确指定的网段。
▶二、查看与添加静态路由
# 查看当前路由表
ip route show
route -n
# 添加静态路由
ip route add 10.0.0.0/8 via 192.168.1.254 dev eth0
ip route add 172.16.0.0/12 via 192.168.1.254
# 添加默认网关
ip route add default via 192.168.1.1
# 删除路由
ip route del 10.0.0.0/8
# 添加带metric的路由
ip route add 192.168.10.0/24 via 192.168.1.100 metric 100
▶三、持久化路由配置
# CentOS/RHEL - /etc/sysconfig/network-scripts/route-eth0
10.0.0.0/8 via 192.168.1.254
172.16.0.0/12 via 192.168.1.254
# Ubuntu/Debian - /etc/network/interfaces
up ip route add 10.0.0.0/8 via 192.168.1.254 dev eth0
down ip route del 10.0.0.0/8
# 使用Netplan实现路由持久化
network:
version: 2
ethernets:
eth0:
routes:
- to: 10.0.0.0/8
via: 192.168.1.254
- to: default
via: 192.168.1.1
▶四、策略路由配置(Policy Routing)
# 创建自定义路由表
echo "100 internet" >> /etc/iproute2/rt_tables
echo "200 internal" >> /etc/iproute2/rt_tables
# 为接口添加策略路由规则
ip route add default via 8.8.8.8 dev eth0 table internet
ip route add 10.0.0.0/8 via 192.168.1.1 dev eth1 table internal
# 添加策略规则(基于源IP选路)
ip rule add from 192.168.1.0/24 table internet priority 100
ip rule add from 10.0.0.0/8 table internal priority 200
# 查看策略路由规则
ip rule show
▶五、多WAN口负载均衡
使用策略路由实现多个外网线路的负载均衡。为每条外网线路创建独立路由表,通过ip rule基于源IP或连接标记分发流量。配合iptables的connmark模块实现会话保持(同一个连接的所有数据包走同一线路),避免应用层因IP变化而中断连接。
▶六、浮动路由与主备切换
# 主备路由配置(通过metric实现)
ip route add default via 192.168.1.1 dev eth0 metric 100
ip route add default via 192.168.2.1 dev eth1 metric 200
# 路由监控脚本(主路由故障时自动切换)
while true; do
if ! ping -c 2 -W 1 192.168.1.1 > /dev/null 2>&1; then
ip route replace default via 192.168.2.1
logger "Gateway switched to backup"
else
ip route replace default via 192.168.1.1
fi
sleep 30
done
▶七、高级路由场景:VRF
VRF(Virtual Routing and Forwarding)允许在单台Linux服务器上创建多个独立的虚拟路由表,实现网络隔离。每个VRF实例拥有独立的路由表、接口和转发表,常用于多租户环境和企业网络隔离。配置需要Linux内核4.3以上版本支持。
▶八、BGP动态路由(FRR)
# 安装FRR(Free Range Routing)
apt install -y frr
# 启用BGP路由协议
sed -i 's/bgpd=no/bgpd=yes/' /etc/frr/daemons
# BGP配置示例 - /etc/frr/frr.conf
router bgp 65001
bgp router-id 192.168.1.100
neighbor 192.168.1.254 remote-as 65000
network 192.168.1.0/24
!
address-family ipv4 unicast
neighbor 192.168.1.254 activate
exit-address-family
▶九、路由故障排查工具
路由故障排查常用命令:traceroute/mtr追踪路由路径发现异常节点、ip route get验证特定IP的路由选择、ping测试连通性、telnet/nc测试端口可达性、tcpdump分析路由协议数据包。批量路由测试工具fping和hping可同时检测多个目标的连通状态。
▶十、路由安全考虑
配置路由时需要关注安全问题:启用rp_filter(反向路径过滤)防止IP欺骗、禁止ICMP重定向攻击、配置input/output链的防火墙规则限制路由协议流量、使用静态路由替代动态路由减少路由劫持风险。定期审计路由表变化,发现未授权的路由修改立即排查。
▶十一、路由聚合与路由优化
在大型网络中路由表可能非常大,路由聚合(Route Summarization)可以将多个连续的子网合并为一条路由,大幅减少路由表条目数,降低路由器CPU和内存开销。在设计IP地址规划时就考虑路由聚合,分配连续的地址段给每个区域,使替代路由可以精确聚合。合理的路由聚合还能隐藏网络拓扑细节,提升安全性。
▶十二、路由故障模拟与灾难恢复
建立路由故障的模拟测试环境,定期进行路由切换演练。模拟主链路故障验证备链路的自动切换时间和业务影响范围,测试BGP路由的收敛时间和路由黑洞的检测能力。记录每次演练的切换时间、恢复时间和业务影响范围,持续优化路由设计的健壮性和容错能力。
▶十四、路由协议安全机制配置
BGP路由劫持防护除RPKI之外还配置前缀列表和AS_PATH过滤限制合法路由范围。OSPF认证使用MD5或SHA摘要防止未授权的LSA注入路由域。配置路由协议对等体的TTL安全检查检测和阻止远程攻击者的路由篡改尝试。开启BGP的GTSM通用TTL安全机制确保只有直连邻居可以建立BGP会话。定期审查路由配置使用自动化工具检查配置一致性和潜在安全风险。
注册
登录控制台
