OSPF协议初级
1)基本概念
标准的链路状态型路由协议—路由器之间传递拓扑
版本:OSPFv2–IPv4 OSPFv3–IPv6
更新方式:触发更新 存在周期更新30min
OSPF网络需要结构化部署:1、区域划分 2、IP地址规划
链路状态型路由协议的距离矢量特征–区域之内传递拓扑,区域之间传递路由表
优先级 10 COST值=参考带宽÷接口带宽
2)OSPF数据包
hello包:用于发现、建立并保活(10s)邻居关系。存在全网唯一的Router-ID,用于路由器的身份标识,使用的IP地址的方式表示
DD包:Database Description,数据库描述包
LSR:链路状态请求
LSU:链路状态更新
LSAck:链路状态确认
3)OSPF状态机:
down:未启动协议。一旦启动协议并发出hello包之后,立即进入下一状态
Init:等待邻居回复的状态。若收到的hello包中携带了自己的RID,则和对方一起进入下一状态
2-way:表示邻居关系建立
条件匹配:若成功,则进入下一状态;若失败,仅hello包保活
exstart:预启动,使用假的DD报文比较RID,大着优先进入下一状态。
exchange:双方交换DD报文
loading:使用LSR/LSU/LSAck获取未知的路径拓扑或者路由
full:邻接关系建立,收敛完成。
4)QSPF工作过程
启动协议后,设备本地基于224.0.0.5组播发出hello包,发现并建立邻居关系,生成邻居表;之后进行条件匹配,若成功,则进入下一状态;若失败,则仅hello包10s进行邻居关系保活。RID大者优先进入下一状态,先交换DD,然后再使用LSR/LSU/LSACK收集未知的LSA,生成LSDB–数据库表设备基于此LSDB,使用SPF算法计算出去往目标的最佳路径,生成路由表,收敛完成。之后10s周期保活,30min周期性比对DD
网路结构发生变化:
1、新增₰断开:直连发生变化的设备通过DBD/LSR/LSU/LSAck完善即可
2、设备无法通信:hello 10s 保活 dead time 40s–计时结束后,删除邻居关系以及从邻居处学习到的所有路径
3、名词解释:
4、LSA:链路状态通告–OSPF中发送的拓扑信息或路由
5、LSDB:链路状态数据库,LSA的集合
5)OSPF基本配置
[p1]ospf 1 router-id 1.1.1.1 //启动协议,并程号。同时可以选择配置路由器的RID。若不配置,路由器自己选择,环回接口最大>物理接口最大
宣告:1、激活接口 2、发布拓扑或路由 3、区域划分
[r1-ospf-1]area 0 //进入区域
[r1-ospf-1-area-0.0.0.0]network 172.16.1.0 0.0.0.255
反掩码
反掩码:32位二进制,使用点分十进制的方式表示,由连续的0和连续的1构成。
若反掩码为0,表示IP对应位固定;若为1,表示可变。
区域划分规则:
1、必须拥有区域0(骨干区域),所有非骨干的区域必须直连骨干区域
2、必须拥有ABR–区域边界路由器
当设备启动OSPF之后,使用224.0.0.5发出hello包,发现并建立邻居关系,生成邻居表:
dispaly osp peer brief //查看邻居关系摘要
邻居的区域ID:area 0—>0.0.0.0
area 12345—>0.0.48.57
00000000 00000000 00110000 00111001
当设备使用DD/LSR/LSU/LSAck数据包收集完所有未知的LSA时,本地生成LSDB–链接状态数据库表(LSA的集合)
display ospf lsdb //查看本地的LSDB表
OSPF Process 1 with Router ID 1.1.1.1
Link State Database
Area: 0.0.0.0
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 2.2.2.2 2.2.2.2 502 48 80000007 1
Router 1.1.1.1 1.1.1.1 863 48 80000006 1
Network 172.16.4.1 1.1.1.1 863 32 80000002 0
Sum-Net 172.16.3.0 2.2.2.2 796 28 80000001 2
Sum-Net 172.16.5.0 2.2.2.2 856 28 80000001 1
本地基于LSDB,使用SPF算法计算出到达目标网段的最佳路径,生成路由表
display ip routing-table protocol ospf //仅查看OSPF学习到的路由条目
Route Flags: R - relay, D - download to fib
Public routing table : OSPF
Destinations : 3 Routes : 3
OSPF routing table status :
Destinations : 3 Routes : 3
Destination/Mask Proto Pre Cost Flags NextHop Interface
172.16.2.0/24 OSPF 10 2 D 172.16.4.2 GigabitEthernet
0/0/1
172.16.3.0/24 OSPF 10 3 D 172.16.4.2 GigabitEthernet
0/0/1
172.16.5.0/24 OSPF 10 2 D 172.16.4.2 GigabitEthernet
0/0/1
OSPF routing table status :
Destinations : 0 Routes : 0
路由表中:
所有OSPF计算所得的路径使用OSPF表示
OSPF优先级为10
Cost=参考宽带÷接口宽带 默认,宽带为100Mbits/s
OSPF选路规则:
若去往某一个目标拥有多条路径时,优先选择整条路径控制层面入接口Cost之和最小的
控制层面:路由来的方向
数据层面:数据去的方向
当接口带宽大于参考宽带时,cost取1,会导致选路不佳。
可以通过修改参考带宽来解决
[r1]ospf 1
[r1-ospf-1]bandwidth-reference ?
INTEGER<1-2147483648> The reference bandwidth (Mbits/s)
[r1-ospf-1]bandwidth-reference 10000 //修改参考带宽
注意:参考带宽的修改需要全网一致
6)成为邻接关系的条件–关注网路类型
点到点:在一个网络内只能存在两个节点—串线
MA(多路访问):在一个网络内不限制节点数
若是点到点网络类型,则从邻居关系直接建立邻居关系。
若是MA网络类型,则需要选举DR/BDR角色,为了消除重复更新,选举时间40s
其他所有没有定义角色的路由器成为DROther
DR与DROther之间是邻接关系
BDR与DROther之间是邻接关系
DROther与DROthere之间是邻居关系
DR与BDR之间是邻接关系
选举规则:
1、接口优先级 默认所有路由器接口优先级为1
2、比较router-ID 大优
DR/BDR选举是非抢占的
可以通过修改设备参加的接口的优先级实现控制选举,
[r2]interface GigabitEthernet 0/0/0
[r2-GigabitEthernet0/0/0]ospf dr-priority 5
reset ospf 1 process //重启OSPF进程
不能将所有的接口优先级全改为0
7)OSPF扩展配置
1、缺省路由
[r1]ospf 1
[r1-ospf-1]default-route-advertise //非强制下发缺省
非强制下发缺省:若想要下发缺省,自身的路由表中必须有缺省路由
r1]ospf 1
[r1-ospf-1]default-route-advertise always //强制下发缺省
2、 静默接口–只接收不发 OSPF数据包。一般用于连接用户的接口,禁止用于路由器之间的接口
[r1]ospf 1
[r1-ospf-1]silent-interface GigabitEthernet 0/0/1
8)实验配图![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/36c3593457960e1eccd93c6269124189.png)
9)实验过程
1、配置每点的IP地址![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/0089e5cf031fd52cf95e8a266177e511.png)
2、点击打开第一个路由器![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/da0d89b09d011420ba5c03a3638c9cc0.png)
输入[p1]ospf 1 router-id 1.1.1.1 //启动协议,并程号。同时可以选择配置路由器的RID。若不配置,路由器自己选择,环回接口最大>物理接口最大
[p1-ospf-1]area 1 //进入区域
[p1-ospf-1-area-0.0.0.0]network 172.16.1.0 0.0.0.255
反掩码
[p1-ospf-1-area-0.0.0.1]network 10.1.1.0 0.0.0.255
[p1-ospf-1-area-0.0.0.1]network 0.0.0.0 0.0.0.0
2、点击打开第二个路由器![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/f6bfe0e3b17c7084d23399ce476081ea.png)
输入[p2]ospf 2 router-id 2.2.2.2
[p2-ospf-2]area 1
[p2-ospf-2-area-0.0.0.1]network 172.16.2.0 0.0.0.255
[p2-ospf-2-area-0.0.0.1]network 10.1.1.0 0.0.0.255
[p2-ospf-2-area-0.0.0.1]quit
[p2-ospf-2]area 0
[p2-ospf-2-area-0.0.0.0]network 10.1.2.0 0.0.0.255
display ospf lsdb //查看本地的LSDB表
重复上述步骤
3、打开PC命令行
输入PC>ping 202.100.1.2
通了