OSPF-Router ID
Router ID:
作用:用于在自治系统中唯一标识一台运行OSPF的路由器的32位整数,每个运行OSPF的路由器都有一个Router
ID。相当于OSPF路由器的名称(跟IP无关,通常以IP地址方式标识主要目的是方便管理员管理)
自治系统(Autonomous System):
一个自治系统是指使用同一种路由协议交换路由信息的一组路由器。
配置方式:
手动配置:
1.全局配置 在设备特权模式下配置 [R1]router id 1.1.1.1
2.进程配置 在OSPF进程后面配置 [R1]ospf 1 router-id 1.1.1.1
进程下配置优于全局下配置;
自动选择:
1.优先选择环回接口地址作为router-id,如果有多个环回接口则选择IP地址大的那个。
2.如果不存在环回接口,则选择物理接口中IP地址最大的。
**自动选择router-id缺点:**
在V-Link配置时需要指定对方的Router id,手工配置的Router ID不会改变
V-Link更加可靠。自动选择则每次选择出的router id可能会不一致,导致V-link失效。
OSPF协议优选手动配置的Router-id,建议管理员手动配置。
如果修改了Router ID则需要重启OSPF进程才会生效;
<R1>reset ospf process
Warning: The OSPF process will be reset. Continue? [Y/N]:y
邻居与邻接
在OSPF网络中,为了交换路由信息,邻居设备之间首先要建立邻接关系,邻居(Neighbors)关系和邻接(Adjacencies)关系是两个不同的概念:
邻居关系:OSPF设备启动后,会通过OSPF接口向外发送Hello报文,收到Hello报文的OSPF设备会检查报文中所定义的参数,如果双方一致就会形成邻居关系,两端设备互为邻居,2way状态指邻居关系已正常建立。
邻接关系:形成邻居关系后,如果两端设备成功交换DD报文和LSA,才建立邻接关系,Full状态指邻接关系已正常建立。
报文类型
Hello报文
用于建立和维持邻居关系
DD报文
描述本地LSDB的摘要信息,用于两台路由器进行数据库同步
LSR报文
用于向对方请求所需的LSA
路由器只有在OSPF邻居双方成功交换DD报文后才会向对方发出LSR报文
LSU报文
用于向对方发送其所需要的LSA
LSAck报文
用来对收到的LSA进行确认
报文封装
OSPF报文直接运行于IP之上,IP协议字段号为89。OSPF有五种报文类型,但是OSPF报文头部格式都是相同的。
除Hello报文外,其它的OSPF报文都携带LSA信息。
报文头部
OSPF报文头部信息,所有的OSPF报文使用相同的OSPF报文头部。
Version :OSPF协议号,应当被设置成2。
Type:OSPF报文类型,OSPF共有五种报文。
Packet length:OSPF报文总长度,包括报文头部。单位是字节。
Router ID:生成此报文的路由器的Router ID。
AreaChecksum:是指一个对整个数据包(包括包头)的标准IP校验和。
AuType:验证此报文所应当使用的验证方法。
Authentication:验证此报文时所需要的密码等信息。
Hello报文
Network Mask:发送Hello报文的接口的网络掩码
HelloInterval:发送Hello报文的时间间隔。单位为秒。
Options:标识发送此报文的OSPF路由器所支持的可选功能。
Rtr Pri:发送Hello报文的接口的Router Priority,用于选举DR和BDR。
RouterDeadInterval:宣告邻居路由器不继续在该网段上运行OSPF的时间间隔,单位为秒,通常为四倍HelloInterval。
Designated Router:发送Hello报文的路由器所选举出的DR的IP地址。如果设置为0.0.0.0,表示未选举DR路由器。
Backup Designated Router:发送Hello报文的路由器所选举出的BDR的IP地址。如果设置为0.0.0.0,表示未选举BDR路由器。
Neighbor:邻居路由器的Router ID列表。表示本路由器已经从该邻居收到合法的Hello报文。
Option字段
Option可选字段出现在每一个Hello数据包、DD和每个LSA中的。
Option字段允许路由器和其他路由器进行一些可选性能的通信。
Option字段包含信息
字段解释:
DN:用来避免在MPLS VPN中出现环路。当3类、5类和7类LSA中设置了DN位之后,接收路由器就不恩能够在它的OSPF路由计算中使用该LSA。
O:该字段指出始发路由器支持Opaque LSA(类型9、类型10和类型11)。
DC位:当始发路由器支持按需链路上的OSPF的能力时,该位将被设置。
EA:当始发路由器具有接收和转发外部属性LSA的能力时,该位被置位。
N位:只在Hello数据包中。N=1表明路由器支持7类LSA。N=0表明该路由器将不接收和发送NSSA LSA。
P位:只用在NSSA LSA。该位将告诉一个非纯末节区域中的ABR路由器将7类LSA转换为5类LSA。
MC位:支持MOSPF。
E位:当始发路由器具有接收OSPF域外部LSA的能力时,该位置位。在所有5类LSA和始发于骨干区域以及非末节区域的LSA中,该位置为1。而始发与末节区域的LSA中,该位置为0。如果Hello报文中该位表明一个接口具有接收和发送5类LSA的能力。
MT位:表示始发路由器支持多拓扑OSPF。
LSA报文头部
LS age:
此字段表示LSA已经生存的时间,单位是秒。
LS type:
此字段标识了LSA的格式和功能。常用的LSA类型有五种。
Link State ID:
此字段是该LSA所描述的那部分链路的标识。例如Router ID等。
Advertising Router:
此字段是产生此LSA的路由器的Router ID。
LS sequence number:
此字段用于检测旧的和重复的LSA。
LS type,Link State ID和Advertising Router的组合共同标识一条LSA。
DD报文
接口MTU:是指在数据包不分段的情况下,始发路由器接口可以发送的最大IP数据包大小。当在虚连接时,该在段为0x0000。
Option:同hello报文。
I位:当发送的是一系列DD报文中的第一个数据包时,该为置位为1。后续的DD报文将该位置位0。
M位:当发送的数据包还不是一个系列DD报文中的最后一个数据包时,该为置为1。如果是最后一个DD报文,则将该为置为0。
MS位:在数据库同步中,主要用来确认协商过程中的序列号。
DD Sequence Number:DD的序列号报文。
LSA头部信息。
LSR报文
Link State Type:用来指明LSA标识是一个路由器LSA、一个网络LSA还是其他类型的LSA。
Link State ID:不同类型LSA该字段意义不同。
Advertising Router:始发LSA通告的路由器的路由器ID。
LSU报文
Number of LSA:指出这个数据包中包含的LSA的数量。
LSA:明细LSA信息
LSU报文
Header of LSA:LSA头部信息。