OSPF动态路由协议
1.OSPF概念
OSPF(Open Shortest Path First开放式最短路径优先)是一种动态路由协议,属于内部网关协议(Interior Gateway Protocol.简称IGP),是基于链路状态算法的路由协议。
2.OSPF的运行原理
(1) OSPF的五中报文,如下图所示:
Type | 报文名称 | 报文功能 |
1 | Hello | 发现和维护邻居关系 |
2 | Database Description | 发送链路状态数据库摘要 |
3 | Link State Request | 请求特定的链路状态信息 |
4 | Link State Update | 发送详细的链路状态信息 |
5 | Link State Ack | 发送确认报文 |
(2) OSPF的运行
(1)OSPF以组播的方式在所有开启OSPF协议的接口发送Hello报文,用来查看是否有OSPF邻居;
(2)发送Hello报文之后,若发现邻居则建立OSPF邻居关系,形成邻居表项;
(3)建立邻居表后,向各邻居发送LSA报文相互通告路由,形成LSDB(链路状态数据库);
(4)基于LSDB,通过SPF(ShortestPath First)算法,计算最佳路径(cost度量值最小)后放入路由表中。
3. OSPF区域概念
区域:从逻辑上将设备划分为不同的组,每个组用不通的区域号(Area ID)来标识。在OSPF中,用OSPF Area来标识一个OSPF区域,分为骨干区域和非骨干区域。
骨干区域(区域0):每一个OSPF必须拥有一个区域0,骨干区域必须连接所有非骨干区域,一般来说区域内没有终端用户。
非骨干区域(非0区域):非骨干区域必须连接骨干区域通信,一般情况下用于连接终端设备和资源。
4.OSPF状态
(1) Down State:邻居的初始状态,表示没有从邻居受到任何信息。
(2) Init State:路由设备受到了Hello报文,但是自己的Router ID不在所收到的Hello报文的邻居列表中,表示尚未与邻居建立双向通信关系。
(3) Two-way State:设备收到了一个Hello包,且Hello包中包括了自己的router-id,表示此时双方可以进行通信。
(4) Exstart State:First DBD确认主从关系,router-id大的为主,先发包。
(5) Exchange State:交互DBD相互学习。
(6) Loading State:LSR与LSU的交互过程。
(7) Full State:所有交互已经完成。
5.OSPF身份
DR(Designated Router):指定路由器,OSPF协议启动后开始选举而来。
BDR(Back-up Designated Router):备份指定路由器,同样是由OSPF启动后选举而来,当指定路由器出现问题,备份指定路由器将成为指定路由器工作。
DR others:其他路由器,非DR非BDR的路由器的都是DR others。
ABR(Area Border Router):区域边界路由器,用于连接不同OSPF区域,处于区域边界。
ASBR(Autonomous System Boundary Router):自治系统边界路由器,位于OSPF和非OSPF网络之间。
骨干路由器:至少有一个接口连接到骨干区域(区域0)。
6.OSPF选举DR与BDR
Router-ID(Router Identifier,路由器标识符):用来在一个OSPF域中唯一标识一台路由器。(Router-ID可通过手工配置,一个OSPF域中不能有相同的Router-ID)。
DR、BDR的选举规则:比较router-id
在OSPF系统启动后,若40s内没有新设备接入就会开始选举,当DR失效或故障时,BDR会变成DR,重新选BDR。所有DR、BDR,DRothers说的都是接口,而不是设备,不同网段间选DR,BDR,而不是以OSPF区域为单位。
DR与BDR的选举规则:
(1) 比较优先级:最高优先级值的路由器被选为DR(默认优先级相同:1),次高优先级的为BDR
(2) 比较router-id:当优先级相同时,拥有最高router-id的成为DR,次高的成为BDR
7.实验配置
打开R1
[R1]int g0/0/1 //进入PC1接口
[R1-GigabitEthernet0/0/1]ip address 192.168.1.254 24
[R1]int g0/0/0 //进入路由器接口
[R1-GigabitEthernet0/0/0]ip address 192.168.3.1 24
[R1-GigabitEthernet0/0/0]q
[R1]ospf 1 //启动OSPF,进程都为1
[R1-ospf-1]area 0 ///进入区域0
[R1-ospf-1-area-0.0.0.0]network 192.168.3.0 0.0.0.255
[R1-ospf-1]area 1 //再进入区域1
[R1-ospf-1-area-0.0.0.1]network 192.168.1.0 0.0.0.255
[R1-ospf-1-area-0.0.0.1]q
[R1]dis ip routing-table
打开R2
[R2]int g0/0/1
[R2-GigabitEthernet0/0/1]ip address 192.168.2.254 24
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]ip address 192.168.3.2 24
[R2-GigabitEthernet0/0/0]q
[R2]ospf 1
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]network 192.168.3.0 0.0.0.255
[R2-ospf-1]area 2
[R2-ospf-1-area-0.0.0.2]network 192.168.2.0 0.0.0.255
[R2]dis ip routing-table
注意:通过OSPF协议,PC2去往PC1的数据包,通过下一跳3.1网段进行转发