OSPF理论
- 一、OSPF基本原理(回顾)
- 1. 邻居建立
- 1.1(4+==1==+1)HELLO包影响邻居建立的因素。
- 1.2 其它影响邻居建立的因素:
- 1.3 基本配置
- 1.4 验证命令
- 2 DR选举
- 2.1 为什么选?
- 2.2 在哪选?
- 2.3 怎么选?
- 2.4 选完后如何工作?
- 3 OSPF邻居状态机
- 3.1 Down
- 3.2 Init
- 3.3 2-way
- 3.4 Ex-Start
- 3.5 Exchange
- 3.6 loading
- 3.7 Full
- 4 OSPF建立并维护的3张表项
- 5 SPF算法
- 6 OSPF 网络类型
- 7 OSPF的区域类型
- 7.1 非骨干区域根据能够学习到的路由种类划分
- 8 OSPF常见的LSA类型
- 8.1 常见LSA的类型
- 8.2 常见LSA详解
- 8.2.1 LSA Type-1 —— 路由器LSA
- 8.2.1.1 LSA Type-1输出信息详解
- 8.2.2 LSA Type-2 —— 网络LSA
- 8.2.3 LSA Type-3 —— 网络汇总LSA
- 8.2.4 LSA Type-4 —— ASBR汇总LSA
- 8.2.5 LSA Type-5 —— AS外部LSA
- 8.2.6 OSPF Link ID与Data说明
- 9 OSPF的路径类型
一、OSPF基本原理(回顾)
1. 邻居建立
1.1(4+1+1)HELLO包影响邻居建立的因素。
四个参数必须一致:
- HELLO,DEAD时间必须一致;
- 区域ID必须相同;
- 认证必须相同;
- 特殊区域标示位必须相同;
一个参数必须不一致:
- Router ID不能相同;
有时比有时不比:
- 掩码,广播网络类型需要比较,P2P网络类型不比较
//以上6点都是Hello包或OSPF头部中的字段
1.2 其它影响邻居建立的因素:
1、DBD报文中的MTU不匹配无法形成邻接关系(一边是EXSTART,一边是EXCHANGE);
华为设备默认关闭,可使用ospf mtu-enable 开启
(Cisco设备默认开启,可使用ip ospf mtu-ignore关闭,在小的一方改即可)
2、在MA网络,二边的接口优先集都是0的时候,只会处于邻居状态,不同步LSA。
3:网络类型不一致,一边是p2p,一边是MA。邻居关系正常,但是不能进行SPF计算,不能产生路由表。
4:Silent-interface。静默端口,不发送和不接收任何OSPF相关报文。
1.3 基本配置
1.4 验证命令
2 DR选举
2.1 为什么选?
- 加快网络收敛
- 减少冗余的更新,减少资源占用
2.2 在哪选?
- 每一个MA网络选一个DR/BDR
2.3 怎么选?
- DR是基于端口的路由器优先级的值进行选举的。
- 默认为 1. 范围是 0 - 255.越大越优先
- 优先级为 0 的将永远不参与竞选 DR 以及 BDR.
- 如果优先级相同时,则比较Router ID,越大越优先
2.4 选完后如何工作?
邻居与邻接的区别:
- 邻居不同步LSA
- 邻接是同步LSA
3 OSPF邻居状态机
- 一共分为7个状态:
3.1 Down
a. 如何进入?
Network宣告一个接口后,此接口进入down。
b. 做什么?
发送一个hello,尝试建立邻居。
3.2 Init
a. 如何进入?
–>Hello[RID:1.1.1.1,Header+PayLoad]
收到一个不带自己router-ID的hello包。
b. 做什么?
<—Hello[RID:2.2.2.2 ,NeiRID=1.1.1.1 …]
检查Hello包里面的4+1+1参数信息,通过后,回送一个HELLO,并且里面会携带自己看到的邻居信息(router-ID)
3.3 2-way
a. 如何进入?
—>Hello[RID:1.1.1.1,NeiRID=2.2.2.2 …]
收到一个携带自己router-ID信息的hello包。
b. 做什么?
回送看到邻居信息。
等待DR/BDR选举结束。
----MA,需要完成DR/BDR选举,waiting timer = 40s----(DR/BDR选举从down状态就开始了)
3.4 Ex-Start
a. 如何进入?
形成邻居后,需要交互LSDB,就会进行此状态。
b. 做什么?
使用router-ID,选举一个Master,使用master生成的序列号作为隐式确认的号码。
发对空的DBD报文
—>DBD[RID:1.1.1.1,Seq=4040,I=1,M=1,MS=1,MTU=0,LSA=NULL]
<—DBD[RID:2.2.2.2,Seq=5050,I=1,M=1,MS=1,MTU=0,LSA=NULL]
<—DBD[RID:2.2.2.2,Seq=5050,I=0,M=1,MS=1,Master,LSA=NULL]
3.5 Exchange
a. 如何进入?
选举完成Master后,进行此状态。
b. 做什么?
通DD报文,描述LSDB所有的LSA信息。互相就知道对方有哪些LSA了。
—>DBD[RID=1.1.1.1,Seq=5050,I=0,M=0,MS=0,LSA=ALL]
<—DBD[RID=2.2.2.2,Seq=5051,I=0,M=0,MS=1,LSA=ALL]
3.6 loading
a. 如何进入?
DD同步结束后,就知道对方有哪些LSA的时候,进行此状态。
b. 做什么?
发送LSR,请求我所缺少的LSA,进行LSA同步。
收到LSR后,发送LSU更新。
收到LSU后,发送LSACK确认
3.7 Full
LSA完全同步结束后。
4 OSPF建立并维护的3张表项
1、 邻居表 :列出每台路由器全部已经建立邻居关系的邻居路由器
2、 链路状态数据库【LSDB】:列出网络中其它路由器的信息,由此显示了全网的网络拓扑
3、 路由表:列出通过SPF算法计算出的到达每个相连网络的最佳路径
5 SPF算法
1、创建并维护以下3张表项:
重复执行以下3步N次:
1、从Tentative List的所有路由器中寻找距离自身【根节点】最近的网络节点,并将其从Tentative List中移动至Paths List中
2、发现此节点通告的所有前缀,并将其安装至RIB【路由表项】中
3、发现此节点的所有邻居,并将其移动至Tentative List中
注:Dijkstra:迪杰斯特拉算法【是由荷兰计算机科学家狄克斯特拉于1959年提出的】
6 OSPF 网络类型
Thinking about:
1、不同的网络类型是否可以建立邻居?
2、不同的网络类型是否可以相互学习路由?
Analysis:
NBMA只能与NBMA建立Full关系,与其它网络类型均无法建立Full的关系【因为NBMA网络单播发现邻居】
Broadcast与P2P能建立Full关系,但无法正常计算路由【因为构建的拓扑不一致】
Broadcast与P2MP通过修改Hello / Dead Timer可以建立Full关系,但不能计算路由
P2P与P2MP通过修改Hello / Dead Timer可以建立Full关系,路由也可正常计算
概括总结:
1、因为OSPF的Hello报文中没有描述网络类型的字段,能否建立邻居关系主要看Hello报文的发送间隔、Holdtime以及Hello报文的发
送方式;路由计算是否正常,主要看是否选举DR/BDR
7 OSPF的区域类型
骨干区域【Area 0】
非骨干区域
7.1 非骨干区域根据能够学习到的路由种类划分
1、标准区域:学习本区域的内部路由、学习域间路由、学习外部路由
2、末节区域【Stub】:学习本区域的内部路由、学习域间路由,不学习外部路由,不包含ASBR,与外部通讯完全依靠自动创建的缺省路由
3、完全末节【Totally Stubby】区域:仅学习本区域内部路由,不学习外部路由,不学习域间路由,与外部通讯完全依靠自动创建的缺省路由
4、非纯末节区域【NSSA】:学习域内路由,学习域间路由,学习本区域自身引入的外部路由,不学习其它区域引入的外部路由
5、非纯完全末节区域:学习域内路由,学习本区域自身引入的外部路由,不学习域间路由,不学习其它区域引入的外部路由
注:NSSA区域是OSPF RFC的补遗,定义了特殊的LSA类型7;提供类似Stub Area与Totally Stubby Area的优点,可以包含ASBR
8 OSPF常见的LSA类型
8.1 常见LSA的类型
8.2 常见LSA详解
8.2.1 LSA Type-1 —— 路由器LSA
每一个运行OSPF的路由器都会生成一个路由器LSA
该LSA仅在本区域内泛洪;无法穿越ABR
包含路由信息与拓扑信息;Link-ID为路由器的Router-ID
8.2.1.1 LSA Type-1输出信息详解
1、Link Type: Transnet
作用:用于描述直连链路上网络类型为广播或NBMA的邻居
Link ID:该链路上DR的IP地址
Data:与DR相连的接口IP地址
Metric:自身到DR的OSPF开销
2、Link Type: Stubnet
作用:用于描述自身直连的网络号及子网掩码
Link ID:直连链路的网络号
Data:子网掩码
Metric:自身到直连网络的OSPF开销
3、Link Type: P-2-P
作用:描述P2P/P2MP链路上的OSPF邻居
Link ID:邻居的Router-ID
Data:与邻居相连接口的IP地址
Metric:自身到邻居的OSPF开销
8.2.2 LSA Type-2 —— 网络LSA
由MA网络中的DR发出
仅在本区域内进行泛洪;无法穿越ABR
所包含的内容与Type-1的LSA联合,共同描绘出网络的拓扑与路由
Link-ID为DR接口的IP地址
8.2.3 LSA Type-3 —— 网络汇总LSA
起源于ABR,每经过一个ABR,通告路由器将会发生变化
仅在本区域内进行泛洪,ABR之间接力传递,从而泛洪至整个AS
该LSA用于通告一个区域的信息至其它区域,包含一条路由信息【描述链路的网络号与掩码】
Link-ID为这条路由信息的前缀
8.2.4 LSA Type-4 —— ASBR汇总LSA
起源于ABR
泛洪于本区域,除ASBR所在区域外的整个自治系统
该LSA在AS中向其它区域通告ASBR的位置
Link-ID为ASBR的Router-ID
8.2.5 LSA Type-5 —— AS外部LSA
起源于ASBR,通告路由器在整个AS中不发生变化;泛洪于整个AS
该LSA用于通告自治系统外部的网络
Link-ID为此路由信息的前缀
8.2.6 OSPF Link ID与Data说明
9 OSPF的路径类型
1、区域内路径【Intra-area path】:在路由器所在的区域内就可以到达目的地的路径
2、区域间路径【Inter-area path】:目的地在其它区域,但还在OSPF自治系统内的路径
3、类型1的外部路径【Type l external path,E1】:目的地在OSPF自治系统外部的路径
4、类型2的外部路径【Type 2 external path,E2】:目的地在OSPF自主系统外部的路径,但在计算外部路由的度量时不再计入到达ASBR路由器的路径代价