目录
根据邻居的路由表来更新自己的路由表。
邻居:两者之间距离为一跳
例:
B 和 C 是直连,所以 B 的路由表中有去往 C 的路由,A 和 B 是邻居,所以 A 会从 B 上学到去往 C 的路由,以此类推。
问题:
当 B 和 C 断开连接之后,B 的路由表中还有从 B 上学习到的去往 C 的路由,所以 B 就会从 A 上学习到去往 C 的路由,当 A 收到了去往 C 的数据会发给 B ,而 B 又发送给 A,一直循环,就产生了环路。
链路状态路由协议是一种无环的路由协议(实时更新)
在每台路由器间泛洪(向所有接口发送)链路状态信息(LSA)。
例:
B 到 A 的距离为 10,C 会从 B 上学到自己到 A 的距离为 20,以此类推。
1、每台路由器收集自己邻居的 LSA
2、将收集到的 LSA 泛洪(发给各个路由器)
3、每台路由器以自己为根,使用 SPF(最短路径优先)算法,构建到达每台设备的最短路径。
4、将计算出的最短路径放入路由表
相邻的 A 和 B 互发 hello 包(我是谁,我旁边有谁),双方收到后都会将对方放入自己的邻居表(这时双方在对方的邻居表中都是 Init 状态),最后回应对方(确认对方发现了自己),当双方都收到对方的回应,将邻居表中对方的状态改为「2-way」,邻居关系建立完成,并且周期性发送用于维护关系。
邻接关系中区分「主从关系」
1、互为邻居的 A、B 会以自己为「主」,互发 DD 报文(内容为空,序列号随机,附上自己的 Router-ID)
DD 报文:用于描述本地 LSDB(链路状态数据库)的摘要信息
2、收到对方的 DD 后,和自己的 Router-ID 做比较,Router-ID 小的将变为「从」,并先向「主」发送 DD(内容不为空,序列号为「主」的报文序列号)。
3、再由「主」向「从」发送 DD(内容不为空,序列号为对方报文序列号 +1,以此类推)。
4、按照对方的 LSDB 向对方发送 LSR(请求自己没有的 LSA 详细信息)
5、互发 LSU(对方请求的 LSA 详细信息)
6、互发 LS ACK (确认收到 LSU),邻接关系建立完成
邻接关系是一种稳定的状态(Full)
交互完 LSA 之后才是邻接关系
邻居关系不会交互 LSA
邻接关系的建立基于邻居关系上
用于在一个 OSPF 域内唯一标识一台路由器,格式和 IP 地址一样,但不是 IP 地址。
每台 OSPF 路由器一定要有 Router_ID 且在一个 OSPF 路由域中不可重复,可手工配置 或 系统自动选择(选取设备配置的第一个 IP 地址 或 Loopback 地址(优先))。
全局 Router_ID:每个协议默认以此为 Router_ID
协议 Router_ID:当全局 Router_ID 和 协议 Router_ID 同时存在,在协议内,协议 Router_ID 优先
- router id !配置全局 Router-ID
- display router id !查看本机的 Router-ID
- ospf router-id 「Router-ID」!配置 ospf 协议的 Router-ID
邻居表
display ospf peer
拓扑表
display ospf isdb
路由表
display ospf routing
在「广播」或「NBMA」网络中,为了减少路由间的转发次数,每个网段会选举出一个 DR 来负责转发信息,一个 BDR 来作备用 DR。
选举标准:路由优先级(比小,默认 1,特殊情况:为 0 时只能作 DROther)(DROther:非 DR/BDR),其次比较 Router-ID(比大)
所有非 DR 会和 DR、BDR 之间建立邻接关系(FULL),DROther 之间只会建立邻居关系(2-Way),不交互 LSA。
当 BDR 成为新的 DR 时,会选举新的 BDR。
DR/BDR 不可被抢占,除非断开连接。
防止拓扑变更重计算时数据过量。
一个区域的更新不会影响到其他区域
非骨干区域要与骨干区域相连(骨干区域:area 0),且只能从骨干区域交互 LSA(防止环路)
OSPF 区域为接口级,一台路由器可以同时属于多个区域(按接口划分)
区域内路由器:所有接口都属于同一个区域
骨干路由器:至少有一个接口属于骨干区域
区域边界路由器(ABR):属于多个区域(其中必须要有骨干区域)
自治系统边界路由器(ASBR):连接两个不同路由域的路由器
例:用 OSPF 使路由器之间互通
- [R1]ospf router-id 1.1.1.1 !进入 ospf 视图并指定 Router-ID
- [R1-ospf-1]area 0 !进入 area 0 区域
- [R1-ospf-1-area-0.0.0.0]network 10.1.12.1 0.0.0.0 !(反掩码)
-
- [R2]ospf router-id 2.2.2.2
- [R2-ospf-1]area 0
- [R2-ospf-1-area-0.0.0.0]network 10.1.12.2 0.0.0.0
- [R2-ospf-1-area-0.0.0.0]network 10.1.23.2 0.0.0.0
-
- [R3]ospf router-id 3.3.3.3
- [R3-ospf-1]area 0
- [R3-ospf-1-area-0.0.0.0]network 10.1.23.3 0.0.0.0
反掩码 = 255.255.255.255 - 「子网掩码」
0.0.0.0 表示单独匹配这一个 IP
附加:使 R1 成为 DR,R2 和 R3 只处于邻接关系(2-way)
- [R2]int g 0/0/0 !进入接口
- [R2-GigabitEthernet0/0/0]ospf dr-priority 0
- !将接口优先级改为 0(0 表示只能作 DROther)
- [R2]int g 0/0/1
- [R2-GigabitEthernet0/0/0]ospf dr-priority 0
-
- [R3]int g 0/0/0
- [R3-GigabitEthernet0/0/0]ospf dr-priority 0