MGRE
NHRP --- 中心路由协议
配置:
1、创建隧道接口,并配置IP
int tunnel 0/0/0
[隧道接口]ip add <IP>
2、选择封装协议 gre p2mp --- MGRE
[隧道接口]tunnel-protocol gre p2mp
3、配置封装源IP(也可以写接口)
[隧道接口]source <IP>
4、启动NHRP
[隧道接口]nhrp network-id <编号>(具有全局意义)
5、分支同上配置之后,配置汇报信息 --- 找中心注册
[隧道接口]nhrp entry <中心隧道接口IP> <中心真实物理接口IP> register
查看NHRP注册情况(地址映射信息) display nhrp peer all(在中心)
MGRE搭建的环境的逻辑拓扑连接是一个多节点的网络,但是,在数据发送时,还是点到点的发送,所以,是不支持广播和组播行为的,所以,可以理解为是一种NBMA网络。
在MGRE环境下使用RIP来获取未知网段的路由信息
1、只有中心获取到分支的路由信息,但是分支并没有获取到中心的路由信息
--- 解决方案 --- 在中心上开启伪广播。 --- 通过给所有分支分别发送数据包达到类似广播的效果。
[隧道接口]nhrp entry muticast dynamic
2、分支在中心开启伪广播后,只能获取到中心的路由信息,但是无法获取分支之间的路由信息。
主要是因为华为设备默认开启了RIP的水平分割,导致中心不会再从隧道接口将学来的分支的再发出去
解决方法 --- 关闭水平分割
[接口隧道]undo rip split-horizon
OSPF --- 开放式最短路径优先协议
收敛速度,选路,占用资源
选路依据:带宽、传递拓扑信息(因为是树形结构,本身还防环)
存在周期更新(30MIN)
OSPF也存在三个版本
OSPFV1(在实验室阶段夭折)
OSPFV2 --- IPV4
OSPFV3 --- IPV6
对比RIPV2和OSPFV2:
相同点
1、RIPV2和OSPFV2都是无类别的路由协议。
无类别 --- 传递路由信息时携带子网掩码。
OSPF在区域间传递的还是路由信息
2、RIPV2(组播地址224.0.0.9)和OSPFV2(组播地址224.0.0.5和224.0.0.6)都是以组播的形式发送信息。 --- DR之间用6,其他用5。
3、OSPFV2和RIPV2都支持等开销负载均衡
不同点
OSPF协议可以应用在中大型网络当中,但是RIP只能应用在小型网络当中。 ---- 主要是因为OSPF可以进行结构化部署 --- 区域划分
区域划分的主要目的 --- 区域内部传递拓扑信息,区域之间传递的是路由信息。
ABR --- 区域边界路由器 --- 同时属于多个区域,并且一个接口属于一个区域。
区域之间可以存在多个ABR,一个ABR也可以对应多个区域
区域划分的要求:
1、区域之间必须存在ABR
2、区域之间必须按照星型拓扑结构划分 --- 中间区域称为骨干区域。
为了方便对每个区域进行管理,我们给OSPF的每个区域设定一个区域ID,称为area ID --- 32位二进制构成 --- 骨干区域的区域ID必须为0。
如果一个网络规模较小,不需要进行区域划分,则这样的OSPF网络我们称为单区域OSPF网络(在华为的官方文档中要求,如果是单区域OSPF,则必须设置为区域0);如果一个网络存在多个OSPF区域,则将被称为多区域OSPF网络。
OSPF工作过程
1、数据包类型
2、OSPF的状态机
3、OSPF的工作过程
4、OSPF的基本配置
数据包类型
1、hello包 --- 周期的发现,建立和保活邻居关系
hello包的发送周期 --- 10S(30S)
死亡时间 --- 4倍hello时间
为了区分和标定OSPF网络中每台路由器,我们引入了RID --- 1、全网(OSPF网)唯一; 2、格式统一 ---- RID要求按照IP地址的格式来进行标定(由32位2进制构成,用点分十进制来表达)
RID的生成方法:1、手工配置 --- 仅需满足以上两点要求即可;2、自动生成 --- 如果路由器存在环回接口,优先取用环回接口中最大的作为RID。如果,路由器不存在环回接口,则将在路由器的物理接口中取最大的IP地址作为RID。
Hello包中将携带RIP
2、DBD包 --- 数据库描述报文 --- 携带的是路径信息的摘要 --- 相当于是本地存放LSA数据库(LSDB --- 链路状态数据库)的目录
3、LSR包 --- 链路状态请求报文 --- 基于DBD包请求未知LSA信息
4、LSU包 --- 链路状态更新报文 --- 携带LSA信息的数据包
5、LSACK包 --- 链路状态确认报文
OSPF也存在周期更新,每30MIN一次。
OSPF的状态机
Two-Way State --- 双向通讯状态 --- 标致邻居关系建立
(条件匹配) --- 条件匹配成功,则将进入下一个状态;如果条件匹配失败,只能维持邻居关系,通过10S(30S)一次的Hello包进行周期保活。
Exstart State --- 主从关系选举 --- 通过比较RID,RID大的为主,可以优先进入下一个状态
这里使用DBD包来进行主从关系选举,主要是为了和之前的邻居状态进行区分。
有ACK包 --- 显性确认
通过序列号来进行隐形确认
(OSPF通过DBD包发送数据,不会发送ACK确认包,都是通过隐形确认的。)
FULL状态 --- 标志着邻接关系的建立 --- 邻接关系主要为了和之前的邻居关系进行区分。邻居关系只能发送Hello包进行周期保活,而邻接关系才能真正交互LSA信息。
概要
Down状态 --- 启动OSPF,发送hello包之后进入下一个状态
init(初始化)状态 --- 收到hello包中包含本地的RID,则进入下一个状态
2-way(双向通讯)状态 --- 标志着邻居关系的建立。
(条件匹配)
Exstart(预启动)状态 --- 使用未携带数据的DBD包进行主从关系的选举,为主的可以优先进入下一个状态。
Exchange(准交换)状态 --- 使用携带摘要信息的DBD包进行目录共享
Loading(加载)状态 --- 基于DBD包比对自己本地数据库,使用LSA包请求未知的LSA信息,对端通过LSU包回复LSA信息,需要ACK确认。
FULL状态 --- 标志着邻接关系的建立。
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
OSPF的基本配置
1、启动OSPF进程
ospf 1 router-id <RID>
2、创建区域
[ospf视角]area <id>
3、宣告 --- 作用 1、激活接口;2、发布路由
[ospf区域视角]network <接口IP> <反掩码/通配符>
查看邻居表
display ospf peer
display ospf peer brief --- 简表
查看LSA数据库表
display ospf lsdb
展开某一条LSA信息
display ospf lsdb <类型> <ID>
OSPF在华为体系中默认的优先级为10
OSPF 开销值 计算方法
COST = 参考带宽/真实带宽 --- 华为设备OSPF参考带宽默认值为100bps --- 在计算开销值时,如果开销值是一个小于1的小数,则直接按1来算;如果是大于1的小数,则直接取整数部分。
修改参考带宽 --- 一旦修改参考带宽,则所有设备都需要修改
[ospf视角]bandwidth-reference <带宽>(Mbits/s)