资料
本文很不完整,需要补充整理!
LSA
计算最短路径数,计算最优路径,写入路由表
OSPF 报文类型
ospf 包结构
结构 | 含义 | |
---|---|---|
Version Number | 版本 | 2: ipv4 3: ipv6 |
Type | 类型 | 1 hello 2 database description 数据库描述 3 Link State Request 链路状态请求 4 Link State Update 链路状态更新 5 Link State Acknowledgment 链路状态确认 |
Package Length | 包长度 | |
Router ID | 路由id | |
Area ID | 区域id | |
Checksum | 校验和 | |
Authentication Type | 认证类型 | |
Authentication | 认证信息 | |
Data | 包数据 |
死亡间隔 是 hello 间隔的 4 倍。
224.0.0.xxx 组播,只能用在直连设备间发送。(同一个路由器下面)
拓展阅读:内网总有发往224.0.0.22的数据存在、网络中什么情况会出现224.0.0.2的地址
1 HELLO 报文(hello packet)
周期性的发送给本路由器的邻居,使用的组播地址 224.0.0.5.
BR 和 BDR 发送和接受报文使用的组播地址是 224.0.0.6。HELLO PACKET 内容包括一些定时器数值、DR、BDR、以及自己已经知道的邻居。
HELLO 时钟的值与路由收敛速度、网络负荷大小成正比。
缺省情况下,PTP、BROADCAST 类型接口发送 HELLO 报文的时间间隔的值为 10 秒;PTMP、NBMA 类型接口发送 HELLO PACKET 时间间隔为 30 秒;
2 DD 报文(Database description packet
相邻路由器直间互发 DD 报文,报告对方自己所拥有的路由信息内容包括 LSDB 中每一条 LSA 摘要(摘要是指 LSA 的 HEAD,通过改 HEAD 可以唯一标识一条 LSA),这样做的目的是为了减少路由器之间传递信息的量,因为 LSA 的 HEAD 只占一条 LSA 的整个数据量的一小部分。根据 HEAD,对端路由器就可以判断出是否已经有了这条 LSA。
DATABASE DESCRIPTION PACKET 有两种
(1)空 DD 报文,用来确定 MASTER/SLAVE 关系。确定 MASTER/SLAVE 关系后,才发送有路由信息的 DD 报文
(2)带有路由信息的 DD 报文,收到有路由信息的 DD 报文后,路由器比较自己的数据库,发现对方的数据库中有自己需要的数据,则向对方发送 LSR(LINK STATE REQUEST)
3 LSR 报文(LINK STATE REQUEST PACKET
两台路由器之间互相交换 DD 报文后,知道对端的路由器有那些 LSA 是本地 LSDB 所缺少的或者对端更新的 LSA,这时需要发送 LSR 报文向对方请求所需的 LSA。内容包括所需要的 LSA 摘要。
4 LSU 报文(LINK STATE UPDATE PACKET
用来向对端路由器发送所需要的 LSA,内容是多条 LSA 的集合
5 LSACK 报文(LINK STATE ACKNOWLEDGMENT PACKET
由于没有使用可靠的 TCP 协议,但是 OSPF 包又要求可靠的传输,所以就有了 LSACK 包。它用来对接收到的 LSU 报文进行确认。内容是需要确认的 LSA 的 HEAD.
LSA 类型(链路状态广播)
Link-State Advertisement
LSA Type | Description | 始发设备 | 主要内容 | 传播范围 |
---|---|---|---|---|
1 | Router LSAs -路由器 LSA | 任何设备 | 始发的区域内部 | |
2 | Network LSAs | DR | ||
3 | Summary LSAs -网络汇总 LSA | ABR | 目的网络的子网号、掩码 | 区域内 |
4 | ASBR汇总LSA | ABR | ASBR 的 routerID,到达 ASBR 的开销值 | |
5 | Autonomous system external LSAs -自治系统外部 LSA | ASBR | 外部自治系统目的地址路由和 routerID | |
6 | Multicast OSPF LSAs | |||
7 | LSAs defined for not-so-stubby areas -NSSA 外部 LSA | ASBR | 和类型 5 一致 | NSSA 内部 |
8 | Externel attribute LSAs for Border Gateway Protocol (BGP) | |||
9,10,11 | Opaque LSAs |
Type1 是 Router LSA , 所有的 OSPF speaker 都会产生该类 LSA,只在区域内传播,包括路由器自身的拓扑信息,和路由信息。
Type2 是 Network LSA,只在 MA 网络中出现的 2 类 LSA 由 DR 产生,包括 DR 相连的所有网络的信息,只在区域内传播。
Type3 是 Network summary LSA,由 ABR 产生,告知区域内路由器区域外的路由条目, 当有多个 ABR 时使用 cost 来确定,这个 cost 是由区域内路由器将外部路由 cost 和内部 cost 简单相加所得(metric-Type 1), 而不是运行 SPF 算法,因此 可以说在区域内 OSPF 是一种链路状态协议,而在区域间是一种距离矢量协议。区域间路由的传递
Type4 是 ASBR summary, 由 ABR 产生,用来广播 ASBR 的位置, 用show ip ospf database
可以看到Type4 LSA 总是一个 host mask 255.255.255.255,并且 Type5 是数据库中唯一没有 Area 属性的 LSA。
Type5 是 external summary,由 ASBR 产生,是非 OSPF 设备的路由信息, 通常在一个大型网络中,路由器的数据库中会存在大量的此类 LSA,给路由器形成较重的负荷。因此我们可以用 stub 区域来限制此类 LSA 的传播。但是考虑以下情景,如果一台运行 OSPF 的路由器需要连接一个非 OSPF 网络 net1,并将非 OSPF 网络中的路由条目通告到 OSPF 中,而又不想在数据库中保存大量的由其他路由器通告的外部网络路由,那么这时我们不可以用 STUB,因为这将阻止所有的 External 路由,OSPF 网络将丢失 net1 的路由信息,
Type 7 因此被写入了 OSPF 标准。 为了解决这个问题, CISCO 规定了 NSSA, Type7 在 NSSA 中传播 External Route,在 NSSA 的 ABR 上,Type7 被转换成 Type5 (当然必须 Type7 LSA P-bit=1),然后由 ABR 将这些路由条目通告到 Backbone。
接口大于100M,修改参考带宽。
Router#clear ip ospf process
区域类型及其结构
- Backbone area 骨干区域
- Normal area 普通区域
- Stub area 末节区域
- Totally stubby area 完全末节区域
- Not-so-stubby area 非完全末节区域
Backbone area: Area 0,不同区域间的流量转发必经过 Area 0。
普通区域:非 Area 0, 非特殊区域。
特殊区域 末节区域:至少有一个 ABR。所有路由均被配置为末节路由器。不允许有 ASBR。Area 0 不允许是 末节区域。虚拟链路不允许穿越末节区域。
基本配置
Router#router osfp <自治号>
Router(config-router)#network 10.1.1.0 0.0.0.255 area 0
Router(config-router)#network 10.1.1.1 0.0.0.0 area 0
Router(config-router)#area stub
Router(config-router)#area 2 default-cost 10
解决 area 0 被分割的情况
使用虚链路,虚链路可看做是 area 0 的一部分
router ospf 100
area 0 virtual-link 10.2.2.2
ospf 路由汇总
ABR(config-router)#
area 1 range 172.16.8.0 255.255.248.0
area 1 range 172.16.16.0 255.255.252.0