MGRE的配置
[r1]int g 0/0/0 --- 创建隧道接口
[r1-Tunnel0/0/0]ip address 192.168.5.1 24 --- 给隧道接口配置IP地址
[r1-Tunnel0/0/0]tunnel-protocol gre p2mp ---选择封装协议 --- MGRE
[r1-Tunnel0/0/0]source 15.0.0.1 --- 中心设备源IP地址必须固定
[r1-Tunnel0/0/0]nhrp network-id 100 --- 启动NHRP,IP具有全局意义
分支的配置
分支需要多做一个配置,把信息汇报给中心,告诉XX它是分支要完成汇报任务:nhrp entry 192.168.5.1 15.0.0.1 register,
找中心进行注册,汇报自己的接口IP信息,第一个IP地址是中心隧道接口的IP地址,第二个IP地址是中心真实物理接口IP地址
nhrp peer all 查看配置信息(NHRP注册情况,即地址映射信息)
MGRE搭建的环境逻辑拓扑连接是一个多节点的网络,但是,在数据发送时,还是点到点的发送,
所以,是不支持广播和组播行为的,所以,可以理解为是一种NBMA网络
在MGRE环境下使用RIP来获取未知网段的路由信息
1,只有中心获取到分支的路由信息,但是分支并没有获取到中心的路由信息
--- 解决方案:在中心上开启伪广播。 --- 通过给所有分支分别发送数据包达到类似广播的效果。
[r1-Tunnel0/0/0]nhrp entry multicast dynamic
2,分支在开启伪广播后,只能获取到中心的路由信息,但是无法获取分支之间的路由信息
主要是因为华为设备默认开启了RIP的水平分割,导致中心不会再从隧道接口将学来的分支路由发送给其他分支
解决方案:关闭接口的水平分割 [r1-Tunnel0/0/0]undo rip split-horizon
OSPF --- 开放式最短路径优先协议(距离矢量型协议)市场占用率高(剩余:IS-IS,EIGRP(思科私有协议))
收敛速度,选路,占用资源(三个角度评判OSPF)
转换成树形结构:不会出现环路
RIP存在三个版本 --- RIPV1,RIPV2 ---IPV4
RIPNG ---IPV6
OSPF也存在三个版本 --- OSPFV1(在研发阶段就以夭折),OSPFV2 --- IPV4
OSPFV3 --- IPV6
RIPV2和OSPFV2的相同点:
1,RIPV2和OSPFV2一样,都是无类别的路由协议。
无类别 --- 传递路由信息时携带子网掩码
2,OSPFV2(224.0.0.5和224.0.0.6)和RIPV2(224.0.0.9)都是以组播的形式发送信息。
3,OSPFV2和RIPV2都支持等开销负载均衡 --- OSPF可以应用在中大型网络当中,但是RIP只能应用在小型网络当中。
--- 主要是因为OSPF可以进行结构化部署 --- 区域的划分
区域划分的主要目的 --- 区域内部传递拓扑信息,区域之间传递的是路由信息(中间设备:ABR)
ABR --- 区域边界路由器 --- 同时属于多个区域,并且一个接口属于一个区域,且有一个接口在区域0.
区域之间可以存在多个ABR设备,一个ABR也可以对应多个区域
区域划分的要求:
1,区域之间必须存在ABR
2,区域之间必须按照星型拓扑结构划分 --- 中间区域被称为骨干区域。
为了方便对每个区域进行管理,我们给OSPF的每个区域设定一个区域ID,称为areaID --- 32位二进制构成 --- 骨干区域的区域ID必须为0
如果一个网络规模较小,不需要进行区域划分,则这样的OSPF网络我们称为单区域OSPF网络(在华为的官方文档中要求,如果是单区域OSPF网络,则必须设置为区域0);
如果一个网络存在多个OSPF区域,则将被称为多区域OSPF网络。
1,OSPF的数据包类型
hello包 --- 周期的发现,建立和保活邻居关系
hello包的发送周期 --- 10S(30S)
死亡时间 --- 4倍的hello时间
为了区分和标定OSPF网络中每台路由器,我们引入了RID --- 1,全网(OSPF)唯一;2,格式统一 --- RID要求按照IP地址的格式来进行标定
(由32位2进制构成,用点分十进制来表达)
RID的生成方法:1,手工配置 --- 只需满足以上两点要求即可
2,自动生成 --- 如果路由器存在环回接口,则将取环回接口的IP地址中最大的作为RID ;如果,不存在环回接口,
则将在路由器的物理接口中取最大的IP地址作为RID。
hello包中将携带RID
DBD包 --- 数据库描述报文 --- 携带的是路径信息的摘要 --- 相当于是本地存放LSA数据库(LSDB)的目录
LSR包 --- 链路状态请求报文 --- 给予DBD包请求未知LSA信息
LSU包 --- 链路状态更新报文 --- 携带LSA信息的数据包
LSACK包 --- 链路状态确认报文
OSPF也存在周期更新,每30min一次。
2,OSPF的状态机
图1
TWO-WAY --- 双向通讯状态 --- 标志着邻居关系的建立。
(条件匹配)--- 条件匹配成功,则将进入下一个状态;如果条件匹配失败,只能维持邻居关系,通过10S(30S)一次的hello包进行周期保活
图2
主从关系选举 --- 通过比较RID,RID大的为主,可以优先进入下一个状态。主从关系选举还可以完成隐形确认。
这里使用DBD包来进行主从关系选举,主要是为了和之前的邻居状态进行区分。
图3
FULL状态 --- 标志着邻接关系的建立 --- 邻接关系主要为了和之前的邻居关系进行区分。邻居关系只能发送hello包进行周期保活,而邻接关系才能真正交互LSA信息
Down状态 --- 启动ospf,发送hello包之后进入下一个状态
lnit(初始化)状态 --- 收到hello包中包含本地的RID,则进入下一个状态
2-way(双向通讯)状态 --- 标志着邻居关系的建立
(条件匹配)
Exstart(预启动)状态 --- 使用未携带数据的DBD包进行主从关系的选举,为主的可以优先进入下一个状态
Exchange(准交换)状态 --- 使用携带摘要信息的DBD包进行目录共享
loading(加载)状态 --- 给予DBD包比对自己本地数据库,使用LSR包请求未知的LSA信息,对端通过LSU包回复LSA信息,需要ACK确认。
FULL状态 --- 标志着邻接关系的建立。
3,OSPF的工作过程
启动配置完成后,OSPF向本地所有运行协议的接口以组播224.0.0.5的形式发送hello包;hello包中会携带本地的RID及本地一致的邻居的RID。
之后,将收集到的邻居关系记录在一张表中 --- 邻居表。
邻居表建立后进行条件匹配,失败则将停留在邻居状态,仅通过hello包进行周期保活。
如果匹配成功,则开始建立邻接关系。首先,先使用未携带数据的DBD包进行主从关系选举。
之后,使用携带数据的DBD包来共享本地目录信息。之后本地使用LSR/LSU/LSACK获取未知的LSA信息。完成本地数据库(LSDB)的建立,生成数据库表。
最后,基于本地LSDB去通过SPF算法计算到达未知网段的路由信息,将路由信息加载到路由表中。
收敛完成后,OSPF需要通过hello包进行周期保活,每30MIN进行一次周期更新。
结构突变的场景:
1,突然断开一个网段 --- 触发更新,将变更信息通过LSU包发送出去。
2,突然增加一个网段 --- 触发更新,将变更信息通过LSU包发送出去。
3,无法沟通 --- dead time
4,OSPF的基本配置
1,启动OSPF进程
[r1]ospf 1 router-id 1.1.1.1
[r1-ospf-1-area-0.0.0.0]
2,创建区域
[r1-ospf-1]area 0
[r1-ospf-1-area-0.0.0.0]
3,宣告 --- 作用:1,激活接口;2,发布路由
[r1-ospf-1-area-0.0.0.0]network 12.0.0.1 0.0.0.0 --- 反掩码(由连续的0和1组成,0所对应位不可变,1对应位可变)
[1]display ospf peer --- 查看OSPF邻居表
[r1]display ospf peer brief --- 查看邻居关系简表
[r1]display ospf lsdb --- 查看数据库表
[r1]display ospf lsdb router 2.2.2.2 --- 展开一条LSA信息
OSPF在华为体系中默认的优先级为10
COST=参考带宽/真实带宽 --- 华为设备OSPF参考带宽的默认值为100bps。
--- 在计算开销值时,如果开销值是一个小于1的小数,则直接按1来算;如果是大于1的小数,则直接取整数部分