OSPF---开放式最短路径优先协议
基本概念
协议使用范围----IGP
链路状态型协议----传递拓扑
传递真实掩码信息----无类别路由协议
OSPF版本
OSPFv1(实验阶段,没有人在用了)
OSPFv2----IPv4
OSPFv3----IPv6
SPF算法(最短路径优先算法)
OSPF传递的是LSA信息(链路状态通告)
OSPF更新方式
触发更新
周期链路状态刷新-----30min
OSPF更新地址---组播
224.0.0.5/224.0.0.6
OSPF开销值===参考带宽/实际带宽(参考带宽默认为100Mbps)(多个带宽分别计算后相加)
OSPF进行跨层封装----基于IP协议进行封装,协议号89---干了传输层的事:标识出OSPF
(跨了传输层,因为OSPF是 为了计算路由的,并且路由器是三层设备,处理IP不需要处理TCP/UDP,内部需承载的是LSA信息,只需要源目MAC 、源目IP进行发送,不需要端口号、传输层协议-----减小了TCP头部封装的至少20字节大小)
OSPF区域化结构-->降低资源消耗
OSPF为了适应大中型网络环境,进行了结构化部署------区域划分
OSPF区域若为一个------------单区域OSPF网络
若内部划分多个-----多区域OSPF网络
区域划分的特点
区域内部传递拓扑信息,区域间传递路由信息。
区域划分是基于路由器接口的。(路由器两个端口分别在两个区域)
区域编号----32bit(标识不同区域--例:256号区域0.0.1.0)
区域0-----骨干区域
非骨干区域----非0区域
区域划分规则
所有的非骨干区域都必须和骨干区域直接相连----星型拓扑
骨干区域唯一
区域边界路由器----ABR
同时属于多个区域,且至少有一个接口属于骨干区域。
在骨干区域中至少存在一个活跃的邻居。
目的:1.限制LSA的传播范围
2.减少LSA的数量(不同区域之间不互相发送LSA)
OSPF的数据包类型
hello报文
用来周期性发现、建立、保活OSPF邻居关系。
10S发送一次hello报文,来确认邻居的存在
如果一个dead time时间没有收到邻居发送给自己的hello报文,则认为邻居不存在,dead time一般为hello时间的四倍,默认情况下为40S。
Router-ID------RID
全域唯一,标识路由器的身份
使用IP地址的表示形式
DBD(DD)报文
数据库描述报文
包含了所有拓扑的目录信息。
LSR报文
链路状态请求报文
请求获取未知的链路信息(LSA信息)
LSU报文
链路状态更新报文
携带有真正的LSA信息
LSAck报文
链路状态确认报文
OSPF七种状态机(状态需在对端看)
down----关闭状态-----一旦启动了OSPF协议,则发出hello报文(内含自身RID值),进入下一状态
init-----初始化状态----当收到的hello报文中,存在本地RID值时,进入下一状态
2-way-----双向通讯状态-----------邻居关系建立的标志。(这时双方并未获得任何LSA信息)
条件匹配:匹配成功则进入下一阶段,失败则停留在邻居关系。
exstart----预启动状态-----使用未携带信息的DBD报文(因为hello报文建立邻居关系即可,为了区别使用DBD报文)进行主从关系选举,RID大的为主(主的优先进入下一个阶段---loading状态因为在接受到从发送的携带信息的DBD报文就立马从exchange(存在的时间极短)进入loading状态)
exchange-----准交换----使用携带目录信息的DBD包进行目录共享(从先向主发送,主接受到后发送请求未知的LSA信息和发送自己携带的目录信息的DBD包进行目录共享)
loading-----加载状态-----邻居间使用LSR/LSU/LSACK三种报文来获取完整的拓扑信息
full----转发状态----拓扑信息交换完成后进入该状态-----邻接关系建立的标志。(之后还要将拓扑信息转化成路由信息)
条件匹配--->避免重复发送,浪费资源
设备接口角色(X个)
指定路由器------DR(1个)
备份指定路由器-----BDR(1个)
其他路由器----DRother(X-2个)
角色之间的关系
DR与BDR----邻接
DR与DRother---邻接
BDR与DRother---邻接
DRother与DRother----邻居(起码有四台设备)
OSPF条件匹配的情况
在以太网网络中-----必须进行条件匹配
在点到点网络中-----不需要进行条件匹配(就只有两台设备,无法加设备(无交换机))
选举规则
1.优先级,默认为1,范围:0-255,越大越优(每个接口都有)
2. RID,越大越优
选举范围
一个广播域,进行一次条件匹配。(所以一个路由器既可以是DR又是BDR)
条件匹配是属于非抢占模式-----一旦选举成功,不会因为新加入的设备而重新选举。
在一个网络中可以没有BDR,但DR必须存在
OSPF工作过程
OSPF协议启动后,路由器A向本地所有启动了OSPF协议的直连接口,使用组播地址224.0.0.5发送hello报文。
该hello报文中携带了本地的全域唯一的RID值。
当对端路由器B接收到该报文后,也会回复hello报文
该hello报文中携带了A的RID值。
此时,A与B建立邻居关系,并生成邻居表。
邻居关系建立后,邻居之间进行条件匹配,匹配失败则停留在邻居关系,仅使用hello报文保活。
若匹配成功,则可以开始建立邻接关系。
邻接间共享DBD报文,将本地与邻接之间的DBD报文进行对比,查找本地没有的LSA信息,之后使用LSR来询问,对端使用LSU回复具体的LSA信息,之后本地使用LSAck报文进行确认。
该过程全部完成后,生成数据库表(LSDB)。
再之后,本地基于数据库表,启用SPF算法,计算到达所有未知网段的最短路径,然后将其加载到本地的OSPF路由表中。
并将OSPF路由表中的部分路由加载到本地全局路由表中。
此时,路由器完成路由收敛工作。
最后,使用hello报文进行周期保活,并且每30min进行一次链路状态刷新。
<Huawei>reset ospf 1 process -----重置OSPF进程1
基本配置
启动OSPF协议,配置进程号(仅具有本地意义),手工配置RID值
若没有配置RID值,则设备自动生成(环回接口最大IP>物理接口最大IP)
[r1]ospf 1 router-id 1.1.1.1 //进程号 自己配的router-id
配置区域
[r1-ospf-1]area 0 //骨干区域(若单区域必须为0)
宣告:激活接口,发布拓扑或路由
宣告网段
[r1-ospf-1-area-0.0.0.0]network 1.1.1.0 0.0.0.255
[r1-ospf-1-area-0.0.0.0]network 0.0.0.0 0.0.0.0 //全部激活
反掩码:32位二进制,使用点分十进制表示,由连续0+连续1
接口宣告方式-----精准宣告
[r1-ospf-1-area-0.0.0.0]network 12.0.0.1 0.0.0.0 /主机路由(特指一个端口)
OSPF邻居表
[r2]display ospf peer ---查看OSPF邻居
[r2]display ospf peer brief ----查看OSPF邻居简表
OSPF数据库表
[r2]display ospf lsdb -----查看OSPF数据库表
OSPF路由表
[r2]display ospf routing ---查看OSPF路由表
OSPF优先级====10