06_路由
约 1506 字大约 5 分钟
2025-10-12
1. 路由
路由(Routing)是指数据包在网络中从源主机传输到目的主机所经过的路径选择过程。当路由器从局域网(LAN)或广域网(WAN)接收到数据包时,它会根据路由表决定数据包的“下一跳”(Next Hop),即目标路由器的 IP 地址,从而实现高效转发。路由是计算机网络的核心机制,确保数据在复杂拓扑中可靠传输。
路由一般分为两大类:
- 静态路由(Static Routing)
- 动态路由(Dynamic Routing,也称自适应路由)
1.1 静态路由
静态路由是由网络管理员手动在路由器上配置的固定路由条目,路由表中的路径不会自动变化。通常适用于小型、稳定的网络环境,因为配置简单且资源消耗低。
1.1.1 静态路由的优点
- 无开销:不像动态路由需要路由器间持续交换路由信息,静态路由配置后无需额外带宽消耗,路由器仅在转发数据包时使用这些固定条目。
- 配置简单:管理员只需在路由器CLI或界面中输入命令(如
ip route),适合小型网络(如家庭或小型企业),无需复杂协议支持。 - 更安全:静态路由不涉及与其他路由器的学习或交换过程,减少了路由中毒攻击的风险,仅依赖管理员的配置。
缺点:不适应网络拓扑变化(如链路故障),需手动更新,扩展性差。
示例配置(Cisco路由器):
ip route 192.168.2.0 255.255.255.0 192.168.1.1这表示将目标网络192.168.2.0/24的流量转发到下一跳192.168.1.1。
1.2 动态路由
动态路由使用路由协议,让路由器自动发现、学习和维护路由表,能够适应网络变化(如链路中断或拓扑调整),通过路由器间交换路由信息实现自适应。动态路由适用于中大型网络,但会消耗更多CPU、内存和带宽。
动态路由协议根据工作范围和算法分为几类,主要有距离矢量(Distance-Vector)和链路状态(Link-State)两种类型。常见协议包括RIP、OSPF和BGP。
RIP(Routing Information Protocol,路由信息协议)
RIP是内部网关协议中最先广泛使用的协议,是一种距离矢量协议,使用“跳数”(Hop Count)作为度量值。RIP要求AS内的每一个路由器,都要维护自己要AS内所有其他路由器之间的距离(跳数) 表。
RIP允许一条路径上最多只能包含15个路由器,超过15就相当于不可达,因此RIP只能适用于小型互联网
| 特点名称 | 详细描述 |
|---|---|
| 和谁交换信息 | 仅和相邻路由器交换信息 |
| 交换什么信息 | 路由器自己的路由表 |
| 何时交换信息 | 周期性交换(例如,每隔约30秒)。 |
工作原理:简单广播式学习,例如在一条线性网络中(路由器A连接B,B连接C),A到C的路径跳数为2。如果B-C链路中断,C会广播“无穷跳”(16跳)通知B,B再传播给A,整个网络收敛需几轮广播(可能几分钟)
1.3 OSPF(Open Shortest Path First,开放最短路径优先)
类型:链路状态协议,所有路由器洪泛(Flood)链路状态通告(LSA)给整个区域,构建网络拓扑图,然后用Dijkstra算法计算到每个节点的成本最低路径(度量基于链路带宽,非简单跳数)。 工作原理:支持分层区域(Area 0骨干 + 子区域),变化时仅洪泛增量LSA,收敛快(<10秒)。例如,区域内链路成本=10^8/带宽(100Mbps链路成本=1000),算法优先低成本路径。 实际例子:在一个企业校园网(总部大楼A-B-C,带宽A-B=1Gbps,B-C=100Mbps),OSPF会计算A到C的最短路径:直接A-B-C(总成本≈1000),而非绕道其他链路(成本更高)。如果B-C中断,OSPF秒级洪泛LSA,A/B立即切换备用路径(如A-D-C,总成本2000)。在Cisco企业路由器上配置:router ospf 1; network 192.168.1.0 0.0.0.255 area 0,用于负载均衡多链路(如数据中心服务器集群访问)。 版本与优势:v2(IPv4)、v3(IPv6),支持认证(明文/MD5)和VLSM(可变长子网掩码)。缺点:初始洪泛多,适合中型网(数百路由器);配置需规划区域,避免“黑洞”。 协议号:IP 89。
2. 日常工作中经常要接触的路由
以给Linux机器更换IP为例,在收到要更换的IP信息: 掩码,网关等后,再实际更换之前往往还要再次确认,以免兴致冲冲的把IP换了之后,SSH直接断开。一般在正式修改网卡配置文件之前,我们都会尝试临时给某一张网卡加一个新的IP和路由,先临时测试一下。
比如现在的Linux机器 UP 的网卡名称为: ens35f1np1
- 为对应的网卡添加临时IP
ip addr add x.x.x.0/24 dev ens35f1np1- 测试到网关的连通性
ping -I 临时IP 临时IP的网关 -c 4- 测试到外网的连通性
ip route add 8.8.8.8 via 临时IP的网关 dev ens35f1np1
# 模拟数据流向,从临时IP流向来判断网络是否通畅
ping -I 临时IP -c 4 8.8.8.8- 测试完成之后的清理 上述的命令都是给机器临时添加的,如果机器重启后这些策略就会自动清除,但是我们也可以手动清理掉这些残留的测试配置
ip route del 8.8.8.8 2>/dev/null # 删除临时路由
ip addr del 临时IP dev ens35f1np1 # 删除临时IP