《UNIX/Linux系统管理技术手册-读书笔记-第十五章

IP路由选择

1. 分组转发详解(路由表如何工作)

1.1 核心原则

原则 说明
下一跳路由 每个系统只需决定分组到达最终目的地的下一个路由器,无需预先知道完整路径
最长前缀匹配 路由表查找时,掩码最长的匹配项优先(最具体路由优先)
默认路由(0.0.0.0/0) 无更具体匹配时使用,指向Internet出口网关
直连网络 配置接口时自动添加,网关地址为0.0.0.0(直接投递,无需路由)

1.2 路由表解读(示例网络拓扑)

场景:主机A(199.165.145.17)→ 路由器R1 → 主机B(199.165.146.4)

主机A路由表

Destination     Gateway         Genmask         Flags Iface
127.0.0.0       0.0.0.0         255.0.0.0       U     lo
199.165.145.0   0.0.0.0         255.255.255.0   U     eth0
0.0.0.0         199.165.145.24  0.0.0.0         UG    eth0
  • 默认路由指向R1(199.165.145.24)
  • 发往199.165.146.4的分组匹配默认路由 → 转发至R1

路由器R1路由表

Destination     Gateway         Genmask         Flags Iface
127.0.0.0       0.0.0.0         255.0.0.0       U     lo
199.165.145.0   0.0.0.0         255.255.255.0   U     eth0
199.165.146.0   0.0.0.0         255.255.255.0   U     eth1
0.0.0.0         199.165.146.3   0.0.0.0         UG    eth1
  • 匹配199.165.146.0/24 → 直连eth1 → 直接投递给主机B
  • 其他流量 → 默认路由指向R2(Internet出口)

主机B路由表(正确配置):

Destination     Gateway         Genmask         Flags Iface
127.0.0.0       0.0.0.0         255.0.0.0       U     lo
199.165.145.0   199.165.146.1   255.255.255.0   U     eth0
199.165.146.0   0.0.0.0         255.255.255.0   U     eth0
0.0.0.0         199.165.146.3   0.0.0.0         UG    eth0
  • 必须同时配置到145网络的静态路由(通过R1)和默认路由(通过R2)
  • 不推荐依赖ICMP重定向:重定向不可靠、增加网络负载、安全风险

1.3 IPv6路由表(示例)

Destination                     Gateway                 Flags Netif
default                         2001:886b:4452::1       UGS   re0
2001:886b:4452::/64             link#1                  U     re0
fe80::/10                       ::1                     UGRS  lo0
fe80::%re0/64                   link#1                  U     re0
  • fe80::/10 = 本地链路地址(用于OSPF等邻居发现,日常不使用

2. 路由协议分类

2.1 距离向量协议(Distance-Vector)

特点 说明
工作原理 “我离网络Y有5跳,你挨着我,所以你离Y有6跳” —— 邻居互相宣告已知路由
优点 实现简单,配置少,通用性强
缺点 收敛慢,可能产生路由环路,更新频率高(“话痨”)
代表协议 RIP(15跳限制)、EIGRP(Cisco专有)、BGP(外部路由)
特点 说明
工作原理 路由器交换连通性原始信息(“路由器X与路由器Y相邻”),各自计算完整拓扑图
优点 收敛快,支持多重路径,无环路
缺点 内存和CPU消耗大,配置复杂
代表协议 OSPF(唯一真正的链路状态协议)

2.3 成本度量(Cost Metric)

  • 跳数:最简单,每跳成本=1
  • 带宽:高速链路成本低(Cisco OSPF默认)
  • 延迟、经济成本:可自定义
  • 路径总成本 = 各链路成本之和,成本最低的路径优先

2.4 内部协议 vs 外部协议

类型 作用域 代表协议 说明
内部网关协议(IGP) 自治系统(AS)内部 RIP、OSPF、EIGRP 单一组织管理,拓扑相对可控
外部网关协议(EGP) AS之间 BGP 跨组织,需处理政策/安全/多ISP选路

3. 主要路由协议对比

协议 类型 适用规模 特点 推荐场景
RIP/RIPv2 距离向量 小型(≤15跳) 简单、通用、广播频繁 小型局域网、叶子网络
RIPng 距离向量 小型(≤15跳) RIP的IPv6版本 IPv6小型网络
OSPF(v2/v3) 链路状态 中大型(企业级) 收敛快、支持多路径、区域划分 复杂企业网络首选
EIGRP 距离向量(增强) 中大型 Cisco专有、高效、收敛快 仅Cisco设备环境
BGP 路径向量(外部) Internet骨干 策略丰富、支持数十万路由 多ISP连接、自治系统间

选型建议

  • 单出口网络 → 静态默认路由(无需动态协议)
  • 小型多路由器网络 → RIP(简单够用)
  • 大型企业网络 → OSPF(开放标准、功能完整)
  • 全Cisco环境 → EIGRP(高效,但有厂商锁定风险
  • 多ISP连接 → BGP

4. 路由协议多播协调地址

用途 IPv4 IPv6
该子网所有系统 224.0.0.1 ff02::1
该子网所有路由器 224.0.0.2 ff02::2
OSPF路由器 224.0.0.5 ff02::5
OSPF DR路由器 224.0.0.6 ff02::6
RIP路由器 224.0.0.9 ff02::9
EIGRP路由器 224.0.0.10 ff02::10

💡 这些地址是链路本地多播,不跨路由器转发,用于邻居发现和路由信息交换。

5. 路由守护进程(UNIX/Linux软件实现)

5.1 routed(过时RIP实现)

特性 说明
协议 RIP(RIPv2支持较差,不支持RIPng)
最有用模式 routed -q安静模式:只侦听更新,不广播)
特点 无需配置文件,简单但功能有限
状态 已过时,新环境建议使用Quagga

5.2 Quagga(主流多协议路由守护进程)

特性 说明
架构 核心zebra(路由信息交换中心)+ 各协议守护进程
支持的协议 RIP、RIPng、OSPFv2、OSPFv3、BGP
配置方式 各守护进程独立配置文件(/etc/quagga/)+ vtysh命令行接口
命令行风格 类似Cisco IOSenable进入特权模式,config term进入配置模式)
文档 Quagga官网有详细配置示例和FAQ

守护进程对应关系

守护进程 协议 配置文件
zebra 核心路由交换 /etc/quagga/zebra.conf
ripd RIPv2 /etc/quagga/ripd.conf
ripngd RIPng(IPv6) /etc/quagga/ripngd.conf
ospfd OSPFv2(IPv4) /etc/quagga/ospfd.conf
ospf6d OSPFv3(IPv6) /etc/quagga/ospf6d.conf
bgpd BGP /etc/quagga/bgpd.conf

基本操作

1
2
3
4
5
6
vtysh                      # 进入Quagga命令行接口
enable                     # 进入特权模式
configure terminal         # 进入配置模式
router rip                 # 启用RIP
network 192.168.1.0/24     # 宣告网络
write memory               # 保存配置

5.3 XORP(可扩展开放路由器平台)

特性 说明
目标 仿真完整专用路由器(路由+过滤+流量管理)
支持的平台 Unix、FreeBSD、macOS、Windows Server
独特功能 liveCD可直接在PC硬件上运行
定位 比Quagga更全面,但更复杂

生产建议:动态路由优先使用专用路由器(Cisco/Juniper),更可靠、更安全、性能更好。UNIX/Linux路由守护进程更适合测试网络、辅助子网、小规模场景

6. Cisco路由器基础(IOS)

6.1 访问模式

模式 提示符 功能
用户模式 router> 查看基本状态(show interfaces等)
特权模式 router# 全部配置和操作权限(需enable密码
全局配置模式 router(config)# 修改配置(需从特权模式进入)

6.2 常用命令

命令 功能
enable 进入特权模式
config terminal 进入全局配置模式
show running-config 查看当前运行配置
show startup-config 查看保存的配置
write memory 将运行配置保存到NVRAM
hostname name 设置路由器名称
interface eth0/1 配置特定接口
ip address 192.168.1.1 255.255.255.0 设置接口IP
no ip directed-broadcast 禁用定向广播(安全)
line vty 0 4 配置虚拟终端(SSH/telnet)访问

6.3 配置示例(典型企业路由器)

version 12.4
hostname acme-gw
enable secret xxxxxxxx

interface Ethernet0
 description Acme internal network
 ip address 192.108.21.254 255.255.255.0
 no ip directed-broadcast

interface Ethernet1
 description Acme backbone
 ip address 192.225.33.254 255.255.255.0
 no ip directed-broadcast

ip classless
line vty 0 4
 password xxxxxxxx
 login
end

6.4 最佳实践

实践 说明
命名路由器 hostname命令设置,防止误操作其他设备
备份配置 每晚使用scp/tftp保存运行配置
VTY访问控制 使用访问列表限制命令行访问来源IP
接口访问列表 控制进出流量
物理安全 能接触设备就能重置密码(物理安全=网络安全)
RANCID工具 每晚自动登录路由器检索配置,版本控制+差异报告

7. 路由策略选择指南

网络复杂度 推荐方案 理由
单个网络 无路由配置 无需网关
单出口网络 静态默认路由 一个出口足够,无需动态
少量网络(<5个) 静态路由 手动管理简单可维护
中等复杂网络 静态路由 + RIP被动监听 RIP只用于分发,不用于计算
大型复杂网络 OSPF 收敛快、无环路、支持多路径和区域划分
全Cisco环境 EIGRP(可选) 高效但厂商锁定
多ISP连接 BGP 政策路由、多路径选择

核心原则

  • 能用静态路由就用静态(最简单、最可控)
  • RIP适合“叶子网络”(只需接收路由信息,无需宣告)
  • OSPF是复杂网络的开放标准首选
  • BGP是多ISP环境的唯一选择

8. 本章核心命令速查表

命令/操作 功能
netstat -rn 查看路由表(全平台,数字形式)
ip route show 查看路由表(Linux推荐)
ip route add 10.0.0.0/8 via 192.168.1.1 添加静态路由(Linux)
route add -net 10.0.0.0/8 192.168.1.1 添加静态路由(FreeBSD)
routed -q 安静模式RIP守护进程(只侦听)
vtysh 进入Quagga命令行接口
enable(vtysh/IOS) 进入特权模式
configure terminal(vtysh/IOS) 进入配置模式
write memory(IOS) 保存配置到NVRAM
show running-config(IOS) 查看当前配置

DBA视角补充

  • 数据库服务器路由配置:生产数据库通常只需静态默认路由(指向核心交换机/边界路由器)。只有在数据库需要跨多个子网/数据中心复制时,才需考虑动态路由或静态路由表补充。
  • 跨AZ/跨地域数据库复制:云环境中的VPC路由表(AWS/GCP)取代了传统动态路由协议。DBA需理解VPC路由表、对等连接、VPN网关的配置,确保数据库复制流量走私有路径(避免公网流量费用和安全风险)。
  • 网络分区与数据库可用性:在网络分区(网络分裂)场景下,动态路由协议可自动切换路径,避免数据库集群完全失联。但在云环境中,多AZ部署是更常见的容错方案。
  • 排查数据库连接超时:若应用连接数据库偶尔超时,检查路由表是否正确(尤其多子网环境),使用traceroute确认路径,用mtr持续监控丢包率。
  • BGP与多ISP:若数据库需对外提供公网服务(如云数据库公网访问),且使用了多条ISP链路,需配置BGP实现链路冗余和负载均衡。但这通常由网络团队负责,DBA只需理解其对数据库连接的影响。