OSPF:它是四层协议,协议字段值89

     邻接关系为7级,才能彼此传递LSA


LSA分为多种类型,OSPF度量值就是COST


区域内的每台路由器都有相同的拓扑结构


层次结构设计的要素:


多区域的时候必须有区域0,而且其他非0区域必须与区域0相连


层次化的有点:


1、减少路由的条目

  区域内不能自动汇总,但可以手动汇总或聚合,但不能在区域内汇总或聚合

  域间LSA不是拓扑信息,而是路由信息,域间和域×××总

  只能对路由信息进行汇总

2、将拓扑变化的影响局限在一个区域内

3、特定的LSA只能在特定区域内泛洪

  LSA基于泛洪机制来传播

  不同的LSA在不同的范围内的传输

4、划分区域,实现优化LS协议

  骨干路由器:BACKBONE ROUTER

  边界路由器:ABR(area border router)

非骨干区域必须连入骨干区域


在MA网络中,为什么需要选举DR和BDR呢?


因为如果在MA网络中有多个路由器的话,就有N多个邻接关系


为了减少负载,就让DR和BDR与非DR形成链接关系,而非DR之间是不能形成邻接关系


SPF特点:


1、完全一致的LSDB

2、以自己为根来计算路径,开销基于带宽(使用分段带宽)

  10^8/带宽(bps)  然后将开销值相加


OSPF的五种报文:

1、Hello报文,时间间隔为10秒或30秒,dead时间是hello时间的4倍

2、LSU,该更新报文包含若干个LSA完整报文

3、LSR,是更新查询报文

4、LSAck,确认报文

5、DBD(database description)


OSPF周期发送更新间隔是30分钟一次,当然也支持触发更新

LSDB的老化时间,缺省为60分钟


序列号是用来唯一标识一个LSA,越大越新

范围是:0x8000 0001(min)--0x7fff ffff(max)


DBD:包含LSA的报头,也就是LSA摘要。然后基于需求发送所需的LSA

LSR:就是知道了DBD了后,需要哪个LSA,就发送此报文,来告诉你需要哪个LSA

LSU:包含多个完整的LSA信息

LSAck:用来进行确认。

Hello报文不需要确认,DBD需要确认,但不是LSAck来确认。而是基于序列号确认,就是你收到哪个序

列号报文,然后再回复相同的序列号报文回复,这就是确认。

LSU需要确认,用LSAck来确认。有多少条LSA,就回复多少条LSAck。


OSPF报文格式:

1、version :版本2用来支持IPV4,版本3用于IPV6

2、type:就是指出OSPF报文的类型

3、报文长度:连同报头整个报文的长度

4、RID:OSPF域内唯一的路由器ID,点分十进制表示,仅作为标识

  第一步是手工配置,在所有up,up的环回口选举最大的IP地址,其次就是物理接口up up最大的IP地        

  址。可以用于LSA的标识,EIGRP中不行。还可做DR和BDR选举的参数

5、区域ID:也是32位

6、校验和:

7、认证类型:0不认证,1明文认证,2密文认证


HELLO报文里的字段:带*为创建邻居的必备关系

1、RID

2、hello时间间隔和dead时间间隔,OSPF的hello发送间隔的时间取决于网络类型(六种)*

3、neighbor RID

4、area ID*

5、路由器优先级

6、DR的IP地址

7、BDR的IP地址

8、认证密钥*

9、末节区域标记*


邻接关系建立的过程:down--init--two-way--exstart--exchange--loading--full


发送第一个hello后,就进入init

接收方再发送一个hello回复,就进入two-way状态,这个two-way状态是第一个发送方,因为它接受到

hello报文看到了自己的RID,所以就是two-way状态

MA网络类型进入two-way,开始要选举DR和BDR


exstart状态发送第一份DBD firstDBD,和常规的DBD有点不同,相互交换2-3个DBD,为了选举主/从关


系,因为主路由器是用来发送DBD,所以需要选举,谁的RID高,谁就是master

DBD中flag格式:i+m+m/s i 是否第一个DBD  m  more   master/slaver

如果网段的MTU的字段值不同的话,将会一直停在exstart状态

可以开启高级特性,让彼此忽略mtu,接口模式命令如下:ip ospf mtu-ignore


exchange 主路由带头发送正常的DBD,彼此协商完后,当DBD不一致的时候,发送LSAck进行确认。


loading就是交换LSA,LSA同步后,进入full状态


debug ip ospf packet

debug ip ospf adjacency

clear ip ospf press 清除ospf进程数据


ospf修改hello时间后,dead和wait时间都会自动修改为hello时间的4倍

但修改dead或wait时间后,hello时间不会自动改变


环回接口IP地址宣告进OSPF进程,自动将环回口处理为一个末节主机来处理,防止路由黑洞


你想得到正常的IP网络的掩码,可以使用这个命令:ip ospf network point-to-point


DR、BDR的选举原则:

1、比较MA网络的OSPF优先级,越高越好(0-255),缺省为1

2、MA网段的RID,越高越好

这段时间就是wait时间


接口模式下的输入如下命令:ip ospf prority 10  修改优先级,但是如果DR和BDR已经选举了

那么它们就是不可抢占,即使优先级高也没用。除非清除ospf进程

如果优先级为0的话,就不可能成为DR或BDR


DR和BDR是基于一个MA网段进行选举的


在帧中继中,HUB节点就是DR,不能有BDR


总结:

一台运行OSPF的路由器,只要在一个接口开启了OSPF进程,则该接口会立即监听发往224.0.0.5的

组播流量,而仅当一个节点成为DR或BDR时,该接口才会同时监听发往224.0.0.5和224.0.0.6的

组播流量

在一个MA网段内,所有路由器发送给DR和BDR的报文的目的地址都是224.0.0.6

而DR将LSA整合之后,以224.0.0.5的地址发送给网段内的其他路由器