OSPF
一、
OSPF概述
1、
链路状态路由协议
快速适应网络变化,在网络发生变化时,发送触发更新,以较低的频率发送定期更新。通过LSA的洪泛,形成完整的LSDB。网络拓扑图,以自己为中心,运行SPF算法,计算到每个网络的最短路径。
邻居表:直接相连的邻接路由器(邻接关系数据库)
拓扑表:网络或区域内的其他路由器及其连接的网络。(LSDB,OSPF拓扑数据库)
路由表:前往每个目的地的最佳路径(转发数据库)
距离矢量和链路状态:使用距离矢量路由选择协议时,路由器依赖于邻居的路由选择决策,路由器并不完全了解网络拓扑。使用链路状态路由选择协议时,每台路由器都完全了解网络拓扑,能够根据准确的网络拓扑信息独立地做出决策。
2、
OSPF区域结构
层次化结构
中转区域:将其他类型OSPF区域连接起来,快速、高效的传输IP分组。(区域0)
常规区域:连接用户和资源的其他区域,标准区域、末节区域、绝对末节区域、次末节区域。
3、
SPF区域
减少了路由选择表条目、将区域内拓扑变化的影响限制在本地、将LSA扩散限制在区域内。
区域术语:骨干路由器,骨干区域,其他区域都和骨干区域相连,ABR,将非骨干区域连接到骨干区域,ABR(分隔LSA扩散区,是执行区域地址汇总的主要地方,常常是默认路由源,维护其连接的每个区域的LSDB)
4、
OSPF邻接关系
路由器通过交换Hello获得协议特定的参数发现建立邻居关系,建立邻居关系后,通过交换LSA来同步LSDB,形成完全邻接状态。点到点邻居直接成为邻接,LAN网络中,所有路由器根DR、BDR全full。其他路由器之间为DROther。路由器之间的链路状态信息必须同步,LSA被扩散到整个区域。
5、
OSPF度量计算
路由器利用LSDB中的信息,使用SPF算法计算去网络中的最佳路径。每个路由器在一个区域中有着相同的链路状态数据库,以自己为根建立一个最短路径树,计算目的网络最优路径,最小cost之各,放入转发数据库。
6、
链路状态数据的结构
收到LSU后,如果LSDB中没有这样的条目,则将其加入到LSDB中,返回一个链路状态确认,此信息扩散到其他路由器,运行SPF,更新路由表;如果有这样的条目,并信息相同,怱略;有条目信息有更新,则将其加入到LSDB中,返回一个链路状态确认,此信息扩散到其他路由器,运行SPF,更新路由表;有条目,信息更旧,向发送方发新信息。
二、OSPF分组
1、
OSPF分组类型
Hello:发现建立维持邻居关系。DBD:检查路由器的数据库之间是否同步。LSR:向另一台路由器请求特定的链路状态记录。LSU:发送请求的链路状态信息。LSAck :对其他类型的分组进行确认
2、
OSPF包头结构
OSPF被IP封装,协议号是89
版本号:V2
分组类型:5种中的哪一种
分组长度:OSPF分组长度多少字节
路由器ID:此分组谁发的
区域ID:分组来自哪个区域
校验和:
身份验证类型:指出路由器是否进行认证,明文还是密文
身份验证:
数据:因包类型改变
Hello:已知邻居组列表
DBD:LSDB摘要
LSR:需要的LSU类型和提供所需LSU的RID
LSU:完整LSA条目,一个更新中可有多个条目
LSA ck:空
3、
OSPF邻接关系的建立:hello分组
使用组播地址:224.0.0.5发送hello。路由器ID;Hello/dead(相同);邻居列表;区域ID(相同);路由器优先级;DR IP地址;BDR IP地址;身份验证密码(相同);末节区域标记(相同);
4、
交换hello建立邻接关系状态
路由器A启动down状态,向其接口发hello,224.0.0.5,其他路由器收到检查其参数,加入邻居表中init状态。所有路由器发单播应答分组。A收到后,将邻居ID加入到邻居列表中,two-way状态。如果是多路访问网络,选DR、BDR。定期交换hello,维护邻接关系,LAN 10秒、NBMA 30秒。网络类型决定了邻居如何形成邻接,点到点网络邻居自动形成邻接,多路访问网络由DR决定如何形成邻接。
5、
路由发现阶段
通过DBD、LSR、LSU、LSAck使所有OSPF路由器的LSDB完全相同(full)。形成邻接关系的路由器的状态是准启动exstart。首先通过DBD选举主从路由器,router ID高的成为主路由器,由主路由器控制DBD序号的增长。一旦有设备声称自己是从路由器,则进入exchange状态,通过LSR携带LSA头部向对方描述各自的LSDB。通过LSR携带LSA头部向对方请求相应的LSA,进入loading状态,通过LSU携带LSA进行应答,用LSAck对LSU中的LSA进行确认,最终达到full状态。多路访问中,能够接受有些路由器中有two-way状态。DR通告地址为224.0.0.5,其他路由器为224.0.0.6。
6、
LSA序列号
每个LSA在LSDB保持了序列号,32位, 0x80000001开始和结束0x7FFFFFFF,LSA每30分钏洪泛一次,以保持适当的数据库同步,每一次洪泛,序列号加1越大越好,当序列号到达最大,又回到0x80000001,大的序列号将会作废。
Show ip ospf database debug ip ospf packet
三、配置OSPF
1、
启用OSPF进程
R1(config)#router ospf 1(进程号只在本地有作用)
2、指定路由器上的哪些接口将参与OSPF进程以及网络所属的OSPF区域
R1(config-router)#network IP 通配符 area X
R1(config-if)#ip ospf X area X
3、单区域OSPF配置,多区域OSPF配置
4、路由器ID
OSPF路由器ID唯一地标识了网络中的每台OSPF路由器,进程启动时选择路由器ID,路由器是一个唯一的IP地址。选择RID:看是否配置了RID RID(config-router)#router-id 1.1.1 .1 选最大回环口地址,选最大物理口的地址,一但选定,不能换。去掉进程,再配,配置后清进程,改后重启设备
4、查看
Show Ip protocols show ip route ospf show ip ospf interface X
Show ip ospf show ip ospf neighbor detail debug ip ospf events
四、OSPF网络类型
根据物理链路类型定义了不同的网络类型
点到点:将一对路由器连接起来的网络
广播:多路访问广播网络
NBMA:连接的路由器超过两台,但没有广播功能,FR、ATM、X.25都属于NBMA,OSPF有五种运行模式。
1、点到点链路:串口接口封装PPP、HDLC、FR ATM点到点子接口、没有DR BDR的选举、OSPF自动检测这种接口类型、OSPF包发送利用多播地址224.0.0.5
2、多路访问一般为以太网和令牌环、选举DR和BDR、所有的设备必须和DR、BDR邻接、包发往DR、BDR为224.0.0.6、包发往其他设备为224.0.0.5
3、选举DR、BDR:组播发hello包、最高低先级的为DR。次高的为BDR、其次选RID最大、DR没有抢占、接口模式下指定优先级、优先级默认为1。值从0-255、优先级为0,不能参加DR、BDR选举。只能成为DRother
4、NBMA拓扑:单一的接口连接到多个站点、拓扑为多个路由器,但不支持广播
5、DR选举在NBMA网络中:OSPF认为,NBMA像其他的广播网、DR、BDR需要和其他的路由器全连接。但NBMA一般做不到、DR、BDR需要一个邻居列表、邻居不能自动发现路由器
6、NBMA网络上的OSPF运行模式:符合RFC 2328兼容模式如下: 非广播( NBMA )、 点对多点、思科附加模式:点对多点非广播、广播、点对点
选择网络类型:ip ospf network [{broadcast | non-broadcast | point-to-multipoint [non-broadcast] | point-to-point}]
7、NBMA模式:作为一个广播网络的协议(行为像一个局域网) 。所有串行端口属于同一IP子网。帧中继, X.25 , ATM网络默认为非广播模式。邻居必须是静态配置。重复的LSA更新。符合的RFC 2328。(一个IP子网、必须手工指定邻居、选举DR、BDR、DR和BDR必须与其他所有路由器都直接相连、全互联或部分互联拓扑、hello 30秒)
配置邻居:R1(config-router)#
neighbor ip-address [priority number] [poll-interval number] [cost number] [database-filter all]
RouterA(config-router)# neighbor 192.168.1.2 priority 0
RouterA(config-router)# neighbor 192.168.1.3 priority 0
校验show ip ospf neighbor
8、点到多点模式:一个IP 子网、使用OSPF组播hello分组来自动发现邻居、不选举DR和BDR,路由器发送的LSA中包含更多有关邻接路由器的信息、通常用于部分互联或星型拓扑中。Hello 30秒。
配置R1(config-if)#ip ospf network point-to-multipoint
Show ip ospf interface
9、point-to-multipoint nonbroadcast思科私有:如果没有在VC上启用组播和广播,则不能使用遵循RFC的点到多点模式,因为路由器无法使用组播hello分组动态地发现邻接路由器,此时应该使用Cisco 模式,在这种情况下,必须手工指定邻居,无需选举DR和BDR。
R1(config)# interface s0/1.2 multipoint hello 30秒
10、point-to-point Cisco模式:每个子接口属于不同的IP子网、不选举DR、BDR、用于两台路由器需要在一对接口上建立邻接关系时、接口可以是LAN接口,也可以是WAN接口。R1(config)# interface s0/1.2 point-to-point默认模式。不需要指邻居,无需选举DR和BDR。Hello 10秒
11、broadcast:让WAN接口就向LAN接口,一个IP子网,使用OSPF组播hello分组来自动发现邻居、选举DR和BDR,全互联或部分互联拓扑。
查看建立邻接过程debug ip ospf adj
五、OSPF路由类型
1、大型OSPF网络存在的问题:对路由器内存、CPU压力大、链路带宽的占用(LSA多,LSDB大)、生成巨大路由表,导致转发慢、无法压制内部动荡。
解决方案:OSPF分区,把一个大的OSPF网络分成若干个小的相互独立的OSPF网络。区域内部是链路状态(LSA的洪泛不允许被阻碍),区域和区域之间的行为是距离适量
2、
路由器类型
由于区域的划分,根据路由器接口与区域的关系,具有不同的类型,行使不同的功能。
内部路由器:把所有OSPF已知的接口放入同一个区域,LSA的传输不能被该路由器阻塞,一个区域所有内部路由器LSDB完全相同。
区域边界路由器(ABR):如果路由器的接口分属于两个或两个以上的区域,用来互联两个相互隔离的区域,针对所属的区域分别维护各自独立的LSDB,ABR是区域和区域,外部和用户交往的入口。建议ABR只互联两个区域。
骨干路由器:至少有一个接口属于area 0 用于解决区域间问题,以防止区域间的循环。
自治系统边界路由器ASBR:用来互联OSPF网络与外部网络(非OSPF)作了重发布的路由器。
3、
虚链路virtual-link
所有区域必须和区域0有直接的物理连接(ABR必须是骨干路由器)
骨干区域发生分裂,某个区域和区域0没有直接物理连接。虚链路为物理上没有直接连接到area 0的区域创建到 area 0的逻辑连接。注意事项(虚链路必须创建在连接同一个区域的两个ABR上,其中一个ABR是骨干路由器,不能穿越stub区域)。
配置:
R1(config-router)#
area 要穿越的区域 virtual-link 对方RID [authentication [message-digest | null]] [hello-interval x] [retransmit-interval x] [transmit-delay x] [dead-interval x] [[authentication-key n] | [message-digest-key n md5n]]
查看:show ip ospf show ip ospf virtual-link
一、LSA类型
1类 路由器LSA 2类 网络LSA 3类和4类 汇总LSA
5类 AS外部LSA 6类 组播OSPF LSA 7类 NSSA定义的
8类 BGP的外部属性LSA 9、10、11不透明LSA
1、1类路由器LSA:每台路由器都生成针对其所属区域的路由器链路通告,描述了路由器连接到区域的链路的状态,只在区域内扩散。LSA的报头都是20字节
LS age: 555 (DoNotAge)
Options: (No TOS-capability, DC)
LS Type: Router Links
Link State ID: 1.1.1 .1
Advertising Router: 1.1.1 .1
LS Seq Number: 80000005
Checksum: 0xB 19C
Length: 72
Number of Links: 4(头部)
Link connected to: a Stub Network一个stub 一条路由
(Link ID) Network/subnet number: 1.1.1 .1
(Link Data) Network Mask: 255.255.255.255
Number of TOS metrics: 0
TOS 0 Metrics: 1
Link connected to: another Router (point-to-point)
(Link ID) Neighboring Router ID: 3.3.3 .3
(Link Data) Router Interface address: 192.1.1.1
Number of TOS metrics: 0
TOS 0 Metrics: 64
Link connected to: a Stub Network
(Link ID) Network/subnet number: 192.1.1.0
(Link Data) Network Mask: 255.255.255.0
Number of TOS metrics: 0
TOS 0 Metrics: 64
Link connected to: a Transit Network
(Link ID) Designated Router address: 192.2.1.1
(Link Data) Router Interface address: 192.2.1.1
Number of TOS metrics: 0
TOS 0 Metrics: 10
还有一种是虚链路
Link connected to: a Virtual Link
(Link ID) Neighboring Router ID: 2.2.2 .2
(Link Data) Router Interface address: 192.4.1.2
Number of TOS metrics: 0
TOS 0 Metrics: 10
2、2类,网络LSA:DR为多路访问网络生成的网络链路通告,描述了特定多路访问网络上的一组路由器,网络链路通告在网络所在的区域内扩散。
R4#show ip ospf database network
OSPF Router with ID ( 4.4.4 .4) (Process ID 1)
Net Link States (Area 0)
Routing Bit Set on this LSA
LS age: 137 (DoNotAge)
Options: (No TOS-capability, DC)
LS Type: Network Links
Link State ID: 192.2.1.1 (address of Designated Router)
Advertising Router: 1.1.1 .1
LS Seq Number: 80000002
Checksum: 0xF55
Length: 32
Network Mask: /24
Attached Router: 1.1.1 .1
Attached Router: 2.2.2 .2
3、汇总LSA 3类
ABR生成,将一个区域内的网络通告给OSPF AS中的其他区域。默认情况下,LSA不包含汇总路由,将通告区域所有子网。
R4#show ip ospf database summary
OSPF Router with ID ( 4.4.4 .4) (Process ID 1)
Summary Net Link States (Area 0)
Routing Bit Set on this LSA
LS age: 11 (DoNotAge)
Options: (No TOS-capability, DC, Upward)
LS Type: Summary Links(Network)
Link State ID: 4.4.4 .4 (summary Network Number)
Advertising Router: 2.2.2 .2
LS Seq Number: 80000001
Checksum: 0x317
Length: 28
Network Mask: /32
TOS: 0 Metric: 11
4、
汇总LSA 4类:描述了前往ASBR的路由。1类LSA被限制在区域内,ABR从ASBR那里收到1类LSA后,将向外发送一个4类汇总LSA。向其他区域通告该ASBR
R4#show ip ospf database asbr-summary
OSPF Router with ID ( 4.4.4 .4) (Process ID 1)
Summary ASB Link States (Area 0)
LS age: 139
Options: (No TOS-capability, DC, Upward)
LS Type: Summary Links(AS Boundary Router)
Link State ID: 5.5.5 .5 (AS Boundary Router address)
Advertising Router: 4.4.4 .4
LS Seq Number: 80000001
Checksum: 0x808D
Length: 28
Network Mask: /0
TOS: 0 Metric: 10
5、外部LSA 5类:描述了前往OSPF AS外的网络的路由,它是由ASBR发送的,被扩散到整个AS。
R4#sh ip ospf database external
OSPF Router with ID ( 4.4.4 .4) (Process ID 1)
Type-5 AS External Link States
Routing Bit Set on this LSA
LS age: 875
Options: (No TOS-capability, DC)
LS Type: AS External Link
Link State ID: 192.6.1.0 (External Network Number )
Advertising Router: 5.5.5 .5
LS Seq Number: 80000001
Checksum: 0x3490
Length: 36
Network Mask: /24
Metric Type: 2 (Larger than any link state path)
TOS: 0
Metric: 20
Forward Address: 0.0.0 .0
External Route Tag: 0
查看show ip ospf database
6、OSPF路由选择表和路由类型
O OSPF区域内路由(router lsa和network lsa):路由器所在区域内的网络,以路由器LSA和网络LSA的方式被通告。
O IA OSPF区域间路由(汇总LSA):位于路由器所在区域之外但在OSPF AS内的网络,以汇总LSA的方式被通告。
O E1 1类外部路由:位于当前AS之外的网络,以外部LSA的方式被通告。
O E2 2类外部路由:位于当前AS之外的网络,以外部LSA的方式被通告。
7、OE1和OE2
不同在于它们计算metric的方式不同。
OE1:cost=外部cost加上分组经过的每条链路的内部成本
OE2: cost=外部cost
8、配置OSPF LSDB过载保护
Router(config-router)#
max-lsa 进程中存储LSA的最大数量 [threshold-percentage达到最大LSA数量的多大比例发警告,默认75%] [warning-only超过只警告,默认关闭] [ignore-time 超过忽略时间默认5 分钟] [ignore-count可连续进入忽略状态的次数默认5次] [reset-time 多长时间将忽略计数重置为0默认10分钟 ]
9、修改成本度量值
Cost=100Mbits/带宽。默认OSPF成本为接口配置带宽的倒数。要操纵成本,可使用命令ospf cost、bandwidth、auto-cost reference-bandwidth。
七、OSPF路由汇总