ospf:开放式最短路径优先协议
特点:
- 跨层封装到三层 ,协议号89。
- 组播更新:224.0.0.5(所有的ospf)/224.0.0.6(选举dr/bdr)。
- 存在触发更新和周期更新。
- 使用spf算法。
- 存在区域概念。
ospf的数据包类型
- hello包,用于发现邻居,建立邻居关系以及保活。 hello包中必须一致的参数:hello time dead time时间,区域ID,认证字段,特殊标记位。
- DBD包,数据库摘要。分为两种,第一种类似于hello包用于邻接关系的建立。第二种为正常的DBD包即携带数据库摘要,相连的路由器通过DBD包进行比对,发现出自己不存在的拓扑信息‘
- LSR包,通过比对后发送lsa请求包。
- LSU包,收到lsa请求后,发出携带这些lsa信息的数据包。
- LSACK,确认包LSR包,LSU包,都需要进行确认。
ospf的状态机
- down:一旦发出hello包进入下一状态。
- init:收到RID后进入下一状态 。
- two-way:邻居关系建立,如条件匹配成功,则可以进入下一状态。匹配条件:点到点直接进入full,MA网络选举DR/BDR后,进入,非DR/BDR,保持邻居关系。
- exstart:使用类似hello包的DBD包进行主从选举,主可以进入下一状态
- exchange:通过DBD包进行拓扑目录的交换,需要lsack确认。
- loading:通过lsr/lsu/lsack,完善数据库表。
- full:转发状态,邻接关系建立完成。
ospf的工作过程
当协议启动后,通过hello包发现邻居,获取RID,建立邻居表
邻居表建立后,通过条件匹配使用DBD/LSR/LSU/LSACK来生成,完善数据库表,获得数据库表后,生成有向图,先根据数据库表中的网络类型(TransitNet,point to point),来生成最短路径树,然后根据网络类型(StubNet),添加陆由条目,从而生成路由表。
ospf的接口网络类型
- lookback(环回):无hello包,32位主机发送
- 点到点:hello time10s不选dr自动建邻。
- BMA:hello time10s 选dr 不自动建邻。
- NBMA:mgre,当拓扑为中心到站点建议使用point-to-multipoint 直接full状态,避免重复更新。当拓扑为全连时建议使用broadcast ,同时固定DR位置。
ospf:解决不规则区域
- 远离骨干区域的非骨干区域
- 不连续的骨干区域
1.tunnel 创建tunnel,将其宣告到ospf中,存在选路不佳,对穿越区域有影响的缺点。
2.虚链路 在两台ABR上配置,使未连接骨干的ABR得知骨干的存在,之后将域间路由进行交互;
取消周期的更新和邻居保活;
r2(config)#router ospf 1
r2(config-router)#area 1 virtual-link 4.4.4.4
area1 为穿越区域。
优点:选路佳、占用中间区域资源少;
缺点:不可靠
3.多进程重发布,启动两个不同ospf进程,通过重发布,共享路由表。
R1(config)#router ospf 1
R1(config-router)#redistribute ospf 100 subnets
R1(config)#router ospf 100
R1(config-router)#redistribute ospf 1 subnets
ospf的数据库表LSA
ospf减少更新量
-
减少骨干区域的lsa
-
域间:地址规划 尽量可以将每个区域汇总成一条。
R1(config-router)#area 1 range 192.168.1.0 255.255.255.0 -
域外:
R1(config-router)#summary-address 172.16.1.0 255.255.255.0
-
-
减少非骨干区域的lsa
-
末梢区域:不能为骨干区域,不能存在虚链路,不能存在ASBR
R1(config-router)#area 1 stub (本区域都需要做)
拒绝4、5类LSA;产生一条3类缺省 (控制层面) -
完全末梢区域:不能为骨干区域,不能存在虚链路,不能存在ASBR
R1(config-router)#area 1 stub no-summary(只在ASBR上做,其他的只做末梢即可。)
进一步拒绝3类lsa,生成一条缺省 -
nssa区域:不能为骨干区域,不能存在虚链路,存在ASBR
R1(config-router)#area 1 nssa(本区域都需要做)
拒绝4、5类LSA;产生一条3类缺省 (控制层面) -
完全nssa区域:不能为骨干区域,不能存在虚链路,存在ASBR
R1(config-router)#area 1 nssa no-summary(只在ASBR上做,其他的只做nssa即可。)
进一步拒绝3类lsa,生成一条缺省
-
ospf的配置
-
启动
R1(config)#router ospf 1(进程号,本地生效)
R1(config-router)#router-id 1.1.1.1(唯一) -
查看
. R2#show ip ospf neighbor(邻居表)
Neighbor ID Pri State Dead Time Address Interface
1.1.1.1 1 FULL/DR 00:00:34 12.1.1.1 FastEthernet0/0
3.3.3.3 1 FULL/BDR 00:00:38 23.1.1.2 FastEthernet0/1
R1#show ip ospf database (数据库简表)
OSPF Router with ID (1.1.1.1) (Process ID 100)
Router Link States (Area 0) **1类LSA**
Link ID ADV Router Age Seq# Checksum Link count
1.1.1.1 1.1.1.1 419 0x80000002 0x00BE4B 1
2.2.2.2 2.2.2.2 75 0x80000005 0x00BA74 2
Net Link States (Area 0)**2类LSA**
Link ID ADV Router Age Seq# Checksum
12.1.1.1 1.1.1.1 419 0x80000001 0x004AD0
Summary Net Link States (Area 0)**3类LAS**
Link ID ADV Router Age Seq# Checksum
2.2.2.2 2.2.2.2 274 0x80000001 0x00FA31
23.1.1.0 2.2.2.2 309 0x80000001 0x001407
Summary ASB Link States (Area 0**)4类LSA**
Link ID ADV Router Age Seq# Checksum
3.3.3.3 2.2.2.2 207 0x80000001 0x00BE68
Router Link States (Area 1)
Link ID ADV Router Age Seq# Checksum Link count
1.1.1.1 1.1.1.1 487 0x80000001 0x006FCD 0
Type-5 AS External Link States**5类LSA**
Link ID ADV Router Age Seq# Checksum Tag
3.3.3.0 3.3.3.3 214 0x80000001 0x00216A 0 R1#show ip route (路由表)
O IA 2.2.2.2 [110/2] via 12.1.1.2, 00:03:27, FastEthernet0/0
3.0.0.0/24 is subnetted, 1 subnets (域间路由)
O E2 3.3.3.0 [110/20] via 12.1.1.2, 00:02:15, FastEthernet0/0
23.0.0.0/24 is subnetted, 1 subnets (域外路由)
O IA 23.1.1.0 [110/2] via 12.1.1.2, 00:04:01, FastEthernet0/0
172.16.0.0/32 is subnetted, 1 subnets
O 172.16.1.1 [110/2] via 12.1.1.2, 00:00:03, FastEthernet0/0
12.0.0.0/24 is subnetted, 1 subnets(本区域路由)
-
宣告 R1(config-router)#network 172.16.1.0 0.0.0.255 area 1(带反掩码,带区域号)
R2(config)#interface f0/0
R2(config-if)#ip ospf 1 area 0 -
缺省
3类缺省:必须由特殊区域自动产生—末梢区域、完全末梢、完全NSSA
5类缺省:从域外重发布进入到OSPF域;进行该缺省发布的设备,其路由表中必须先存在缺省路由–该路由的产生方式不关注
R3(config)#router ospf 1
R3(config-router)#default-information originate
默认进入的缺省路由,为外部类型2;
类型1—起始度量为1 ----叠加内部度量值
类型2—起始度量为2-----不叠加内部度量值
R3(config-router)#default-information originate metric-type 1 修改类型7类缺省:正常仅在普通的NSSA环境配置;因为普通NSSA为防止出环不自动产生缺省路由;
R3(config)#router ospf 1
R3(config-router)#area 1 nssa default-information-originate
R3(config-router)#area 1 nssa default-information-originate metric-type 1 -
认证
接口明文
R2(config)#interface f0/0
R2(config-if)#ip ospf authentication
R2(config-if)#ip ospf authentication-key 123
接口密文
R2(config)#interface f0/0
R2(config-if)#ip ospf authentication message-digest
R2(config-if)#ip ospf message-digest-key 1 md5 123
区域认证(相当于每个接口做认证)
R2(config)#router ospf 1
R2(config-router)#area 1 authentication 明文
R2(config-router)#area 1 authentication message-digest 密文 -
汇总见减少骨干LSA
-
加速收敛时间
修改接口hellotime,dead time自动4倍关系匹配;修改接口hellotime,dead time自动4倍关系匹配;
R2(config)#interface f0/0R2(config)#interface f0/0
R2(config-if)#ip os
R2(config-if)#ip ospf he
R2(config-if)#ip ospf hello-interval 5 -
附录 E
若一台ABR将两条3类LSA导入其他区域;同时这两条LSA的link-id相同;
假设:短掩码网段先进入,link-id正常显示;长掩码进入时link-id加反掩码
20.1.0.0/16–link-id 20.1.0.0
20.1.0.0/24–link-id 20.1.0.255
若长掩码先进入,在短掩码进入时,长掩码的信息被刷新为反掩码;