OSPF理论笔记
OSPF(开放最短路径优先)特征
- 独立传输:OSPF在IP层上,使用协议号89。不依赖传输层协议TCP或UDP支持。
- 采用高效更新:一个路由器信息变化,就会泛洪给同一个区域的所有路由器。
- 更新目的地址:OSPF使用单播地址224.0.0.5,使用224.0.0.6向DB/BDR路由发送信息。
- 支持VLSM:OSPF是无类的路由协议。
- 手工路由汇总:工程师一般在ABR或ASBR汇总外部路由,OSPF没有自动汇总。
- 认证:OSPF支持明文、MD5以及SHA认证。
- OSPF操作:建立邻居邻接关系后,路由器交换LSA(链路状态通告),使统一区域路由器的链路状态数据库一样;然后每个路由器通过DIJSTRA算法得到以自己为根节点的SPF树;最后,根据SPF树得到最优路径,从而得到路由表。
OSPF设计
- OSPF分层结构:
- 骨干区域(区域0):骨干区域必须连接其他所有区域
- 内部路由器:路由器的所有接口都在同一个OSPF区域
- 骨干路由器:骨干区域的内部路由器
- ABR:连接OSPF两个不同区域的路由器
- ASBR:连接OSPF和其他协议(或OSPF的其他进程)的路由器
- OSPF消息类型:
- Hello包:其中计时器、Area ID、认证密码、区域类型在邻居建立时必须一致的
- DBD包:数据库的信息目录
- LSR包:数据库更新请求包
- LSU包:数据库更新包
- LASck包:信息确认包
- OSPF邻居建立过程:
- Down:网段上没有收到信息
- Init:检测到来自邻居的Hello包
- 2-Way:与邻居建立了双向通信
- ExStart:决定主从路由器
- Exchange:路由器通过发送DBD包描述整个LSDB
- Loading:路由完成信息交换
- Full:邻接关系建立完成,邻接路由器具有相同的LSDB
- OSPF信息的更新:
- 点到点网络:直接LSU相互更新
- 广播型网络:
- 选举DR和BDR:优先级高的作为DR(默认优先级为1),优先级相同情况下RID大的作为DR。BDR是仅次于DR的后备DR选项。优先级为0的路由不能成为DR/BDR,被称为DROTHER。
- DR和BDR和其他路由器形成邻接关系,其他路由之间是邻居但不邻接
- 网络中需要更新的信息通过组播224.0.0.6发送给DR和BDR(只有DR和BDR接收),DR/BDR把更新信息广播给其他邻居。
- 重要的LSA Type信息:
1号LSA(Router LSA):内部路由器传给邻居,传播范围:本区域Area
2号LSA(Network LSA):由DR发出,邻居接收,传播范围:本区域Area
3号LSA(Summary LSA):由ABR发出,在整个OSPF区域内传播
4号LSA(ASBR Summary LSA):由ABR发出,用于发现ASBR
5号LSA(External LSA):外部路由信息经ASBR传入OSPF
6号LSA:组播OSPF应用中专用的LSA
7号LSA(NSSA外部LSA):在特殊区域类型NSSA中对外部路由使用
8、9号LSA:在OSPFv3中对链路本地地址和区域内前缀使用
10、11号LSA:通用LSA,也称为透明(Opaque),允许OSPF未来的扩展
标识:O:内部区域(1,2号LSA)
- O|A:ABR(3号LSA)
- O E:(4号、5号LSA)
- E1:Metric相加;
- E2:Metric忽略,采用默认值
- N:(7号LSA)
优化OSPF行为
- OSPF路由汇总:目的是防止过多的路由条目在全自治系统中频繁的LSA泛洪,消耗过多的CPU资源。
- 在ABR上执行内部路由汇总:
ABR(config-router)#are Area-ID range IP地址 掩码
- 在ASBR上执行外部路由汇总:
ASBR(config-router)#summary-address {IP地址 掩码|网段 mask} {not advertise}
- 生成默认路由:
在ASBR上配置默认路由,使内部网络学习到这条默认路由,避免每台路由器的默认路由手动配置。
ASBR(config-router)#default-information originate (always) metric x
ASBR(config-router)#ip route 0.0.0.0 0.0.0.0 IP出接口地址
- always的作用,防止网络动荡,导致默认路由时有时无。但缺点在于外部默认路由真的缺失时,它的默认路由不会告诉内部路由外部信息的缺失
- OSPF虚电路:用于连接不连续的区域0,或是让未连接区域0的区域通过传输区域连接到区域0。
ABR1(config-router)#area Area-ID virtual-link ABR2-RID
ABR2(config-router)#area Area-ID virtual-link ABR1-RID
- 注意:虚电路两端的路由都要配置
OSPF的认证
- 明文认证:
// 从接口上认证
R1(config-if)#ip ospf authentication
R1(config-if)#ip ospf authentication-key password
// 在区域上认证
R1(config-if)#ip ospf authentication-key password
R1(config-router)#area Area-ID authentication
//虚电路上的认证
ABR(config-router)#area Area-ID authentication
ABR(config-router)#area Area-ID virtual-link RID authentication-key password
- 暗文认证MD5:
// 从接口上认证:
R1(config-if)#ip ospf authentication message-digest
R1(config-if)#ip ospf authentication message-digest-key Key-ID md5 password
// 从区域上认证
R1(config-if)#ip ospf authentication message-digest-key Key-ID md5 password
R1(config-router)#area Area-ID authentication message-digest
// 虚电路的认证
ABR(config-router)#area Area-ID virtual-link IP地址 authentication message-digest-key Key-ID md5 password
区域类型
- Stub Area(末梢区域):
描述:只有ABR没有连接外部路由的区域(无ASBR)
只有LSA 1,2,3类型
自动生成默认路由 - Totally Stubby Area(完全末梢区域):
描述:同Stub Area,但只有思科设备允许。
只有LSA 1,2类型
自动生成默认路由 - Not-So-Stubby Areas(非完全末梢区域):
描述:连接了Area 0和外部协议的区域(既有ABR也有ASBR)
只有LSA 1,2,3,7类型:LSA 7是外部路由信息传入NSSAs时形成的,当这些信息经过ABR传入其他区域时,会转换成LSA 5。
需要手动定义默认路由。 - Totally Not-So-Stubby Areas(完整非完全末梢区域):
描述:同NSSAs,但只有思科设备拥有。
只有LSA 1,2,7类型。
自动生成默认路由。
- 命令写法:
R1(config-router)#area Area-ID stub {no-summary}
- 定义末梢区域(在末梢区域的接口都要配)
- 在ABR上可定义Totally型的区域,添加no-summary命令
R1(config-router)#area Area-ID NSSA default-information-originate {no-summary}
// 定义NSSAs区域