参考博客原址:https://blog.csdn.net/weixin_34077371/article/details/85100742
背景:
OSPF为什么要划分LSA类型?这是由于OSPF区域化结构决定的,在没有区域化结构的路由协议中路由数据库里是没有类型之分的,如EIGRP。由于OSPF的区域特征所以就会有相应的LSA类型来决定OSPF数据库里的LSA类型。最后经过SPF算法把相应的LSA类型的路由提到路由表中形成不同类型的OSPF路由:
O - OSPF
IA - OSPF inter area
N1 - OSPF NSSA external type 1
N2 - OSPF NSSA external type 2
E1 - OSPF external type 1
E2 - OSPF external type 2
OSPF路由类型实例:
R4#show ip route ospf
6.0.0.0/16 is subnetted, 1 subnets
O E2 6.6.0.0 [110/20] via 172.16.145.1, 00:03:28, FastEthernet0/0 //OE2表示该路由由ASBR引入的外部类型2(metric值保持不变路由
172.16.0.0/16 is variably subnetted, 4 subnets, 2 masks
O IA 172.16.36.0/29 [110/75] via 172.16.145.1, 00:03:33, FastEthernet0/0 //O IA,表示OSPF域内的区域间路由
O IA 172.16.12.0/30 [110/74] via 172.16.145.1, 03:59:08, FastEthernet0/0
O IA 172.16.13.0/30 [110/11] via 172.16.145.1, 03:59:08, FastEthernet0/0
192.168.1.0/32 is subnetted, 1 subnets
O 192.168.1.1 [110/11] via 172.16.145.1, 00:00:16, FastEthernet0/0 192.168.2.0/32 is subnetted, 1 subnets//表示OSPF区域内路由
O IA 192.168.2.2 [110/75] via 172.16.145.1, 03:58:08, FastEthernet0/0
192.168.3.0/32 is subnetted, 1 subnets
O IA 192.168.3.3 [110/12] via 172.16.145.1, 03:59:08, FastEthernet0/0
路由器收到LSA后的处理过程:
1.如果有该LSA信息,查看序列号;如果序列号相同,忽略这条LSA;如果序列号大于本地的序列号,将其加到数
据库,并进行SPF,更新路由表;如果序列号小于本地的序列号,将一个包含自己的LSA新信息发送给发送方。
2.如果数据库没有该LSA信息,将其加到数据库表,并发送一个ACK返回,并运行SPF,更新路由表。
LSA类型简表:
1类LSA
路由器LSA,每个路由器都会产生一条,一个边界路由器可能产生多个LSA类型1,路由表中用O表示。域内产生不跨越其他区域,宣告内部区域的直连邻居和路由接口信息(Prefix,Mask,Metric)。
Link ID=Router ID;ADV Router=Router ID
注意:1类LSA包含3种Link信息:
Another Router(直连着谁)
Stub Network(仅两个路由器互联,如P2P,其中Loopback也被视为此种网络类型)
Transit Network(在MA网络中两个以上的路由器互联)
1类LSA数据库实例:
R4#show ip ospf database router 4.4.4.4 //查看OSPF数据库中1类LSA的命令
OSPF Router with ID (4.4.4.4) (Process ID 1) //此路由器OSPF进程1下RID为4.4.4.4的1类LSA数据库信息
Router Link States (Area 0) //区域0的1类LSA,一个边界路由器可能产生多个LSA类型1
LS age: 239//LSA的年龄,即LSA从生成到查看此LSA时所经过的时间,以秒为单位,最长为3600秒
Options: (No TOS-capability, DC) //用于通知对端到端是否具有处理按需拨号链路的功能
LS Type: Router Links //标识LSA类型,这里是Router Links类型,即类型1LSA,用来描述路由器周围的链路状态
Link State ID: 4.4.4.4//标识LSA所描述的网络环境,其取值和LSA的类型有关,在Router Links类型的LSA中,此值为发出此LSA的路由器的Router ID
Advertising Router: 4.4.4.4 //始发此LSA的路由器的Router ID
LS Seq Number: 80000002 //LSA的序列号,用于检测旧的或者重复的LSA
Checksum: 0xDD07 //除LS age字段以外的整个LSA的校验和
Length: 48 //LSA的长度,包括20个字节的LSA报头部分
Number of Links: 2 //表示有2条链路状态信息
以上为LSA的头部信息
Link connected to: a Stub Network
(Link ID) Network/subnet number: 192.168.4.4
(Link Data) Network Mask: 255.255.255.255
Number of TOS metrics: 0
TOS 0 Metrics: 1
Link connected to: a Transit Network //注意:此处的Stub不是特殊区域的末梢区域,它在这里表示路由器周围存在的链路类型是P2P Network。一台OSPF路由器周围可能存在的链路状态分为以下4类:
到另一台路由器的直连路由器(Another Router)
连接到transit网络(在MA网络中两个以上的路由器互联,如以太网)
连接到stub网络(仅两个路由器互联,如P2P,其中Loopback也被视为此种网络类型)
虚连接(Virtual Link)
(Link ID) Designated Router address: 172.16.145.1//Link ID用于标识周围存在的链路,取值和连接的链路类型有关。如果是到另一台路由器的点对点连接,取值为邻居路由器的Router ID;如果连接到transit网络,其取值为DR的IP地址。这里连的是Transit Network,所以取值为DR的IP地址。如果连接到stub网络,取值为相应子网的网络地址。如果是虚连接,取值是邻居路由器的Router ID。
(Link Data) Router Interface address: 172.16.145.4//Link Data取值和连接的链路类型有关,如果是到另一台路由器的点对点的连接或连接transit网络(如以太网),取值为与对端直连的接口IP;如果连接到stub网络(StubNet),取值是相应子网的子网掩码(子网网络地址在Link ID中表示)。
Number of TOS metrics: 0
TOS 0 Metrics: 10 //引入外部路由的花费值。
TOS:服务类型,该数据包所需要提供的服务,即最小时延、最大吞吐量、最高可靠性、最小费用等。OSPF和IS-IS都能根据这些字段值进行路由决策。
2类LSA
网络LSA,区域内宣告(带掩码信息),在MA网络中才有,由DR发出,如果由1类LSA的“Another Router”的方式来表示路由器之间的连接关系,那么如果有n个路由器,则每个路由器就会有n*(n-1)条"Another Router"表达条目,其实归根到底,大家都连接在同一个网段上,这将非常繁琐而且不必要,因此统一由DR通过2类LSA来表示有哪些路由附加到此网络(Attached Router-ID)。
Link ID=DR的接口IP;ADV Router=DR的Router ID
注意:NBMA网络不能反映真实链路开销,因为NBMA网络类型属于MA网络拓扑类型,会由DR(Hub)产生2类LSA统一宣告Attached Router。spoke收到以后,会认为自己和其他所有的Spoke都连接在同一个网段上,所以互相之间是直接可达的。但是实际上,在“部分互联”网络拓扑上,Spoke必须经过Hub中转才能互相访问。这样链路开销就被减少几岁了一半,Cisco的point-to-multipoint可以解决这个问题!
2类LSA数据库实例:
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: 424
Options: (No TOS-capability, DC)
LS Type: Network Links
Link State ID: 172.16.145.1 (address of Designated Router)
Advertising Router: 1.1.1.1
LS Seq Number: 80000002
Checksum: 0x6F69
Length: 32
Network Mask: /29
Attached Router: 1.1.1.1
Attached Router: 4.4.4.4
3类LSA
网络摘要LSA,宣告域间路由,能泛洪到整个AS(OSPF域),由ABR产生并发出,每穿越一个ABR其Advertising Router就会变成此ABR的RID。包含本区域中的所有路由信息,包括网络号和掩码。在路由表中用O IA(区域间路由)表示。
Link ID:路由(网络号) ;Advertising Router:ABR的RID(经过一个ABR,就会变为这个ABR的RID)
规则:
ABR转换非0区域的1、2类到区域0的3类
转换区域0的1、2类到非0区域形成3类
转换区域0的3类到非0区域的3类(如果本区域存在1、2类,区域0的3类LSA不糊被转换,因为没有必要了)
不会有非0区域的3类,再转进区域0。
为什么3类LSA叫summary LSA?
因为ABR会对区域内的1、2类LSA做一个归纳,形成路由(就是3类LSA)发布到其他区域,这样其他区域的路由器就不需要知道我区域内的拓扑详细信息,只需要知道通过发布3类LSA的ABR就可以到达相关网段,以及开销是多少就可以了。虽然OSPF是链路状态路由协议,但是3类LSA具有典型的距离矢量特征-逐跳传递路由信息,并累加开销。
3类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: 1973
Options: (No TOS-capability, DC, Upward)
LS Type: Summary Links(Network)
Link State ID: 172.16.12.0 (summary Network Number) //网段信息
Advertising Router: 1.1.1.1 //宣告RID也就是本区域ABR RID
LS Seq Number: 80000002
Checksum: 0xCF62
Length: 28
Network Mask: /30 //掩码信息
TOS: 0 Metric: 64
Routing Bit Set on this LSA
LS age: 1973
Options: (No TOS-capability, DC, Upward)
LS Type: Summary Links(Network)
Link State ID: 172.16.13.0 (summary Network Number)
Advertising Router: 1.1.1.1
LS Seq Number: 80000002
Checksum: 0x4C24
Length: 28
Network Mask: /30
TOS: 0 Metric: 1
Routing Bit Set on this LSA
LS age: 1728
Options: (No TOS-capability, DC, Upward)
LS Type: Summary Links(Network)
Link State ID: 192.168.2.2 (summary Network Number)
Advertising Router: 1.1.1.1
LS Seq Number: 80000002
Checksum: 0x1A6F
Length: 28
Network Mask: /32
TOS: 0 Metric: 65
Routing Bit Set on this LSA
LS age: 1729
Options: (No TOS-capability, DC, Upward)
LS Type: Summary Links(Network)
Link State ID: 192.168.3.3 (summary Network Number)
Advertising Router: 1.1.1.1
LS Seq Number: 80000002
Checksum: 0x8C3A
Length: 28
Network Mask: /32
TOS: 0 Metric: 2
4类LSA
ASBR摘要LSA,配合5类ASBR LSA使用,因为5类LSA宣告的是外部ASBR的RID,而其他区域是无法通过RID到达ASBR所在的区域的。1、2类无法域间传递,3类没有RID,所以只能靠4类LSA服务。
特点:
把ASBR的RID传播到其它区域,让其它区域的路由器得知ASBR的位置。
由ABR产生并发出,穿越一个ABR其Advertising Router就会变成此ABR的RID。
与类型3的区别在于类型4描述到OSPF网络的外部路由,而类型3描述区域内路由,这些链路信息不被扩散到完全末梢区域,路由表中用IA表示。
Link ID:ASBR的RID;Advertising Router:ABR的RID(经过一个ABR,就会变为这个ABR的RID)
规则:
在ASBR直连的区域内不会产生LAS4,因为ASBR会发出LSA1,其中会指明自己是ASBR。
ABR收到一条5类LSA时,会检查这个5类LSA的ADV(ASBR的RID)是不是在本区域内,也就是检查ASBR的RID是否有LSA1/2,如果有,说明这个ASBR在自己区域内,所以就会向区域0通过4类LSA,告诉区域0的其他ABR,通过我可以到达ASBR。如果没有,说明自己不知道ASBR的存在,我需要等待从区域0传来的到达ASBR的消息-其他路由器给我的4类LSA。
其他ABR收到关于此ASBR的4类LSA,知道有某个ABR能到达ASBR了,将4类LSA从区域0分发给他们各自连接的其他普通区域,使得其他区域的路由器知道前往ASBR的路径。同时将此4类LSA的ADV改成自身,这点和LSA3一样,只有LSA3通告了网段可达,而4类LSA通告了ASBR可达。
只有一种情况,ABR不向其他所属的非0区域转发4类LSA,就是这个4类LSA本身发往区域0的,我就是ASBR的所在区域。
区域路由器到达另一个区域网段(3类LSA)或者ASBR路由器(4类LSA),都需要先到达ABR,查找ABR的LSA1/2,找到出接口。
3、4类LSA最后都要结合1、2类LSA才能发包。所以没有5类LSA就没必要有4类LSA。但并不是说有5类LSA就一定存在4类LSA。
4类LSA数据库实例:
R4#show ip ospf database asbr-summary
OSPF Router with ID (4.4.4.4) (Process ID 1)
Summary ASB Link States (Area 0)
Routing Bit Set on this LSA
LS age: 694
Options: (No TOS-capability, DC, Upward)
LS Type: Summary Links(AS Boundary Router)
Link State ID: 3.3.3.3 (AS Boundary Router address)
Advertising Router: 1.1.1.1
LS Seq Number: 80000002
Checksum: 0xDA4F
Length: 28
Network Mask: /0
TOS: 0 Metric: 1
5类LSA
特点:
域外路由,不属于某个区域;通过重分布其他路由协议进入OSPF产生。
由ASBR产生并泛洪到整个AS,传播过程中不会改变Advertising Router。
包含域外的路由信息。
forward address为0.0.0.0时,forward metric是本路由器去往此ASBR的开销。
除了末梢区域、完全末梢区域和次节末梢区域外,LSA5在整个AS中发送,路由表中用E1或E2表示。其中,E1会累积OSPF域内传播的开销(forward metric),E2不会累加,而是保持重分布时的
Link ID:路由(网络号) ;Advertising Router:ASBR的RID(不改变)
注意:
metric-type:OSPF引入 外部路由时,其路由器需要计算到达外部路由的花费。metric-type分为type1和type2,默认为type2。type1,计算的花费值就是到达ASBR的花费+LSA所携带的metric值,即度量值=数据报文所经过的各内部链路成本+被分配的外部路径成本(type2的度量 值);type2,计算的花费就是LSA所携带的“种子metric”(默认值为20),即度量值=被分配的外部路径成本。所以type1优于type2,推荐使用type1。
5类LSA数据库实例:
R4#show 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: 1719
Options: (No TOS-capability, DC)
LS Type: AS External Link
Link State ID: 6.6.0.0 (External Network Number )
Advertising Router: 3.3.3.3
LS Seq Number: 80000003
Checksum: 0xF293
Length: 36
Network Mask: /16
Metric Type: 2 (Larger than any link state path)
TOS: 0
Metric: 20
Forward Address: 0.0.0.0
External Route Tag: 0
其他类型LSA
以下几种类型的LSA在CCNP阶段不要求掌握,在这里列出只是给大家做个扩展:
LSA6组成员LSA(Group membership LSA):多播OSPF(MOSPF),MOSPF可以让路由器利用链路状态数据库的信息构造用于多播报文的多播发布树,目前不支持。
LSA7 NSSA外部LSA(NSSA External LSA):R1#show ip ospf database nssa-external
特殊的域外路由,只存在于NSSA区域中;由一个连接NSSA的ASBR产生的关于NSSA的信息,在NSSA内扩散,并且可以被ABR转换为LSA5。路由表中用N1或N2表示。
Link ID:路由(网络号) Advertising Router:ASBR的RID(只在NSSA区域中)
LSA8 BGP的外部属性LSA(External attributes LSA for BGP)
LSA9 不透明LSA(本地链路范围) (opaque LSA):目前主要用于MPLS多协议标签交换协议
LSA10 不透明LSA(本地区域范围) (opaque LSA):目前主要用于MPLS多协议标签交换协议。
LSA11 不透明LSA(AS范围) (opaque LSA):目前主要用于MPLS多协议标签交换协议。
LSA总结