OSPF协议基础
基础概念
OSPF(Open Shortest Path First):开放式最短路径优先,是一种网络动态路由协议,我们知道互联网是由无数个独立的网络互联组成的,想要让这些独立的子网互相通信,必须用到路由器,路由器中通过路由表来实现数据的转发和在不同网络之间传输。除家用的傻瓜式即插即用路由器,在园区网和公司组网中,常见的企业级路由器如华为AR6000、NE40E,动辄大几千上万块,能实现更好的性能与复杂的网络需求。在大规模组网的背景下,就需要用到路由器的路由表,来实现隔离广播域、不同子网之间的通讯等实际需求。
路由协议的分类:
外部网关协议(EGP):BGP
内部网关协议(IGP):RIP(基本淘汰)、OSPF、IS-IS
这里的外部网关与内部网关类似在家访问Google,从PC机上访问Google这个过程,首先PC机通过家用网络到达ISP运营商,这之间属于内部网络,要用到内部网关协议;从ISP出去,就是外部网关协议了。
OSPF工作流程:
建立邻居关系,建立两层关系(先邻居后邻接,递进关系)
LSA 泛洪:向其他网络设备广播自己的状态(LSA:链路状态通告)
LSDB建立:每一台设备都有,用于存储相关的LSA信息(LSDB:链路状态数据库)
SPF算法:通过解析LSA中的一些参数去进行计算(树装计算,每个网元会以自己为根节点,去计算到达其他节点的距离与开销值,因为是树装所以永远不会成环路),最终迭代成路由条目进行转发 5. 以上路由条目放入路由表
OSPF区域概念:
因为每台设备都要LSA泛洪与建立LSDB接收LSA泛洪,如果有10台设备,那么每一台都会接收9台设备的LSA,频繁接收LSA会导致占用带宽资源,而且要SPF计算,会消耗设备CUP、内存等资源,加重设备负担。所以大型网络必须划分区域,减少传输与计算
其中需要牢记area0
是骨干区域 规定的
RID(router-id):
设备之间通讯,需要名字,用来识别区分设备,就会用到RID,通常情况是以IP形式,也就是区域内的命名,一般是IP形式
在OSPF中离不开RID的,属于核心参数,更改RID会断网,更改RID要OSPF重新协商,属于高危操作
其他协议可能也会用到RID,例如BGP
两种获取RID方式:
手动指定
a. 单独指定 (协议优于全局,如果单独指定与全局冲突,会使用单独指定的 RID)
b. 全局指定 (RID不止OSPF协议在用,像BGP也在用,有人懒觉得一个一个指定RID不方便,直接在全局下指定RID,后续只要某个协议要适用RID,就会调用这个全局RID,注意协议优于全局)
自动选举
a. 在起用ospf协议时刻,环回口配置了地址,会优先使用环回口
b. 如果没配置环回口,会在当前的物理地址中,选择最大的IP
协议手动>全局手动>环回(loop)>最大IP
邻居的建立:
Hello报文的作用:建立连接,维持关系(周期是10秒一次)
Hello报文建立的过程:
两个设备A、B,在初始启用OSPF后,A设备会向外广播Hello报文,B设备收到后,会在自己的OSPF邻居列表中加入A设备的条目:邻居是1.1.1.1,它的状态机是init,同时向A设备回复一个Hello报文。A设备收到回复后,会在OSPF邻居表中加入一个条目:邻居是2.2.2.2,状态是2-way,只有当两台设备状态就同时是2-way,才能建立邻居,所以A设备收到回复同时也会向B设备再发送一个Hello报文,B设备收到后会调整OSPF邻居表,将A设备的状态机调整成2-wary,此时OSPF邻居建立成功,同时Hello报文的作用转变为维持
Hello报文字段:建立链接的必要条件
RID不一致,一致就会起不来 RID如果一致,会协商不起来,有可能会产生路由震荡(A、B、C三个设备,如果A、C设备的RID一致,那么与B建立OSPF时,会出现一会与A建立成功,一会与C建立成功,这种情况叫路由震荡)
area ID 一致 要在同一区域内才能建立链接
AuType认证类型 Authentication认证密码 要一致 Au开头和认证有关
Network Mask 网络掩码,掩码不一致无法建立邻居关系
HelloInterval hello时间 10秒一次 RouterDeadInterval 死亡时间 40秒无回复,就断开释放
Options 区域类型一致
这六点不符合就会导致邻居关系起不来,ospf邻居建立六要素
常用命令:
#进入ospf协议视图
ospf 1 #创建ospf进程1,编号在1-65535之间
#进入区域
area 0 #进入骨干区域
#重启ospf协议模块(用户视图下)
reset ospf process
OSPF中的各报文作用与邻接的建立
Hello报文:建立、维持连接
DD、DBD报文:描述摘要,用于数据库同步,建立连接后,会通过DD互发LSA摘要信息,不一致会进行后续通信
LSR:request 请求信息
LSU:update 更新信息
LSAck:确认信息
LS是链路状态
DD DBD 描述摘要,数据库同步,建立连接后,会通过DD互发LSA摘要信息,不一致会进行如下通信:
LSR R:request 请求信息
LSU U:update 更新信息
LSAck ack: 确认信息
邻接的建立
重要概念:数据同步
A、B两个设备已经建立了邻居(状态都是2way),之后会建立邻接,A设备有①②③⑤四条LSA信息,B设备有①②④⑥四条LSA信息,在开始建立邻接时,会通过DD报文互发摘要信息,发现信息不一致,会发送LSR报文请求,A设备会向B设备发送LSR请求 ④⑥,B设备接收到后会回复LSU报文,包含④⑥明细信息,A设备接收后会回复B设备LSAck报文,用于确认收到。
同样B设备也会对A设备执行上述步骤用以同步信息,最终两个设备都会有①②③④⑤⑥LSA信息
重要概念:邻接建立中的状态机转换过程
A、B两个设备已经建立了邻居(状态都是2way),之后会建立邻接,A设备会从2way转为Ex-start状态,发送DD:(内容空,seq=x)我是M,RID为1.1.1.1,B设备接收后也会从2way转为Ex-start状态,也会发送DD报文(空,seq=y),我是M,RID为2.2.2.2,主从选举会比较RID,谁的RID大谁被选举为主设备,A设备因为RID小于B设备,会先从Ex-start状态转变为Exchange,从设备会先转变状态,同时再发送DD报文:(seq=y)LSA摘要信息,B设备接收后会也会转为Exchange,这时主从选举结束,B为主设备A为从设备,B设备也会再次发送DD报文:(seq=y+1)LSA摘要信息。
Exchage交互完成,之后会进行数据库同步,两边状态机都会变为Loading,互发LSR,回复LSU,LSAck
当数据库完成同步后,两边状态变为Full,代表邻接建立完成
OSPF邻居邻接建立过程中的状态:
down
init
2way 邻居建立完成
ex-start 邻接建立开始,开始交互数据库摘要信息
exchange 主从选举结束
loading 去交互数据库LSA的完整信息
full 标志着邻接建立完成
什么是DR与BDR、DRother,与选举方式
DR:指定路由器
BDR:备用指定路由器
DRother:除了指定路由器的其他设备
DR选举:
比较DR优先级:0-255 ,为0退出DR选举
DR优先级一样,RID大的选为DR 且 DR不可抢占(后接入一个设备,即使RID大于DR的RID,后接入的设备也不会被选为DR,叫不可抢占)
一个广播域必有一个DR,DR是一个接口不是设备,可以没有BDR,剩下都是DRother
区域与路由器之间的概念
区域0与区域1之间的路由器,叫ABR:区域边界路由器,如果ABR需要宣告还回扣地址,需要宣告在区域0中
以上为基础,在区域1上有一台路由器,引入了其他动态协议(不止OSPF,两协议交接),这样的设备叫ASBR:自治系统边界路由器
命令:
#进入ospf交互界面并命名路由id
ospf 1 router-id 1.1.1.1
#在ospf交互界面内宣告区域:
area 1
#配置宣告区域内网络号:
network 192.168.12.0 0.0.0.255
#配置宣告坏回口网络号:
network 1.1.1.1 0.0.0.255
#查看邻居关系列表
dis ospf peer brif
#查看数据库表
dis ospf lsdb
#查看ospf路由表
dis ospf routing
#查看OSPF配置
dis cu co ospf
两个设备建立起邻居邻接关系,必须在接口上有自己的ip
ARP
是工作在数据链路层的网络层协议
作用:将IP地址解析成MAC
命令:arp -a