8.13.1 IP Packet Head
IP报头可以看出协议号为89,TTL=1即OSPF packet转发不会超过1跳,一些路由器可以设置Precedence bit来运行一些具有优先次序的报文处理,包括WFQ—加权公平队列 或者 WRED--加权随机预先检测序列
8.13.2 OSPF Packet
OSPF packet的头部长度为24字节
Version: 当前最新为版本2
Type: 类型1为Hello包; 类型2为数据库描述包(DDP); 类型3为链路状态请求包(LSR); 类型4为链路状态更新包(LSU); 类型5为链路状态确认包(LSAck)
Area ID: 区域ID,如果是虚链接,区域ID为0.0.0.0(即Backbone Area的区域ID),因为虚链接被认识是骨干区域的1部分
AuType: 认证类型 0为null,即没有认证; 1为简单口令验证(即明文); 2为MD5加密验证
8.13.3 Hello Packet
Network Mask: 发送这个Hello包的接口的掩码,如果收到这个Hello包的接口的掩码和它不能精确匹配,这个Hello包将被丢弃
Router Dead Interval: 始发路由器在宣告邻居路由器无效前,将要等待的从邻居路由器发出的Hello包的时长
Router Priority:优先级,参与DR/BDR选举之用,默认为1, 如果为0的话将不能被选举为DR/BDR
DR/BDR: DR/BDR的接口的IP地址(而非DR/BDR的RID).在选举DR/BDR的过程中,这个DR/BDR字段的值并不一定就是最终选举出来的DR/BDR的值.如果没有DR/BDR(未选举或者是不需要DR/BDR的网络类型),该字段的值就为0.0.0.0
Neighbor: 是一个循环重复字段,列出了始发路由器在过去的一个RDI时间内受到的有 效Hello包的网络上的所有neighbor
8.13.4 DDP(Database Description Packets)
Interface MTU: 在报文不分段的情况喜爱,始发路由器接口可以发送的最大IP报文大小。 在虚链接上这个字段的值设置为0x0000
I: Initial bit,初始化位.最初的DDP把该位设置为1,后续的设置为0
M: More bit,后续位,当DDP不是这一系列的DDP中最后一个DDP的时候,该位设置为1
MS: Master/Slave bit.主/从位.Master为1,Slave设置为0
8.13.5 Link State Request Packet
Link State Type:
用来表明LSA的类型
Link State ID:
是LSA头部中和类型无关的字段
Advertising Router:
宣告这条LSA的路由器的RID
8.13.6 Link State Update Packet
8.13.7 Link State Ack Packet
8.14 OSPF LSA格式
8.14.1 LSA packet head:
8.14.2 Router LSA
8.14.3 Network LSA
Show ip ospf database network
8.14.4 Network Summary and ASBR Summary LSA
8.14.5 AS External LSA
8.14.6 NSSA External LSA
8.14.7 The Options Field
8.15 OSPF配置及命令汇总
8.15.1 OSPF Process Configuration Commands Router ospf process-id : *process-id 1~65535 *no router ospf process-id 删除进程
启动OSPF进程,并分配RID。RID除非进程重新启动或者RID使用的接口状态是不活动的,否则不会改变RID,配置OSPF前,检查loopback口是否配置ip addr。Loopback不是强制的,但可以稳定OSPF进程 Route ospf process-id vrf name: *process-id 1~65535 *name: 一个×××路由选择转发表<VRF>实例的名称。通过OSPF进程学到路由将替代全球的ip路由选择表被注入vrf的路由选择表
在MPLS-×××环境下,此命令用于在ISP和×××用户间传送×××用户的路由
P :ISP提供商 CE:用户边缘路由器 PE:提供商边缘路由器
8.15.2 OSPF Area Commands
Area area-id nssa 在一个stub区域或者完全stub区域,stub区域的ABR会阻止OSPF外部路由(LSA5)在stub区域内广播。故ASBR将不会成为stub区域的一部分。NSSA区域中,允许路由器作为ASBR redistribution,被配置为NSSA区域的ASBR将产生7类路由
Area area-id nssa default-information-originate
OSPF ABR或者ASBR中产生一个能够进入NSSA区域的OSPF NSSA 外部类型2的缺省路由,在ABR上无须定义。在ASBR上配置该命令,则需要配置缺省路由。在B上配置后,C会产生一条O*N2的路由指向B
注意:此条命令仅用在NSSA ABR 或者ASBR上
Area area-id nssa no-redistribution
在下图中,EIGRP的信息将从ABR上redistribution进入到NSSA区域,故可以采用此条命令,防止NSSA产生由EIGRP产生的外部路由
注意:此条命令仅用在ASBR上,其它NSSA每台路由器只需 area x nssa
Area area-id nssa no-summary
该命令用于在OSPF ABR,阻止OSPF区域间路由进入NSSA区域,该命令同时产生一条道路一个OSPF区域间的缺省路由
注意:no-summary仅用在NSSA ABR上
Area area-id range ip-addr mask [advertise | not-advertise]
OSPF可以会聚从骨干网或者区域0到非0 OSPF区域的OSPF路由,或者从非0区
域到骨干网的OSPF路由。 OSPF路由汇聚只能在ABR上发生,ABR应是一个在区域0,并且在非0区域有接口的路由器。默认情况下 advertise是打开的, not-advertise用于抑制ABR广播默认路由
注意: 1。 如果其中156.26.32.0/28 down了以后,
IOS将自动为这条中断链路创建一条默认路由 ip route 156.26.32.0 255.255.255.192 Null0
2。Area x range 仅用在OSPF ABR上
Area area-id stub
域配置成为stub区域后,ABR将产生一条默认路由,通告到整个stub区域,域间路由能通过但 5类的外部路由不能进入
注意: Stub区域不能作为virtual-link的穿透区域, Stub区域内的每台路由器都应配置stub area
Area area-id stub no-summary
将区域配置为完全stub区域后, 将会阻止区域间路由和外部路由通过
No-summary仅用在ABR上,ASBR不能成为完全末节的一部分。不能作为virtual-link的穿透区域
Area transit-area-id virtual-link router-id
所有非0 OSPF区域必须具有到骨干或者区域0的连接,虚拟链路用于修复被分割的区域,但传送区域不能为stub区域。
Area transit-area-id virtual-link router-id authentication-key password
如上例,在Vlink上不使用认证是不安全的,故可以在v-link链路上使用认证。
Area transit-area-id virtual-link router-id [dead-interval | hello-interval | retransmit-interval | transmit-delay]
Area transit-area-id virtual-link router-id message-digiest-key key-id md5 password
8.15.3 OSPF reference-bandwidth
Auto-cost reference-bandwidth bandwidth
8.15.4 Default Route Generation
Default-information originate [always | metric | Metric-type]
在区域内产生默认路由,并广播到区域内,此命令用于ASBR。
Default-information originate route-map route-map-name
Router B:
default-information originate route-map exist
!
access-list 1 permit 3.3.3.0 0.0.0.3
!
route-map exist permit 10
match ip address 1