OSPF开放式最短路径优先协议。
标准的链路状态路由协议、无类别协议,
更新时携带子网掩码;
组播更新224.0.0.5/6;
需要结构化部署的协议–区域划分、地址规划
采用触发更新、周期更新(30min)
OSPF的数据包
1:hello包 :用于发现、建立、维持、周期地保活邻居关系 存在router ID
2:DBD包:数据库描述包
3:LSR:链路状态请求
4:LSU:链路装填更新–用于携带各种的LSA信息
4:LSACK:链路状态确认
OSPF的状态机
1:Down:一旦本地发出hello包就进入下一个状态
2:Init初始化:接收到的hello包中,若存在本地的RID,则进入下一状态
3:2Way 双向通信:邻居关系建立的标志
4:Exstart预启动:类hello的DBD,进行主从关系的选举,RID数字大的为主,优先进入下一状态
4:Exchange准交换:使用真正的DBD包,进行数据库目录的共享,需要ACK来进行确认
5:Loading 加载:使用LSR\LSU\LSACK来获取未知的LSA信息
6:Full转发:邻接关系建立的标志
OSPF的工作过程
当启动OSPF配置完成后,本地采用组播向周围所有的邻居发送hello包,若收到其他邻居的hello包,则建立邻居关系,并生成邻居表。和所有邻居进行条件匹配,若匹配失败,则维持邻居关系,仅用hello包周期保活。若条件匹配成功,建立邻接关系;邻接关系之间使用LSR\LSU\LSAC来获取未知的LSA信息;当收集到所有的LSA信息后,本地生成LSDB–数据库表,再在本地基于LSDB计算到达所有未知网段的最佳路径,然后将其加载到路由表中。
OSPF实验
实验要求:
1:R3不能宣告环回,全网可达
2:R2-R5所在MA网络,只有R2为DR,其他为DRother
3:area1开启明文认证,area2开启密文认证
4:R3和R4开启明文认证,R4和R5开启密文认证
5:所有环回做被动
6:R1和R2加快收敛速度为原来的1/2
实验配置
R1
Router(config)#interface s1/0
Router(config-if)#ip address 12.1.1.1 255.255.255.0
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#router ospf 1
Router(config-router)#router-id 1.1.1.1
Router(config-router)#network 12.1.1.0 0.0.0.255 area 1
Router(config-router)#exit
Router(config)#ip route 0.0.0.0 0.0.0.0 123.1.1.1
Router(config)#interface s1/0
Router(config-if)#ip ospf hello-interval 5
Router(config-if)#exit
Router(config)#router ospf 1
Router(config-router)#area 1 authentication
Router(config-router)#exit
Router#clear ip ospf process
Reset ALL OSPF processes? [no]: y
R2
Router(config)#interface s1/0
Router(config-if)#ip address 12.1.1.2 255.255.255.0
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#interface f0/0
Router(config-if)#ip address 123.1.1.1 255.255.255.0
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#router ospf 1
Router(config-router)#router-id 2.2.2.2
Router(config-router)#network 12.1.1.0 0.0.0.255 area 1
Router(config-router)#network 123.1.1.0 0.0.0.255 area 0
Router(config-router)#exit
Router(config)#ip route 0.0.0.0 0.0.0.0 123.1.1.4
Router(config)#interface s1/0
Router(config-if)#ip ospf hello-interval 5
Router(config-if)#exit
Router(config)#router ospf 1
Router(config-router)#area 1 authentication
Router(config-router)#exit
Router#clear ip ospf process
Reset ALL OSPF processes? [no]: y
R3
Router(config)#interface f0/0
Router(config-if)#ip address 123.1.1.4 255.255.255.0
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#interface s1/0
Router(config-if)#ip address 34.1.1.2 255.255.255.0
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#interface loopback 0
Router(config-if)#ip address 172.16.3.1 255.255.255.0
Router(config-if)#exit
Router(config)#router ospf 1
Router(config-router)#router-id 5.5.5.5
Router(config-router)#network 123.1.1.0 0.0.0.255 area 0
Router(config-router)#network 34.1.1.0 0.0.0.255 area 2
Router(config-router)#passive-interface loopback 0
Router(config-router)#area 2 authentication message-digest
Router(config-router)#exit
Router(config)#interface s1/0
Router(config-if)#ip ospf authentication message-digest
Router(config-if)#ip ospf authentication-key 1 cisco
Router(config-if)#exit
Router(config)#interface f0/0
Router(config-if)#ip ospf priority 0
Router(config-if)#exit
Router(config)#interface s1/0
Router(config-if)#ip ospf priority 0
Router(config-if)#exit
Router#clear ip ospf process
Reset ALL OSPF processes? [no]: y
R4
Router(config)#interface f0/0
Router(config-if)#ip address 123.1.1.3 255.255.255.0
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#interface s1/0
Router(config-if)#ip address 23.1.1.2 255.255.255.0
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#interface s1/1
Router(config-if)#ip address 34.1.1.1 255.255.255.0
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#interface loopback 0
Router(config-if)#ip address 172.16.2.1 255.255.255.0
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#router ospf 1
Router(config-router)#router-id 4.4.4.4
Router(config-router)#network 123.1.1.0 0.0.0.255 area 0
Router(config-router)#network 23.1.1.0 0.0.0.255 area 2
Router(config-router)#network 34.1.1.0 0.0.0.255 area 2
Router(config-router)#network 172.16.2.0 0.0.0.255 area 2
Router(config-router)#exit
Router(config)#ip route 0.0.0.0 0.0.0.0 34.1.1.2
Router(config)#router ospf 1
Router(config-router)#passive-interface loopback 0
Router(config-router)#area 2 authentication message-digest
Router(config-router)#exit
Router(config)#interface s1/1
Router(config-if)#ip ospf authentication message-digest
Router(config-if)#ip ospf authentication-key 1 cisco
Router(config-if)#exit
Router(config)#interface s1/0
Router(config-if)#ip ospf authentication message-digest
Router(config-if)#ip ospf message-digest-key 1 md5 cisco123
Router(config-if)#exit
Router(config)#interface f0/0
Router(config-if)#ip ospf priority 0
Router(config-if)#exit
Router(config)#interface s1/0
Router(config-if)#ip ospf priority 0
Router(config-if)#exit
Router(config)#interface s1/1
Router(config-if)#ip ospf priority 0
Router(config-if)#exit
Router#clear ip ospf process
Reset ALL OSPF processes? [no]: y
R5
Router(config)#interface f0/0
Router(config-if)#ip address 123.1.1.2 255.255.255.0
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#interface s1/0
Router(config-if)#ip address 23.1.1.1 255.255.255.0
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#interface loopback 0
Router(config-if)#ip address 172.16.1.1 255.255.255.0
Router(config-if)#exit
Router(config)#router ospf 1
Router(config-router)#router-id 3.3.3.3
Router(config-router)#network 123.1.1.0 0.0.0.255 area 0
Router(config-router)#network 23.1.1.0 0.0.0.255 area 2
Router(config-router)#network 172.16.1.0 0.0.0.255 area 2
Router(config-router)#passive-interface loopback 0
Router(config-router)#area 2 authentication message-digest
Router(config-router)#exit
Router(config)#ip route 0.0.0.0 0.0.0.0 23.1.1.2
Router(config)#interface s1/0
Router(config-if)#ip ospf authentication message-digest
Router(config-if)#ip ospf message-digest-key 1 md5 cisco123
Router(config-if)#exit
Router(config)#interface f0/0
Router(config-if)#ip ospf priority 0
Router(config-if)#exit
Router(config)#interface s1/0
Router(config-if)#ip ospf priority 0
Router(config-if)#exit
Router#clear ip ospf process
Reset ALL OSPF processes? [no]: y
实验测试
Router#ping 172.16.3.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.3.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/9 ms
Router#ping 172.16.2.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.2.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/6/26 ms
Router#ping 172.16.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/3/11 ms
Router#ping 23.1.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 23.1.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/5/21 ms
Router#ping 34.1.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 34.1.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/8/24 ms