1、OSPF介绍
OSPF(Open Shortest Path First,开放最短路径优先)是一种链路状态路由协议,无路由循环(全局拓扑),“开放”意味着非私有的。每一台路由器拥有整个拓扑结构,能根据网络拓扑信息独立地做出决策。OSPF采用SPF算法计算到达目的地的最短路径,所谓“链路”,即指路由器接口,所谓“状态”,即指描述接口以及其与邻居路由器之间的关系。管理距离AD值为110。
2、 OSPF三张表
OSPF的三张表是邻居表、链路状态数据库(LSDB)和路由表。
邻居表(neighbor table):OSPF用邻居机制来发现和维持路由的存在,邻居表存储了双向通信的邻居关系OSPF路由器列表的信息。
拓扑表(topology table):OSPF用LSA(Link State Advertisement 链路状态通告)来描述网络拓扑信息,然后OSPF路由器用拓扑数据库来存储网络的这些LSA。
OSPF路由表(routing table):对链路状态数据库进行SPF(Dijkstra)计算,而得出的OSPF路由表。
OSPF 网络结构:自治系统,区域。
OSPF 算法:Dijkstra’s SPF 算法。
OSPF 成员类型:指定路由器 (DR) , 备份指定路由器 (BDR) , 其他路由 (DRother)。
3、OSPF邻接关系
路由器通过交互Hello报文发现邻居,路由器在检查Hello包中的某些参数或选项后邻居建立成功,检查的参数有:Hello Interval,Dead Interval,Area Number,Authentication,Stub。点对点WAN链路中建立的是全互联的邻接关系。多路访问网络中(如广播型网络,LAN),各成员只会与DR、BDR建立全互联的邻接关系,DRother保持Two-Way状态。邻接关系数:2(n-2)+1
4、OSPF报文
OSPF报文封装在IP报文的负载中,不使用TCP,而使用LSAck实现自己的确认机制。
OSPF报文类型:Hello、Database Description、Link-State Request、Link-State Update、Link-State Acknowledgment。
Hello报文中封装有:Router ID,Hello and Dead Intervals,Neighbors,Area ID,Router priority,DR IP address,BDR IP address,Authentication password,Stub area flag。其中Hello and Dead Intervals、Area ID、Authentication password和Stub area flag在邻居关系建立时必须匹配。
OSPF组播地址:224.0.0.5,224.0.0.6。
DRother通知所有的DR/BDR使用组播地址224.0.0.6,DR通知DRother使用组播地址224.0.0.5。
5、OSPF的配置
router ospf process-id [vrf vpn-name]
network ip-address wildcard-mask area area-id
在接口下配置OSPF:
Router(config-if)#
ip ospf process-id area area-id [secondaries none]
OSPF的Router ID设置优先级:
(1)手动设置的Router ID
(2)活跃的Loopback接口中IP地址较大的
(3)活跃的物理接口中IP地址较大的
Router(config-router)#
router-id ip-address
如果在已经处于活动状态的OSPF进程上使用此命令, 必须重启路由器或者重启OSPF进程才能生效。
Router# clear ip ospf process
验证OSPF Router ID:show ip ospf
Router# show ip protocols
验证配置的IP路由协议进程,参数和统计信息
Router# show ip route ospf [process-id ]
显示路由器学到的所有OSPF路由
Router# show ip ospf interface [type number]
显示OSPF的router ID、area ID和邻接关系
Router# show ip ospf interface brief
显示接口在OSPF下的状态
Router# show ip ospf
显示OSPF的router ID、计时器和状态
Router# show ip ospf neighbor [type number] [neighbor-id] [detail]
Router# show ip ospf neighbor detail
显示OSPF邻居信息,包括广播网络中的DR和BDR信息
cost或metric:默认值= (100 Mbps) / (bandwidth in Mbps)
RouterA(config-if)# ip ospf cost interface-cost
在接口下手动设置Cost来覆盖默认值,取值范围 1 到 65535
RouterA(config-router)# auto-cost reference-bandwidth ref-bw
设置有别于100 Mbps的参考带宽,取值范围 1 到 4294967
6、OSPF网络类型
OSPF网络类型包括:loopback环回口,point-to-point串口或帧中继的点到点子接口,broadcast以太口、快速以太口,NBMA非广播多路访问(帧中继),point-to-multipoint点到多点,point-to-multipoint no-broadcast点到多点非广播。
环回口在OSPF中是一类单独的网络类型,环回口下配置的IP,不管掩码配置为多少,发出路由时都会当做/32的主机路由。
点到点类型: 如果二层的协议为PPP、HDLC等,则OSPF网络类型为P2P。如果帧中继子接口类型为P2P的,则OSPF网络类型也为P2P。不选举DR、BDR。使用组播地址224.0.0.5。OSPF能够根据二层封装自动检测到P2P网络类型。
广播型多路访问:通常出现在以太网中,选举DR、BDR,所有路由器均与DR及BDR建立邻接关系,使用组播地址224.0.0.5及224.0.0.6。
非广播型多路访问: 帧中继网络中,使用物理接口默认为NBMA,使用子接口默认为点对点,使用NBMA需要使用neighbor命令指定邻居。
修改网络类型:Router(config-if)# ip ospf network broadcast
7、DR和BDR选举
具有最高优先级的OSPF成员成为DR,次高优先级的成为BDR,如果优先级一致,则比较RID,RID大的成为DR,第二大的成为BDR,DR选举是非抢占式的。
设置DR选举的优先级:Router(config-if)# ip ospf priority number
默认优先级为1,取值范围 0 到 255,如果优先级为0,则不参与DR或者BDR选举,如果一个设备不是DR或者BDR,那就是DRother。
8、LSA链路状态通告
类型1 :路由器LSA Router LSA
>>每个路由器针对它所在的区域产生LSA1,描述区域内部与路由器直连的链路的信息(包括链路类型,Cost等),只允许在本区域内洪泛,不允许跨越ABR,Link ID是通告该LSA的路由器RID。
类型2:网络LSA Network LSA
>>描述TransNet(包括Broadcast和NBMA网络)网络信息,由DR生成,描述其在该网络上连接的所有路由器以及网段掩码信息, 以及这个MA所属的路由器,只在本区域Area内洪泛,不允许跨越ABR,Link ID是DR进行宣告的那个接口的IP地址,Network LSA 中没有COST字段。
>>类型1、2 总结:通过LSA1,LSA2在区域内洪泛,使区域内每个路由器的LSDB达到同 步,计算生成标识为“O”的路由,解决区域内部的通信问题。
类型3: 网络汇总LSA Summary Net LSA
>>由ABR生成,将区域内部的Type1\2的信息收集起来以路由子网的形式扩散出去,Link ID是域间路由的路由前缀,一条域间路由对应一条3类LSA。ABR收到来自同区域其它ABR传来的Type 3 LSA后重新生成新的Type3 LSA (Advertising Router改为自己)然后继续在整个OSPF系统内扩散。如果—台ABR路由器在与它本身相连的区域内有多条路由可以到达目的地, 那么它将只会始发单一的一条网络汇总LSA到骨干区域,而且这条LSA是上 述多条路由中代价最低的。
类型4: ASBR Summary LSA
由ASBR所在区域的ABR生成,用于描述ABR能够到达的ASBR的信息。Link ID为目的ASBR的RID。
类型5: 自治系统外LSA AS External LSA
>>由ASBR生成,用于描述OSPF自治域系统外的目标网段信息。Link ID是域外路由的路由前缀,一条域外路由对应一条5类LSA。外部路由通过重发布,引入OSPF路由域,相应信息(路由条目) 由ASBR以LSA5的形式生成然后进入OSPF路由域; •缺省情况下,LSA5生成路由用OE2表示,可强行指定为OE1。OE2 开销 = 外部开销 = 20(默认) ,OE1 开销 = 外部开销 + 内部开销。LSA5不允许进入特殊区域 —— Stub和NSSA区。
类型7: NSSA中的外部LSA NSSA External LSA
>>在NSSA(非完全存根区域)not-so-stubby area中ASBR针对外部网络 产生类似于LSA5的LSA类型7。LSA类型、7只能在NSSA区域中洪泛,到达NSSA区域ABR后,NSSA ABR将其转换成LSA类型5外部路由,传播到Area 0,从而传播到整个 OSPF路由域。生成路由缺省用ON2表示,也可指定为ON1。
查看OSPF路由表:show ip route ospf
加表顺序:O > O IA > O E1 > O E2
9、路由汇总
在ABR上汇总域间路由:Router(config-router)# area area-id range address mask [advertise | notadvertise] [cost cost]
在ASBR上汇总外部路由:Router(config-router)# summary-address ip-address mask [not-advertise] [tag tag]
以5类LSA向OSPF中注入默认路由,默认不开启,使用default-information originate命令注入。只有当默认路由已经存在在路由表中才会通告默认路由,加always参数可以强制下发默认路由。default-infomation originate metric number,进行有多个OSPF出口的路由器下发的默认路由选路。
10、特殊区域
stub配置:
router ospf 1
network .... .... area 1
area 1 stub
totally stub配置:
普通路由器:
router ospf 1
network .... .... area 1
area 1 stub
ABR:
router ospf 1
network .... .... area 1
area 1 stub no-summary
将一个区域配置成Stub或者Totally stub需要注意一下几点:
>>不可在骨干区域配置。
>>区域内不能有ASBR和虚链路。
>>特殊区域内所有路由器都配置成Stub。
>>有多个以上ABR时,到其他区域或外部自治系统可能存在次优路径。 需要注意选路(修改cost)。
非完全末梢区域 Not-so-stubby Area=NSSA
Stub的变种:即想阻挡LSA5,自身又想引入外部路由,NSSA既阻挡外部LSA5的进入,同时它的ASBR又可以引入外部路由LSA7,LSA7在NSSA内洪泛,通过ABR时转换为LSA5,ABR不会缺省生成默认路由进入本地区域,需手工配置。
NSSA配置:
router ospf 1
network .... .... area 1
area 1 nssa
ABR上可以下发默认路由:
router ospf 1
network .... .... area 1
area 1 nssa default-information-originate
totally NSSA配置:
router ospf 1
network .... .... area 1
area 1 nssa
ABR配置:
router ospf 1
network .... .... area 1
area 1 nssa no-summary
11、认证
认证算法:(1)Null (2)简单密码身份验证 (3)MD5身份验证
认证类型:(1)接口认证 (2)区域认证
明文认证:
(1)接口认证
Router(config-if)# ip ospf authentication-key password
Router(config-if)# ip ospf authentication
(2)区域认证
Router(config-if)# ip ospf authentication-key password
Router(config-router)# area area-id authentication
密文认证:
(1)接口认证
Router(config-if)# ip ospf message-digest-key key-id md5 key
Router(config-if)# ip ospf authentication message-digest
(2)区域认证
Router(config-if)# ip ospf message-digest-key key-id md5 key
Router(config-router)# area area-id authentication message-digest
认证排错:Router# debug ip ospf adj
12、passive-interface
路由器不会在该接口发送Hello分组,因此不能建立邻接关系。配置如下:
passive-interface fa0/0
passive-interface default
no passive-interface fa2/0
13、虚链路
虚拟链路被用于一个不连续的区域连接到区域0。逻辑连接是建立路由器A和路由器B之间,虚拟链路被推荐用于备份或临时连接。
验证OSPF虚链路:RouterA#sh ip ospf virtual-links
明文区域认证:
router ospf 1
network 172.16.0.0 0.0.255.255 area 0
network 172.17.0.0 0.0.255.255 area 1
area 0 authentication
area 1 virtual-link 3.3.3.3 authentication-key SPOTO
密文区域认证:
router ospf 1
network 172.16.0.0 0.0.255.255 area 0
network 172.17.0.0 0.0.255.255 area 1
area 0 authentication message-digest
area 1 virtual-link 3.3.3.3 message-digest-key 1 md5 SPOTO
14、Max-metric设置
15、SPF节能
https://blog.csdn.net/gongxifacai_believe/article/details/79530499