Routing 路由
路由就是通过互联的网络把信息从源地址传输到目的地址的活动。在路由表中优先级越小越优先
各厂商路由协议默认优先级有差异,文中优先级均来自华为设备
Routing Table 路由表
路由表或称路由择域信息库,是一个存储在路由器或者联网计算机中的电子表格 (文件) 或类数据库。路由表存储着指向特定网络地址的路径,包含网络周边的拓扑信息
- destination : 目的地址,用来标识IP包的目的地址或者目的网络
- mask : 网络掩码,与目的地址一起标识目的主机或者路由器所在的网段的地址
- pre : 标识路由加入IP路由表的优先级。可能到达一个目的地有多条路由,但是优先级的存在让他们先选择优先级高的路由进行利用
- cost : 路由开销,当到达一个目的地的多个路由优先级相同时,路由开销最小的将成为最优路由
- nexthop : 下一跳IP地址,说明IP包所经过的下一个路由器
- interface : 输出接口,说明IP包将从该路由器哪个接口转发
选路规则默认为最长掩码匹配原则
路由表中有多条条目可以匹配目的 IP 时,采用掩码最精确的一条作为匹配项并确定下一跳
直连路由 (Direct)
直接连接网段的路由,连接在各个路由器接口网段的路由,路由器启动时可以直接得到的路由网段
默认优先级为 0
静态路由 (Static)
由网络管理员配置,而非动态决定的路由项,当网络发生故障或者拓扑发生变化后,静态路由不会自动更新,必须手动重新配置。通过调整参数可以实现默认路由、负载分担、路由备份等功能
默认优先级为 60
默认路由 (缺省路由)
目的地址为 0.0.0.0 且子网掩码为 0.0.0.0 的静态路由。当目的网段不在路由表中时,路由器会匹配该路由项进行数据转发
负载分担
当两条路由项的目的地址、掩码、优先级、度量值相同并且下一跳地址不同时,则为等价路由。等价路由可以提供流量分担
路由备份
当两条路由项仅优先级不同时,则为浮动路由。优先级高的路由为主路由,其次为备路由。在正常情况下数据会从主路由进行转发,当主路由发生故障时,则会切换到备路由进行数据转发
动态路由
通过路由协议生成路由的条目,并且能根据网络拓扑进行调整
OSPF
开放式最短路径优先 (Open Shortest Path First) 协议使用 “代价 (Cost) ” 作为路由度量。链路状态数据库 (LSDB) 用来保存当前网络拓扑结构,路由器上属于同一区域的链路状态数据库是相同的 (属于多个区域的路由器会为每个区域维护一份链路状态数据库)
OSPF 提出了 “区域 (Area) ” 的概念,一个网络可以由单一区域或者多个区域组成。其中,骨干区域 (Backbone Area) 区域是整个 OSPF 网络的核心区域,并且所有其他的区域都与之直接连接。所有的内部路由都通过骨干区域传递到其他非骨干区域。所有的区域都必须直接连接到骨干区域,如果不能创建直接连接,那么可以通过虚链路 (virtual link) 和骨干区域创建虚拟连接。默认优先级为 10
Cost 计算公式
带宽参考值 / 带宽
OSPF 报文
Header 格式
- Version : 版本号
- Type : 类型
- 1 : Hello 报文
- 2 : DD 报文
- 3 : LSR 报文
- 4 : LSU 报文
- 5 : LSAck 报文
- Packet length : 总长度
- Router ID : 路由器标识
- Area ID : 区域标识
- Checksum : 校验和,除认证字段的整个报文的校验和
- Au Type : 认证类型
- 0 : 不认证
- 1 : simple
- 2 : MD5
- Authentication : 认证字段
Hello 报文格式
- Network Mask : 网络掩码,发送Hello报文的接口所在网络的掩码
- Hello Interval : 间隔,发送Hello报文的接口所在网络的掩码
- Options : 选项
- E : 允许 Flood AS-External-LSAs
- MC : 转发 IP 组播报文
- N/P : 处理 Type-7 LSAs
- DC : 处理按需链路
- Rtr Pri DR : 优先级
- Router Dead Interval : 失效时间
- Designated Router : DR 接口地址
- Backup Designated Router : BDR 接口地址
- Neighbor : 邻居
DD 报文格式
- Interface MTU : 接口 MTU,接口最大可发出的 IP 报文长度
- Options : 选项
- E : 允许 Flood AS-External-LSAs
- MC : 转发 IP 组播报文
- N/P : 处理 Type-7 LSAs
- DC : 处理按需链路
- Init : 连续发送多个 DD 报文时,若是第一个 DD 报文则为 1,否则为 0
- More : 连续发送多个 DD 报文时,是否为最后一个 DD 报文
- Master / Slave : 主/从标识,当值为 1 时表示发送方为 Master
- DD Sequence Number : DD 报文序列号,主从双方根据序列号来保证传输的可靠性和完整性
- LSA Headers : LSA 头部信息
LSR 报文格式
- LS type : LSA 类型
- Link State ID : 链路状态 ID,根据 LSA 中的 LS Type 和 LSA Description 在路由域中描述一个 LSA
- Advertising Router : 发起广播的路由,产生次 LSA 的路由器的 Router ID
LSU 报文格式
- Number of LSAs : LSA 数量
- LSA : LSA 报文
LSAck 报文格式
- LSA Headers : LSA 头部信息,通过 LSA 头部信息确认接收到该 LSA
OSPF 邻接建立过程
- Down : 初始状态,未收到任何 OSPF 报文。当邻居失效后会进入此状态
- Attempt : 该状态仅发生在 NBMA 网络中,表明对端在邻居失效时间间隔 (dead interval) 超时前仍然没有回复 Hello 报文。此时路由器依然每发送轮询 Hello 报文的时间间隔 (poll interval) 向对端发送 Hello 报文
- Init : 收到邻居发的 Hello 报文,但自身的 Router ID 不在对方的邻居列表内
- 2-way : 收到邻居发的 Hello 报文,并且自身的 Router ID 在对方邻居列表内。如果不需要形成邻接关系则邻居状态机会停留在此状态
- Exstart : 路由器与邻居互相发送 DD 报文,协商主从关系并确定初始 DD 报文序列号。此状态下的 DD 报文不包含任何链路状态信息摘要
- Exchange : 确定主从关系后,路由器与邻居互相发送包含链路状态信息摘要的 DD 报文
- Loading : DD 报文交换完成后,路由器与邻居之间互相发送 LSR、LSU、LSAck 报文,完善自身的 LSDB
- Full : LSDB 同步完成 (LSR 重传列表为空),形成邻接关系
主从选举: 根据 Route ID 大小判断,较大方为主设备 (Master),较小方则为从设备 (Slave)
从设备需要对主设备的每个报文进行回复确认
若设备的 LSDB 不需要更新,则直接进入 Full 状态
邻居关系: OSPF 设备启动后,会通过 OSPF 接口向外发送 Hello 报文,收到 Hello 报文的 OSPF 设备会检查报文参数,如果双方一致就会形成邻居关系,两端设备互为邻居
2-way
邻接关系: 形成邻居关系后,如果两端设备交换 DD 报文和 LSA 成功后则建立起邻接关系
Full
OSPF 支持的网络类型
网络类型 | 含义 |
---|---|
Broadcast (广播) | 当链路层协议是 Ethernet、FDDI 时,缺省情况下,OSPF 认为网络类型是 Broadcast。在该类型的网络中 : 通常以组播形式发送 Hello 报文、LSU 报文和 LSAck 报文。其中,224.0.0.5 的组播地址为 OSPF 设备的预留IP组播地址;224.0.0.6 的组播地址为OSPF DR/BDR 的预留 IP 组播地址。以单播形式发送 DD 报文和 LSR 报文 |
Non-Broadcast Multi-Access (NBMA) | 当链路层协议是帧中继、X.25 时,缺省情况下,OSPF 认为网络类型是 NBMA。在该类型的网络中,以单播形式发送协议报文 (Hello报文、DD报文、LSR报文、LSU报文、LSAck 报文) |
Point-to-Multipoint (点到多点) | 当没有链路层协议时会被视为是 Point-to-Multipoint 类型。点到多点必须是由其他的网络类型强制更改的。常用做法是将非全连通的 NBMA 改为点到多点的网络。在该类型的网络中 : 以组播形式 (224.0.0.5) 发送 Hello 报文。以单播形式发送其他协议报文 (DD 报文、LSR 报文、LSU 报文、LSAck 报文) |
Point-to-Point (点到点) | 当链路层协议是 PPP、HDLC 和 LAPB 时,缺省情况下,OSPF 认为网络类型是 P2P。在该类型的网络中,以组播形式 (224.0.0.5) 发送协议报文 (Hello 报文、DD 报文、LSR 报文、LSU 报文、LSAck 报文) |
DR 与 BDR
Designate router (DR、指定路由器)
Backup Disignate router (BDR、备用指定路由器)
选举条件 :
- 比较路由器接口优先级,越大越优先,默认值 : 1
- 若优先级一致,则比较 Router ID
- 优先级第二大则为 BDR
优先级为 0 时,设备为 DR Other,不参与选举且不抢占 DR 与 BDR
OSPF 区域
通过区域 (Area) 的概念将 OSPF 域划分成多个区域,减小 LSA 泛洪的范围,有效的把拓扑变化的影响控制在区域内,三层设备在区域边界可以做路由汇总,可以使 OSPF 支撑更大规模的组网
Area 0 为骨干区域,其他区域必须直接连接骨干区域
- IR : Internal Router (区域内路由器)
- ABR : Area Border Router (区域边界路由器)
- BR : Backbone Router (骨干路由器)
- ASBR : AS Boundary Router (自治系统边界路由器)