动态路由
设备之间动态的交互协议报文,自动计算去往对端的路由条目。
常见路由类型的默认优先级:
OSPF
静态路由的缺点: 1.手工配置,繁琐易出错。 2.静态路由无法感知拓扑变化(最致命的点)(需要联动BFD、NQA)。
动态路由的特点: 1.路由自动生成。 2.会自动检测链路,链路故障,路由随之失效(自动收敛)。 3.也支持CIDR(静态路由支持的动态路由也支持)。 4.存在开销值,根据开销值选择最优路由。
OSPF:开放式(协议开源)最短路径(开销最小)优先。
OSPF支持BMA、P2P、NBMA、P2MP网络类型:
链路状态路由协议: 1. 邻居建立:运行链路状态路由协议的设备,会在两者之间建立邻居关系。 2. LSA泛洪:链路状态通告,将自身的链路状态信息,通告所有邻居。 3. LSDB保存:链路状态数据库,数据库内保存每一个邻居发送的链路状态信息(LSA)。 4. SPF计算:最短路径树计算,将数据库内的LSA 计算得到一棵无环的、最短的路径树。 5. 路由信息生成:将数据库内的LSA计算得到路由信息。
OSPF概念
区域下地址宣告:
[AR]ospf 1 协议 进程ID号 (省略route-id)
[AR-ospf-1]area 0
[AR-ospf-1-area-0.0.0.0]network 10.1.12.1 0.0.0.0 宣告 接口地址 反掩码
[AR-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0
1.OSPF进程:一台设备可以运行多个OSPF,每一个OSPF使用不同的进程ID来表示。 ::: tip 进程ID之间是相互隔离的。 设备的接口地址只能属于一个OSPF进程。 ::: 2.router-id:设备ID,用于描述一台设备OSPF的标识。
- RID是一个32位的无符号整数,使用点分十进制表示
- OSPF的RID有两种书写方式:
- 手工配置:[Huawei]ospf 1 router-id 123.123.123.123
- 自动配置:调用全局的RID
全局RID和OSPF RID比较: 全局router id:
- 路由器刚启动未配置任何命令时,全局router id为0.0.0.0。* 路由器选择第一个配置的接口地址作为全局router id,无论是环回口还是物理接口,再配置其他接口地址时,router id不会改变。 在系统视图下可以手动修改router id。 ospf router id:
- 未指定ospf的router id时,将全局router id的值作为ospf router id。* 再手动指定ospf的router id时,需要重启ospf进程生效。 未指定ospf router id时,ospf router id会和全局router id保持一致(全局router id修改,重启ospf进程后ospf router id也会更改)。
OSPF router-id修改流程图:
::: tip router id设置完成后,更改router id不会影响ospf lsdb中使用的router id,用户视图下重启ospf进程后才会更改,重启ospf进程不会清空ospf配置,但是需要重新建立邻居关系。 ::: ::: warning 系统视图下的配置叫全局配置。 :::
3.area id:区域ID,将大的范围化简为多个小的范围,优化的设备的处理压力。 area id的两个配置方式:(32位整数表示)
- 数字表示:取值范围<0-4294967295> ,会自动的转换为点分十进制表示。
- 点分十进制表示:x.x.x.x(x:0-255)。
4.network 10.1.12.1 0.0.0.0 宣告-接口地址-反掩码 接口地址:需要建立邻居关系的接口地址。 反掩码: 255.255.255.255 - 正掩码 = 反掩码 ::: tip 正掩码的1标识网络部分,0标识主机部分。 反掩码的1标识主机部分,0标识网络部分。 :::
5.cost:度量值(开销值) OSPF使用cost来计量每条链路,每一个运行了OSPF的接口都会存在cost。 ::: tip 接口cost=参考带宽(默认100M)/接口实际带宽。 如果接口cost值小于1,则按照1计算。 ::: 链路的cost计算是叠加的。
[AR2-GigabitEthernet0/0/0]ospf cost 12 设置OSPF的接口开销 取值范围是<1-65535>
[AR2-ospf-1]bandwidth-reference <1-2147483648> 设置OSPF的参考带宽
::: warning OSPF cost计算路由入方向的开销。 ::: 路由方向和流量方向相反,AR1通过AR2学习到AR3的路由,路由方向是AR3->AR2->AR1,AR1pingAR3,流量方向是AR1->AR2->AR3。 (路由看下一跳,流量看出方向。) 路由方向可以更改,默认时如下: AR1访问AR3时候,源是AR1,AR1中学习到AR3的路由方向是AR3->AR2->AR1,AR1pingAR3的数据方向是AR1->AR2->AR3。 AR3访问AR1时候,源是AR3,AR3中学习到AR1的路由方向是AR1->AR2->AR3,AR3pingAR1的数据方向是AR3->AR2->AR1。 ::: tip 修改OSPF带宽是在全局视图下而非接口视图,更改是全局生效的。 ::: OSPF路由表中是通过OSPF学习到的路由信息。 数据转发是通过IP路由表转发的,IP路由表是最优路由,OSPF路由表中只是OSPF协议学习到的路由,不一定最优。
OSPF的三张表项:
1.邻居表:
OSPF的报文类型:
1.OSPF的报头:所有OSPF的报文都存在OSPF的报头。 2.OSPF的报文内容:
- hello报文:建立和维护邻居关系(周期10s)。
- DD报文:数据库描述报文,带有数据摘要的信息。
- LSR报文:链路状态请求报文,向对方请求需要的链路状态信息。
- LSU报文:链路状态更新报文,回复对方请求的链路状态完整的信息。
- LSAck报文:链路状态确认报文,确认对方发送的信息。 ::: tip 第一个hello包中的DIP是固定的组播地址224.0.0.5、224.0.0.6(该组播地址对应OSPF)。 ::: ::: tip
- DD报文的重要bit位:*
- i bit:是否为第一个DD报文。*
- m bit:后续是否还有携带数据的DD报文。*
- ms bit:是否为主设备。*
- seq:随机产生的序列号值。* :::
OSPF的状态机:
1.down:没有开始建立OSPF邻居。 2.init:收到了邻居的hello报文,但hello内没有携带本端的RID。 3.2-way:收到了邻居的hello报文,且hello内携带了本端的RID。 4.exstart:进行主从设备的选举。 5.exchange:交互链路状态摘要信息。 6.loadding:同步链路状态数据库(完整的状态信息)。 7.full:确认LSDB同步完成。
DR、BDR:
广播型网络中选举DR、BDR的原因:
一个共享式的网络可以同时连接多台设备,如果想要达到LSDB同步,则需要每台设备两两建立邻接关系。 广播网络中的邻接关系数量,和设备的数量是呈正比的(有n个路由器的网络中,会形成(n(n-1))/2邻接关系,大大加大了LSA流量泛洪)。
*为减少广播网络中邻接关系的数量,在网络中选举DR、BDR。**
::: tip
DR:指定路由器
BDR:备份指定路由器
DRother:非指定设备
:::
DR只有一台,BDR只有一台,DRother可以存在多台。
DR和BDR之间建立邻接关系。
DR和DRother之间建立邻接关系。
BDR和DRother之间建立邻接关系。
DRother之间建立邻居关系。
DR设备的作用: DR和网络中其他所有的设备建立邻接关系,收集所有设备的链路状态。其他所有设备都只会向DR进行LSDB的同步。 ::: tip 邻居关系建立后,进行DR、BDR的选举(Two-Way状态后开始触发选举过程),然后所有路由器和BR/BDR建立邻接关系。通过选举产生DR后,所有路由器都只将信息发送给DR,由DR将网络链路状态LSA广播出去。 :::
DR、BDR的特性: 当DR失效后,BDR一定会成为DR。 选择DR、BDR后,设备的属性不会被抢占,即使有新设备加入,旧DR重新上线等,现有的DR、BDR也不受影响。
::: tip DR、BDR选举机制: 设备在OSPF的接口存在OSPF-DR的优先级值,默认值为1,值越大越优先。 优先级值相等,则比较设备的RID值,值越大越优先。 :::
DR、BDR的配置:
[AR2-GigabitEthernet0/0/1]ospf dr-priority 100 修改接口的优先级值
优先级值取值范围是0-255 ::: warning 0优先级值的设备不参与DR、BDR的选举。 ::: 如果一个网段中的所有设备都将DR优先级改为0,该网段就没有了DR设备,该网段只有邻居关系,而邻接关系才能交互信息,该网段就不能进行相互通信。
[AR2]dis ospf int gi 0/0/0 查看OSPF接口的信息内容
查看OSPF接口信息时,显示的DR和BDR都是RID。
接口下使能OSPF:
[AR]in gi 0/0/0
[AR-GigabitEthernet0/0/0]ospf enable 1 area 0
::: warning 接口下OSPF使能和区域下地址宣告区别: 1.接口下使能:接口的地址不管是什么网段、什么地址都可以通告OSPF。 2.区域下宣告:宣告的地址和接口的地址一定是相同段且一定是相同的地址。 正常配置OSPF两种操作都可以。 :::
[AR1]ospf 1
[AR1-ospf-1]area 0
[AR1-ospf-1-area-0.0.0.0]network 10.1.12.1 0.0.0.0
[AR1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0
[AR2]ospf 1
[AR2-ospf-1]area 0
[AR2-ospf-1-area-0.0.0.0]network 10.1.12.2 0.0.0.0
[AR2-ospf-1-area-0.0.0.0]network 10.1.23.2 0.0.0.0
[AR3]ospf 1
[AR3-ospf-1]area 0
[AR3-ospf-1-area-0.0.0.0]network 10.1.23.3 0.0.0.0
[AR3-ospf-1-area-0.0.0.0]network 3.3.3.3 0.0.0.0
上述动态路由配置完成后,所有的网段都可以直接连通。