OSPF:数据包类型

根据OSPF数据包type字段数值的不同,OSPF数据包类型分为5种,不同的type,其后面的内容也不同。
type=1 hello数据包
type=2 数据库描述包–DBD
type=3 链路状态请求包—LSR
type=4 链路状态更新包—LSU
type=5 链路状态确认包—LSAck
1.hello包-----周期10s
编号为1的OSPF数据包
功能:用于发现,和维持邻居关系的,以及DR/BDR的选举(2way)
2.链路状态数据库描述数据包-------DBD
编号为2的OSPF数据包
对ospf的网络拓扑进行描述
数据包在链路状态数据库交换期间产生,主要作用有三个:
①选举交换链路状态数据库过程中的主从关系
②确定交换链路状态数据库过程中的初始序列号
③交换所有的LSA数据包头部
3.链路状态请求数据包------LSR
编号为3的OSPF数据包
用于请求在DBD交换过程中发现的本路由器中没有的或已过时的LSA包细节
4.链路状态更新数据包—LSU
编号为4的OSPF数据包
功能:用于存储和传递路径信息
用于将多个LSA泛洪,也用于对接收到的链路状态更新进行应答
5.链路状态确认数据包-----LSAck
编号为5的数据包
用于对接收到的LSU进行确认。
如果发送确认的路由器的状态是DR或者BDR,确认数据包发送到OSPF的组播地址224.0.0.5
如果发送确认的路由器状态不是DR或BDR,确认将被发送到OSPF路由器组播地址224.0.0.6

OSPF状态机:

1.状态down
进程刚刚开始 路由器发送hello包
特殊状态attempt
只出现在NBMA网络类型中.指路由器尽最大的努力去建立邻居.每隔hello间隔就发送hello包.但是还是未收到对方的hello包.
2.状态init
路由器收到目标地址为224.0.0.5的组播hello包(该hello包里没有包含自己的RID).立马单播hello包进行回应.包里包含自己和对方的RID.但是还没有放进邻居表.初始化状态
3.状态2-way
路由器收到单播的hello回应包,包里包含了自己的RID,说明邻居成功建立.加入邻居表.进入2-way状态.对方也是这样(邻居)
当建立邻居之后,如果是在MA网络中.会选举DR/BDR,根据hello包里包含的RID来选举,如果接口优先级一样,那么RID最大的为DR.其次BDR.
4.状态exstart
该状态只出现在DRRTOHER和DR/BDR之间 DROTHRE之间只停留在2-way. 在该状态下.建立主从关系.确定由谁发起交换.
5.状态exchage
由DR发起交换.每台DRTOHER都把自己的DBD发送给DR(包括BDR),然后DR组播给所有的路由器.
6.状态loading
每台路由器把收到的DBD和自己的LSDB对比.对没有的LSA发送LSR请求,对方以LSU回应.自己以LSACK确认,每台路由器都这样.数据库同步形成
7.状态full
同步后进入full 根据LSDB运行SPF 得出路由表(邻接)

OSPF各个类型的LSA

LSA1:路由器LSA,每一台路由器都会产生,列出了路由器的所有链路或接口,并指明其出站得代价
  LSA2:网络LSA,每个BMA网络中,DR产生,描绘一个BMA网络所有与之相连的Router
   注:1)LAN网络,使用LSA2定位一个(多路)网络点,使用LSA2的网络号,作为安装进路由表的条目;而点对点网络,这些都是有LSA1完成的
   2)即使BMA网络穿越P-to-P的网络,依然会在整个区域内泛洪LSA2 DR负责发送一个链路状态ID为DR接口IP,包含所有BMA中的所有Router
  LSA3:网络汇总LSA(show ip ospf database summary)
   ABR发送网络汇总到另外一个区域,边界路由器将所有到达目的的最低代价链路打包发到另一个区域
   注意:如果存在虚链路,那么虚链路中非连接Area 0的ABR将会把所有链路信息打包成LSA3,通过虚链路传送给Area0,所以如果有地址汇总,需要在虚链路两边同时做
  LSA4:ASBR汇总LSA(show ip ospf database asbr-summary),由ABR发出,通告一个主机地址,掩码为0,用于到达一个ASBR
   注:LSA 3,4越区域时会重生,LSA 5 不会,整个AS内一致
   另外:一般情况下NSSA/Stub区域都不应该会出现LSA 4,LSA3/LSA4在OSPF链路状态通告里面都属于同一种类型的summary,允许LSA3通过的地方,也应该允许LSA4通过,只是因为没有LSA5通过而没有产生LSA4
  LSA5:自治系统外部LSA(show ip ospf database external),ASBR始发,用于通告到达AS外部的缺省路由,在整个AS内泛洪
  LSA6:组成员LSA,组播OSPF使用的LSA
  LSA7用于NSSA区域中的ASBR宣告外部网络,forward address上标明为ASBR的地址;在NSSA区域的ABR上,默认会将此LSA7转换成LSA5

OSPF特殊区域:

/

作用

STUB

过滤4/5类LSA

totally-STUB

过滤3/4/5类LSA

NSSA

过滤4/5类LSA(远端发送)

totally-NSSA

过滤3/4/5类LSA

OSPF接口网络类型

网络类型

OSPF接口网络类型(工作方式)

环回

Loopback—无hello包,基于32位主机进行加表

点到点

point to point—hello time 10s,自动建邻,不选举DR/BDR

BMA

broadcast—hello time 10s,自动建邻,选举DR/BDR

NBMA

point to multicast—hello time 30s,自动建邻,不选举DR/BDR

OSPF选路规则:

简言之:“O”路由,优先于“O IA”路由,优于“O E1”路由,优于“O E2”路由,同等类型路由比较cost
   OSPF域间选路原则:先选择域内路由,在选择区域间路由,如果是区域间路由,优选通过Area0
   对于外部路由,忽略O和O IA的区别,直接选择最小到达ASBR的COST,O E1和O E2所计算出的路径应该是相同的
   比较顺序:1.优选O E1路由
   2.如果类型相同,比较Metric,在发布外部路由进来时,默认为20,如果手动修改了,则会选择最小的Metric
   3.如果Metric相同,如果forward address均为0.0.0.0 则比较达到ASBR最短的路径
   4.如果改变了forward address的值,则比较到达forward address路径的开销
   如果仍相同,则会出现负载均衡