IP 转发原理
路由器工作在 OSI 模型中的第三层,也就是网络层。路由器通过逻辑的地址(IP 地址)来划分区别不同的网络,实现网络之间的互联和隔离,并且路由器不转发广播消息,把广播消息限制在各自区域的网络中,发送到其他网络的数据先被发送到路由器,再由路由器转发出去。
路由器的核心是全局路由表,通过路由器的所有数据转发都要经过全局路由表来实现。路由是指导 IP 报文发送的路径信息,是报文从源端到目的端的整条传输路径。
路由有两个基本功能:路由决策和报文转发。
路由决策:当报文从路由器到达目的网段有多条路由可达时,路由会进行决策,选择出最优的路由放入到路由表中。最优的路由选择与路由协议的优先级,与路由协议使用的不同度量值有关。
报文转发:路由器可以根据路由表中最优的路由进行数据转发。路由器会首先查找路由表,判断是否有去往该目的网络的路由,通常情况下会丢弃数据。反之,根据路由表中的相应表项发送数据到目的网络。
路由协议概述
路由器使用一些路由协议来构建路由表。路由协议是路由器之间交互信息的一种语言,共享网络状态和网络可达性的一些消息,创建和维护路由表,提供最佳转发路径。
根据来源不同,路由表中的路由通常分为 3 类:
通过链路层协议发现的路由(也称为接口路由或直连路由),不需要配置。
通过由网络管理员手工配置的静态路由。
通过动态路由协议发现的路由(比如 RIP、OSPF、IS-IS、BGP等)。
动态路由协议适用于网络拓扑结构十分复杂,手工配置静态路由工作量大,而且容易出现错误。这时,就可用动态路由协议,通过它们各自的路由算法,让其自动发现和修改路由,无须人工维护,但动态路由协议开销大,配置复杂。动态路由协议中较为常用的就是 RIP、OSPF 了。
RIP 基本原理及配置
作为一种动态路由协议,RIP 协议定义了两种报文类型:请求报文(Request)和响应报文(Response)。请求报文是用来向邻居发送“请求更新”,而响应报文用来发送路由更新。
启用 RIP 之后,它将向相邻的路由器发送 Request 报文用来请求邻居所包含的路由,邻居收到 Request 报文后,把自身包含的 RIP 协议中学习到的路由表封装在 Response 报文中向对应接口广播。对方提取 Response 报文中的路由表项(网络前缀、度量值等),以此类推形成最终的 RIP 路由表。
RIP 协议使用单一的“跳数”(Hop)来度量网络的优劣,一跳表示与发出通告的路由器相直连的网络,每经过一个路由器(或网络)跳数加一。RIP 协议的最大可用跳数为 15 跳,而到达 16 跳时网络将不可达,不会被放入路由表。RIP 的路由选择以最小跳数为原则。在华为设备上,RIP 协议的优先级(Preference)为 100。
RIP 配置实例:
PC1:
1 | IP地址:192.168.1.2 掩码:255.255.255.0 网关:192.168.1.1 |
PC2:
1 | IP地址:192.168.2.2 掩码:255.255.255.0 网关:192.168.2.1 |
R1:
1 | [R1]int g0/0/0 |
R2:
1 | [R2]int g 0/0/0 |
配置完成后,PC1应能访问另一网段的PC2。
OSPF 基本原理及配置
OSPF 是基于链路状态算法的IGP内部网关路由协议。在同一个区域内的所有路由器交换 LSA 链路状态通告,构建 LSDB 链路状态数据库,每台路由器以本路由器为根,基于 LSDB 执行 SPF 算法,生成 SPF 树,计算到每个目的地的最短路径,产生路由表。
OSPF 的特点:
支持 CIDR:
在发布路由信息时携带子网掩码信息,使得路由信息不再局限于有类网络。
支持区域划分:
允许自治系统内的网络被划分成区域来管理。
无路由自环:
支持区域划分,所以区域内部的路由器都使用 SPF 最短路径算法,保证了区域内部无环路。
路由变化收敛速度快:
OSPF 被设计为触发式更新方式,且对拓扑变化敏感,因此路由收敛速度会加快。
使用IP组播收发协议数据:
使用组播和单播收发协议数据,因此网络占用更小。
支持多条等值路由:
当到达目的地有多条等值开销路径时,流量被均衡地分担在这些等值开销路径上,实现了负载分担。
支持协议报文认证:
OSPF 路由器之间的报文可以配置为必须经过验证才能交换。通过验证可以提高网络的安全性。
OSPF配置实例:
R1:
1 | [R1]int g 0/0/0 |
R2:
1 | [R2]int g 0/0/0 |
R3:
1 | [R3]int g 0/0/1 |
R4:
1 | [R4]int g 0/0/1 |
配置完成后,基于R3的环回测试口 Ping R4的环回测试口,是否全网互通。
1 | [R3-ospf-1-area-0.0.0.1]ping -a 33.1.1.1 44.1.1.1 |
OSPF和RIP的区别:
OSPF 是一个开放的标准路由协议,不仅可以部署在企业网中,同时也可以部署在运营商级的 IP 网络中。OSPF 基于链路状态算法,而 RIP 基于距离矢量算法;对比 RIP,OSPF 是一种更高级的内部网关协议。
RIP 的路由选路原则只是简单的基于跳数,而无法根据链路带宽等资源进行选择,这样会导致一条高带宽的路径反而没有被选择,而 OSPF 协议会根据链路状态来综合考虑,进行选路,从而完全解决了这个问题。
由于 OSPF 路由收敛快、无跳数限制、通告有关链路的信息,不定期发送路由表更新,因此更适合大规模网络使用。
2020年6月12日 完结
参考:《华为HCNA认证详解与学习指南》周亚军 等编著。