文章目录
OSPF协议的工作原理
- 建立邻居关系 —————2-way状态
- 同步链路状态数据库————ful状态
- 计算得到路由信息
基本概念
LSA
LS:链路状态;
链路状态公告:包含了路由器的链路状态信息,即路由器的接口信息如接口IP、掩码、链路类型等。
区域(Area)
OSPF Area用于标识一个OSPF的区域;
OSPF中Area 0为骨干区域,其他区域为非骨干区域,非骨干区域必须和骨干区域相连(虚连接)。
Router ID
32位二进制的标识字段,格式与IPV4一致,通常使用loopback 0口作为Router ID;
Router ID(路由器标识符),用于在一个OSPF域中唯一的标识一台路由器。
生成方式:
- 手动配置
- 自动生成
1、有loopback口,选择loopback口地址最大的作为router-id;
2、无loopback口,选择物理口地址最大的作为router-id;
cost度量值
缺省时接口cost值=(100 Mbit/s) /接口带宽。其中100 Mbit/s为OSPF指定的缺省参考值,该值是可配置。
如果修改带宽参考值,整个路由器接口的cost值都会发送变动
LSDB
链路数据状态库;
每台路由器都会产生LSA,路由器将接收到的LSA放入自己的LSDB,路由器通过LSDB掌握了全网拓扑
五种报文
报文名称 | 报文功能 |
---|---|
Hello | 周期性发送,用来发现和维护OSPF邻居关系 |
DD | 描述本地LSDB的摘要信息,用于两台设备进行数据库同步 |
LSR | 用于向对方请求所需要的LSA。设备只有在OSPF邻居双方成功交换DD报文之后才会向对方发出LSR报文 |
LSU | 用于向对方发送其所需要的LSA |
LSACK | 用来对收到的LSA进行确认 |
三大表项
OSPF邻居表
- display ospf peer 查看邻居表,邻居表显示OSPF路由器之间的邻居状态。
- display ospf peer brief 查看OSPF路由器之间的邻居状态,摘要的状态。
LSDB表
- display ospf lsdb 查看LSDB表中LSDB保存的自己产生的及从邻居收到的LSA信息。
OSPF路由表
- display ospf routing 查看OSPF路由表。
- OSPF路由表和路由器路由表(又叫全局路由表)是两张不同的表项。 OSPF路由表计算得到的路由不一定会加入全局路由表
OSPF支持的网络类型
- Broadcast:以太网
- NBMA(非广播多路访问):帧中继、HDLC、ATM
- P2MP:没有任何一种网络默认是 该网络类型,常用做法是将非全连通的NBMA改为点到多点的网络
- P2P:串行链路
OSPF工作过程
建立邻接关系
OSPF完成邻接关系的建立有四个步骤
- 建立邻居关系
- 协商主/从
- 交互LSDB信息
- 同步LSDB。
R1状态 | R2状态 | 事件 |
---|---|---|
down | down | |
down | init | R2收到R1发送的hello,将R1添加到邻居表 |
2-Way | init | R1收到R2的Hello,将R2添加到邻居表由于R2已发现R1,所以状态为2-Way |
2-way | 2-way | 收到R1的Hello,双方均知道对方发现了自己 |
主从关系选举
邻居状态机从2-way转为Exstart状态之后开始主从关系选举:
R1 | R2 | 事件 |
---|---|---|
Exstart | Exstart | R1、R2同时发送序列号分别为X、Y内容为空的DD报文,宣称自己为Master |
Exchange | Exstart | 以Router ID大的R2为主,R1变为Exchange,发送序列号为Y的DD报文描述自己的LSDB |
Exchange | Exchange | R2收到DD报文后变为Exchange,同时发送一个新的DD描述自己的LSDB |
R1作为从路由器要对R2的的每个DD报文进行确认,回复报文的序列号与主路由R2一致。
邻接关系建立
- 发送完最后一个DD报文后,将邻居状态切换为Loading。
- 邻居状态转变为Loading后,R1向R2发送LSR报文,请求那些在Exchange状态下通过DD报文发现的,但是在本地LSDB中没有的LSA。
- R2收到后向R1回复LSU。在LSU报文中包含被请求的LSA的详细信息。
R1收到LSU报文后,向R2回复LS ACK报文,确认已接收到,确保信息传输的可靠性。 - 此过程中R2也会向R1发送LSA请求。当两端LSDB完全一致时,邻居状态变为Full,表示成功建立邻接关系。
选举DR和BDR
- 选举范围:一个网段
- 选举原因:减少邻接关系的建立,减少LSA的泛洪,节省网络资源
- 选举原则:优先级+router id;
①优先级:越大越优 0-255 默认1,0表示放弃选举。②如果优先级 相同,比较router id,越大越优- DR–BDR 邻接
DR–DR other 邻接
BDR–DR other 邻接
DR other–DR other 邻居
224.0.0.6 DR和BDR侦听
224.0.0.5 所有路由器侦听
DR和BDR在进行选举的时候采用的是非抢占原则
配置命令
创建区域
[R1]ospf 1
[[R1-ospf-1]area 0
[R1-ospf-1-area-0.0.0.0]
宣告网段
网段掩码为反掩码
[R1-ospf-1-area-0.0.0.0]network 10.0.12.0 0.0.0.255
配置认证
接口认证大于区域认证
- 接口认证
本端与对端都要配置接口认证才能加入
[R1-GigabitEthernet0/0/0]ospf authentication-mode md5 1 cipher huawei123
//MD5 加密方式
//1 k值,类似密钥
//cipher 密文,可选plain,明文
- 区域认证
区域内都要配置区域认证才能加入
[R1-ospf-1-area-0.0.0.0]authentication-mode md5 1 cipher huawei123
宣告默认路由
[R1-ospf-1]default-route-advertise always
//本机路由表中必须有激活的非本OSPF默认路由时才向其他路由器发布默认路由。
//如果本地路由表中没有默认路由,增加always参数。
修改cost值
直接修改单个接口值
[R1-G0/0/0]ospf cost 值
修改带宽参考值,会改变整个OSPF链路的cost值
[HUAWEI-ospf-100] bandwidth-reference 1000
//整数形式,取值范围是1~2147483648,单位是Mbit/s,缺省值是100Mbit/s。
静默端口
Silent-Interface不会接收和发送OSPF报文。
Silent-Interface的直连路由仍可以发布出去。
[R1-ospf-1]silent-interface GigabitEthernet 0/0/1
汇总路由
ASBR路由器
[ospf 1]asbr-summary 172.17.0.0 255.255.248.0
ABR路由器区域内
[R2-ospf-1-area-0.0.0.1]abr-summary 172.16.0.0 255.255.248.0
特殊区域
Stub区域
允许泛洪的LSA
Stub区域:1,2,3,3类缺省LSA(ABR产生的)
Totally Stub区域:1,2,3类缺省LSA(ABR产生的)
配置命令
所有stub区域的路由器区域视图下
stub
Totally Stub需要在ABR上追加no-summary关键字
stub no-summary
NSSA区域
允许泛洪的LSA
NSSA:1、2、3、7类、7类缺省LSA(ABR产生的)
Totally NSSA:1、2、3缺省(ABR产生)、7类、7类缺省LSA(ABR产生的)
配置命令
所有NSSA区域的路由器区域视图下
NSSA
Totally Stub需要在NSSA上追加no-summary关键字
NSSA no-summary