You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
datacom/Datacom-MD/第四章:动态路由技术 (1).md

1523 lines
74 KiB

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<h1><center>第四章:动态路由技术</center></h1>
> 作者:行癫
------
<h3>第一节:动态路由概述</h3>
<h4>一:动态路由概述</h4>
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210132050229.png" alt="image-20220210132050229" style="zoom:50%;" />
静态路由的缺点是不能自动适应网络拓扑的变化,需要人工干预
动态路由协议有自己的路由算法,能够自动适应网络拓扑的变化,适用于具有一定数量三层设备的网络
<h5>1.动态路由类型</h5>
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210132226810.png" alt="image-20220210132226810" style="zoom:50%;" />
**根据路由信息传递的内容、计算路由的算法,可以将动态路由协议分为两大类:**
距离矢量协议
RIP
链路状态协议
OSPF、IS-IS
BGP使用一种基于距离矢量算法修改后的算法该算法被称为路径矢量Path Vector算法。因此在某些场合下BGP也被称为路径矢量路由协议
**根据工作范围不同,又可以分为:**
内部网关协议IGPInterior Gateway Protocol:在一个自治系统内部运行。RIP、OSPF、ISIS为常见的IGP协议
外部网关协议EGPExterior Gateway Protocol运行于不同自治系统之间。BGP是目前最常用的EGP协议
<h4>二:路由高级特性</h4>
<h5>1.路由递归</h5>
路由必须有直连的下一跳才能够指导转发,但是路由生成时下一跳可能不是直连的,因此需要计算出一个直连的下一跳和对应的出接口,这个过程叫做路由递归;路由递归也称路由迭代
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210132925448.png" alt="image-20220210132925448" style="zoom:80%;" />
![image-20220210132943125](%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210132943125.png)
<h5>2.等价路由</h5>
路由表中存在等价路由之后前往该目的网段的IP报文路由器会通过所有有效的接口、下一跳转发这种转发行为被称为负载分担
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210133132942.png" alt="image-20220210133132942" style="zoom:80%;" />
<h5>3.浮动路由</h5>
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210133205759.png" alt="image-20220210133205759" style="zoom:50%;" />
静态路由支持配置时手动指定优先级,可以通过配置目的地址/掩码相同、优先级不同、下一跳不同的静态路由,实现转发路径的备份
浮动路由是主用路由的备份,保证链路故障时提供备份路由,主用路由下一跳可达时该备份路由不会出现的路由表
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210133501543.png" alt="image-20220210133501543" style="zoom:80%;" />
RTA-RTB之间的链路正常时20.0.0.0/30的两条路由条目都是有效的条目此时比较优先级下一跳为10.1.1.2的优先级60下一跳为10.1.2.2的优先级70因此下一跳为10.1.1.2的加入路由表
RTA-RTB之间的链路故障时10.1.1.2不可达因此下一跳为10.1.1.2的路由失效此时前往20.0.0.0/30的路由就只存在一条该条路由将会被选入路由表。前往20.0.0.1的流量将会被转发到10.1.2.2
<h5>4.路由汇总</h5>
CIDR无类别域间路由采用IP地址加掩码长度来标识网络和子网而不是按照传统的A、B、C等类型对网络地址进行划分
CIDR容许任意长度的掩码长度将IP地址看成连续的地址空间可以使用任意长度的前缀分配多个连续的前缀可以聚合成一个网络该特性可以有效的减少路由表条目数量
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210134024146.png" alt="image-20220210134024146" style="zoom:80%;" />
**路由汇总需求**
子网划分、VLSM解决了地址空间浪费的问题但同时也带来了新的问题路由表中的路由条目数量增加
为减少路由条目数量可以使用路由汇总
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210134222378.png" alt="image-20220210134222378" style="zoom:80%;" />
对于一个大规模的网络来说路由器或其他具备路由功能的设备势必需要维护大量的路由表项为了维护臃肿的路由表这些设备就不得不耗费大量的资源。同时由于路由表的规模变大会导致路由器在查表转发时效率降低。因此在保证网络中的路由器到各网段都具备IP可达性的同时需要减小设备的路由表规模。一个网络如果具备科学的IP编址并且进行合理的规划是可以利用多种手段减小设备路由表规模的。一个非常常见而又有效的办法就是使用路由汇总Route Summarization。路由汇总又被称为路由聚合Route Aggregation是将一组有规律的路由汇聚成一条路由从而达到减小路由表规模以及优化设备资源利用率的目的我们把汇聚之前的这组路由称为精细路由或明细路由把汇聚之后的这条路由称为汇总路由或聚合路由
**路由汇总简介**
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210134309351.png" alt="image-20220210134309351" style="zoom:80%;" />
RTA上为了能够前往远端地址需要为每一个远端网段配置一条明细路由。去往10.1.1.0/24、10.1.2.0/24、10.1.3.0/24…拥有相同下一跳。将拥有相同下一跳一组有规律的路由汇总成一条路由这叫做路由汇总路由汇总可以有效减少路由表项大小
**汇总计算**
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210134417435.png" alt="image-20220210134417435" style="zoom:80%;" />
基于一系列连续的、有规律的IP网段如果需计算相应的汇总路由且确保得出的汇总路由刚好“囊括”上述IP网段则需确保汇总路由的掩码长度尽可能长
<h5>5.汇总引发的环路问题</h5>
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210134659528.png" alt="image-20220210134659528" style="zoom:80%;" />
**解决方案**
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210134725973.png" alt="image-20220210134725973" style="zoom:80%;" />
一般来说一条路由无论是静态的或者是动态的都需要关联到一个出接口路由的出接口指的是设备要到达一个目的网络时的出站接口。路由的出接口可以是该设备的物理接口例如百兆、千兆以太网接口也可以是逻辑接口例如VLAN接口VLAN Interface或者隧道Tunnel接口等。在众多类型的出接口中有一种接口非常特殊那就是Null无效接口这种类型的接口只有一个编号也就是0。Null0是一个系统保留的逻辑接口当网络设备在转发某些数据包时如果使用出接口为Null0的路由那么这些报文将被直接丢弃就像被扔进了一个黑洞里因此出接口为Null0的路由又被称为黑洞路由
<h5>6.精确汇总</h5>
![image-20220210134926567](%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210134926567.png)
![image-20220210134937514](%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210134937514.png)
<h3>第二节动态路由协议RIP</h3>
<h4>RIP 路由信息协议</h4>
它基于距离矢量算法的协议,使用跳数作为度量来衡量达到目的网络的距离
矢量:从源到目的,源只知道目的是谁
工作原理设备之间互相发送request路由更新请求消息收到request消息的设备将路由放到response路由更新中发送出去当网络稳定后RIP周期性发送response消息周期为30s一次
<h5>1.RIP的报文格式</h5>
```shell
Command指令/命令1request或2response
Version版本 rip v1 和 rip v2
Address family identitier 地址族标识 固定取值ipv4
Ip address ip地址 在request消息中不显示
Metric固定取值16
```
RIP v1 以广播的形式发送response路由更新 255.255.255.255
RIP v2 以组播的形式发送response路由更新 224.0.0.9
RIP度量Metric度量等同于开销
RIP使用跳数作为度量值来衡量到达目的的网络
缺省的情况下直连网络的路由条数为0当路由器发送路由更新时会把度量值加1不能超过15跳
<h5>2.RIPv1和RIPv2的比较</h5>
V1有类别路由协议不支持VLSM和CIDR无类别域间路由
以广播的形式发送报文255.255.255.255
V2无类别路由协议支持VLSM支持路由聚合与CIDR
支持以广播或者组播224.0.0.9)方式发送报文
支持明文认证和MD5密文认证
<h5>3.V2的报文格式</h5>
Route Tag路由标记 用来做路由策略使用
Subnet Mask子网掩码
Next Hop 下一跳
<h4>RIP基本配置</h4>
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210140442194.png" alt="image-20220210140442194" style="zoom:80%;" />
**R1**
```shell
<Huawei>system view
Enter system view, return user view with Ctrl+Z.
[Huawei]
[Huawei]int g0/0/0 //进入接口
[Huawei-GigabitEthernet0/0/0]ip address 10.1.1.1 24 //配置IP地址
[Huawei-GigabitEthernet0/0/0]int g0/0/1
[Huawei-GigabitEthernet0/0/1]ip address 10.1.2.1 24
[Huawei-GigabitEthernet0/0/1]display ip interface brief //查看接口配置
*down: administratively down
^down: standby
(l): loopback
(s): spoofing
The number of interface that is UP in Physical is 3
The number of interface that is DOWN in Physical is 1
The number of interface that is UP in Protocol is 3
The number of interface that is DOWN in Protocol is 1
Interface IP Address/Mask Physical Protocol
GigabitEthernet0/0/0 10.1.1.1/24 up up
GigabitEthernet0/0/1 10.1.2.1/24 up up
GigabitEthernet0/0/2 unassigned down down
NULL0 unassigned up up(s)
```
**R2**
```shell
<Huawei>system-view
Enter system view, return user view with Ctrl+Z.
[Huawei]int g0/0/0
[Huawei-GigabitEthernet0/0/0]ip address 10.1.2.2 24
[Huawei-GigabitEthernet0/0/0]int g0/0/1
[Huawei-GigabitEthernet0/0/1]ip address 10.1.3.1 24
[Huawei-GigabitEthernet0/0/1]display ip interface brief
*down: administratively down
^down: standby
(l): loopback
(s): spoofing
The number of interface that is UP in Physical is 3
The number of interface that is DOWN in Physical is 1
The number of interface that is UP in Protocol is 3
The number of interface that is DOWN in Protocol is 1
Interface IP Address/Mask Physical Protocol
GigabitEthernet0/0/0 10.1.2.2/24 up up
GigabitEthernet0/0/1 10.1.3.1/24 up up
GigabitEthernet0/0/2 unassigned down down
NULL0 unassigned up up(s)
```
**R3**
```shell
<Huawei>sys
Enter system view, return user view with Ctrl+Z.
[Huawei]int g0/0/0
[Huawei-GigabitEthernet0/0/0]ip add 10.1.3.2 24
[Huawei-GigabitEthernet0/0/0]int g0/0/1
[Huawei-GigabitEthernet0/0/1]ip add 10.1.4.1 24
[Huawei-GigabitEthernet0/0/1]display ip interface brief
*down: administratively down
^down: standby
(l): loopback
(s): spoofing
The number of interface that is UP in Physical is 3
The number of interface that is DOWN in Physical is 1
The number of interface that is UP in Protocol is 3
The number of interface that is DOWN in Protocol is 1
Interface IP Address/Mask Physical Protocol
GigabitEthernet0/0/0 10.1.3.2/24 up up
GigabitEthernet0/0/1 10.1.4.1/24 up up
GigabitEthernet0/0/2 unassigned down down
NULL0 unassigned up up(s)
```
<h5>1.结果</h5>
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210140659812.png" alt="image-20220210140659812" style="zoom: 50%;" />
<h5>2.抓包</h5>
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210140731552.png" alt="image-20220210140731552" style="zoom:50%;" />
<h3>第三节开放式最短路径优先OSPF</h3>
<h4>一:动态路由协议分类</h4>
<h5>1.距离矢量路由协议</h5>
运行距离矢量路由协议的路由器周期性的泛洪自己的路由表,通过路由的交互,每台路由器都从相邻的路由器学习到路由,并加载到自己的路由表中
对于网络中的所有路由器而言,路由器并不清楚网络的拓扑,只是简单的知道要去往某个目的方向在哪里,距离有多远,这即是距离矢量算法的本质
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210141754284.png" alt="image-20220210141754284" style="zoom:80%;" />
<h5>2.链路状态路由协议—LSA泛洪</h5>
与巨鹿矢量路由协议不同链路状态路由协议通告的是链路状态而不是路由表运行链路状态路由协议的路由器之间是首先会建立一个协议的邻居关系然后彼此之间开始交互LSALink State Advertisement 链路状态通告)
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210142045413.png" alt="image-20220210142045413" style="zoom:80%;" />
链路状态通告,可以简单的理解为每台路由器都产生一个描述自己直连接口状态(包括接口的开销、与邻居路由器之间的关系等)的通告
<h5>3.链路状态路由协议-LSDB组建</h5>
每台路由器都会产生LSAs路由器将接收到的LSAs放入到自己的LSDB链路状态数据库路由器通过LSDB掌握了全网的拓扑
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210143537604.png" alt="image-20220210143537604" style="zoom:80%;" />
<h5>4.链路状态路由协议—SPF计算</h5>
每台路由器基于LSDB使用SPFShortest Path First 最短路径优先)算法进行计算,每台路由器都计算出一颗以自己为根的、无环的、拥有最短路径的“树”,有了这颗树,路由器就已经知道了到达网络各个角落的优选路径
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210143939311.png" alt="image-20220210143939311" style="zoom:80%;" />
SPF是OSPF路由协议的一个核心算法用来在一个复杂的网络中做出路由优选的决策
<h5>5.链路状态路由协议—路由表生成</h5>
路由器将计算出来的优选路径,加载进自己的路由表
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210144117682.png" alt="image-20220210144117682" style="zoom:80%;" />
<h5>6.链路状态路由协议总结</h5>
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210144156764.png" alt="image-20220210144156764" style="zoom:80%;" />
**链路状态路由协议有四个步骤:**
第一步是建立相邻路由器之间的邻居关系
第二步是邻居之间交互链路状态信息和同步LSDB
第三步是进行优选路径计算
第四步是根据最短路径树生成路由表项加载到路由表
<h4>OSPF协议</h4>
<h5>1.OSPF简介</h5>
OSPF是IETF定义的一种基于链路状态的内部网关路由协议。目前针对IPv4协议使用的是OSPF Version 2RFC2328针对IPv6协议使用OSPF Version 3RFC2740
**OSPF有以下优点**
基于SPF算法以“累计链路开销”作为选路参考值
采用组播形式收发部分协议报文
支持区域划分
支持对等价路由进行负载分担
支持报文认证
**OSPF应用场景**
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210144610351.png" alt="image-20220210144610351" style="zoom:50%;" />
大型企业网络中通常部署OSPF实现各个楼宇的网络之间的路由可达
核心和汇聚层部署在OSPF骨干区域
接入和汇聚层部署在OSPF非骨干区域
注意:
接入层:接入层利用光纤、双绞线、同轴电缆、无线接入技术等传输介质,实现与用户连接,并进行业务和带宽的分配。接入层目的是允许终端用户连接到网络,因此接入层交换机具有低成本和高端口密度特性
汇聚层:汇聚层为接入层提供基于策略的连接,如地址合并,协议过滤,路由服务,认证管理等。通过网段划分实现与网络隔离,可以防止网络故障蔓延和影响到核心层。汇聚层同时也可以提供接入层虚拟网之间的互连,控制和限制接入层对核心层的访问,保证核心层的安全和稳定
核心层:核心层的功能主要是实现骨干网络之间的优化传输,核心层任务的重点通常是冗余能力、可靠性和高速的传输
<h5>2.OSPF基础术语</h5>
**Router ID**
Router ID用于在自治系统中唯一标识一台运行OSPF的路由器它是一个32位的无符号整数
Router ID选举规则如下
手动配置OSPF路由器的Router ID建议手动配置
如果没有手动配置Router ID则路由器使用Loopback接口中最大的IP地址作为Router ID
如果没有配置Loopback接口则路由器使用物理接口中最大的IP地址作为Router ID
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210144927724.png" alt="image-20220210144927724" style="zoom:50%;" />
Router ID一旦选定之后如果要更改的话就需要重启OSPF进程
在实际工程中推荐手工指定OSPF路由设备的Router ID。首先规划出一个私有网段用于OSPF的Router ID选择例如192.168.1.0/24。在启用OSPF进程前在每个OSPF路由器上建立一个Loopback接口使用一个32位掩码的私有地址作为其IP地址这个32位的私有地址即作为该路由设备的Router ID。如果没有特殊要求这个Loopback接口地址可以不发布在OSPF网络中
**区域**
OSPF Area用于标识一个OSPF的区域
区域是从逻辑上将设备划分为不同的组每个组用区域号Area ID来标识
OSPF的区域ID是一个32bit的非负整数按点分十进制的形式与IPv4地址的格式一样呈现例如Area0.0.0.1。为了简便起见,我们也会采用十进制的形式来表示
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210145147950.png" alt="image-20220210145147950" style="zoom:50%;" />
**度量值**
OSPF使用Cost开销作为路由的度量值。每一个激活了OSPF的接口都会维护一个接口Cost值缺省的接口Cost = 100 Mbit/s ➗接口带宽。其中100 Mbit/s为OSPF指定的缺省参考值该值是可配置的
OSPF以“累计cost”为开销值也就是流量从源网络到目的网络所经过所有路由器的出接口的cost总和
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210145307160.png" alt="image-20220210145307160" style="zoom:50%;" />
注意:
在实际应用中推荐根据接口带宽大小手动配置Cost值而不是修改OSPF参考带宽
<h5>3.OSPF三大表项</h5>
**邻居表**
OSPF有三张重要的表项OSPF邻居表、LSDB和OSPF路由表。对于OSPF的邻居表需要了解
OSPF在传递链路状态信息之前需先建立OSPF邻居关系
OSPF的邻居关系通过交互Hello报文建立
OSPF邻居表显示了OSPF路由器之间的邻居状态使用display ospf peer查看
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210145627652.png" alt="image-20220210145627652" style="zoom:80%;" />
**LSDB**
LSDB会保存自己产生的及从邻居收到的LSA信息本例中R1的LSDB包含了三条LSA
Type标识LSA的类型AdvRouter标识发送LSA的路由器
使用命令行display ospf lsdb查看LSDB表
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210145711139.png" alt="image-20220210145711139" style="zoom:80%;" />
**OSPF路由表**
OSPF路由表和路由器路由表是两张不同的表。本例中OSPF路由表有三条路由
OSPF路由表包含Destination、Cost和NextHop等指导转发的信息
使用命令display ospf routing查看OSPF路由表
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210145808370.png" alt="image-20220210145808370" style="zoom:80%;" />
注意:
路由器路由表通常称为全局路由表并非所有OSPF路由都可以放到路由器路由表
<h5>3.OSPF报文格式和类型</h5>
OSPF一共定义了5种类型的报文不同类型的OSPF报文有相同的头部格式
OSPF报文直接采用IP封装在报文的IP头部中协议号为89
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210145943467.png" alt="image-20220210145943467" style="zoom:80%;" />
Version 对于当前所使用的OSPFv2该字段的值为2
Router ID表示生成此报文的路由器的Router ID
Area ID表示此报文需要被通告到的区域
Type类型字段
Packet length表示整个OSPF报文的长度单位是字节
Checksum校验字段其校验的范围是整个OSPF报文包括OSPF报文头部
Auth Type为0时表示不认证为1时表示简单的明文密码认证为2时表示加密MD5认证
Authentication认证所需的信息。该字段的内容随AuType的值不同而不同
<h5>4.OSPF工作过程</h5>
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210150146745.png" alt="image-20220210150146745" style="zoom:50%;" />
**建立邻居关系**
OSPF使用Hello报文发现和建立邻居关系
在以太网链路上缺省时OSPF采用组播的形式发送Hello报文目的地址224.0.0.5
OSPF Hello报文中包含了路由器的Router ID、邻居列表等信息
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210150229349.png" alt="image-20220210150229349" style="zoom:80%;" />
注意:
R1和R2路由器相互发送Hello报文第一个Hello报文包含的邻居列表为空
R2收到R1发送的Hello报文后如果各项参数匹配再次发送Hello报文时将R1加入自己的邻居列表
在以太网链路上通常以组播形式发送Hello报文
224.0.0.5的组播地址为OSPF设备的预留IP组播地址
224.0.0.6的组播地址为OSPF DR/BDR的预留IP组播地址
对于不支持组播的链路OSPF支持采用单播的方式发送Hello报文
**Hello报文**
Hello报文的主要作用
邻居发现:自动发现邻居路由器
邻居建立完成Hello报文中的参数协商建立邻居关系
邻居保持:通过周期性发送和接收,检测邻居运行状态
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210150519487.png" alt="image-20220210150519487" style="zoom:50%;" />
Network Mask发送Hello报文的接口的网络掩码
HelloInterval发送Hello报文的时间间隔。通常为10s
RouterDeadInterval失效时间。如果在此时间内未收到邻居发来的Hello报文则认为邻居失效。通常为40s
Neighbor邻居以Router ID标识
Options
E是否支持外部路由
MC是否支持转发组播数据包
N/P是否为NSSA区域
Router PriorityDR优先级。默认为1。如果设置为0则路由器不能参与DR或BDR的选举
Designated RouterDR的接口地址
Backup Designated RouterBDR的接口地址
**邻接关系建立**
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210150724080.png" alt="image-20220210150724080" style="zoom:50%;" />
DD报文部分字段解释
I当发送连续多个DD报文时如果这是第一个DD报文则置为1否则置为0
M (More)当发送连续多个DD报文时如果是最后一个DD报文则置为0。否则置为1表示后面还有其他的DD报文
MS (Master/Slave)当两台OSPF路由器交换DD报文时首先需要确定双方的主从关系Router ID大的一方会成为Master。当值为1时表示发送方为Master
DD sequence numberDD报文序列号。主从双方利用序列号来保证DD报文传输的可靠性和完整性
注意:
R1和R2的Router ID分别为10.0.1.1和10.0.2.2并且二者已建立了邻居关系。当R1的邻居状态变为ExStart后R1会发送第一个DD报文。此报文中M-bit设置为1表示后续还有DD报文要发送MS-bit设置为1表示R1宣告自己为Master。DD序列号被随机设置为XI-bit设置为1表示这是第一个DD报文
同样当R2的邻居状态变为ExStart后R2也会发送第一个DD报文。此报文中DD序列号被随机设置为YI-bit=1M-bit=1MS-bit=1含义同上。由于R2的Router ID较大所以R2将成为真正的Master。收到此报文后R1会产生一个Negotiation-Done事件并将邻居状态从ExStart变为Exchange
当R1的邻居状态变为Exchange后R1会发送一个新的DD报文此报文中包含了LSDB的摘要信息序列号设置为R2在步骤2中使用的序列号YI-bit=0表示这不是第一个DD报文M-bit=0表示这是最后一个包含LSDB摘要信息的DD报文MS-bit=0表示R1宣告自己为Slave。收到此报文后R2将邻居状态从ExStart变为Exchange
当R2的邻居状态变为Exchange后R2会发送一个新的DD报文此报文包含了LSDB的摘要信息。DD序列号设置为Y+1, MS-bit=1表示R2宣告自己为Master
虽然R1不需要发送新的包含LSDB摘要信息的DD报文但是作为SlaveR1需要对Master发送的每一个DD报文进行确认。所以R1向R2发送一个新的DD报文序列号为Y+1该报文内容为空。发送完此报文后RTA产生一个Exchange-Done事件将邻居状态变为Loading。R2收到此报文后会将邻居状态变为Full假设R2的LSDB是最新最全的不需要向R1请求更新
**DD报文**
DD报文包含LSA头部信息包括LS Type、LS ID、Advertising Router、LS Sequence Number、LS Checksum
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210150932072.png" alt="image-20220210150932072" style="zoom:50%;" />
Interface MTU指示在不分片的情况下此接口最大可发出的IP报文长度。在两个邻居发送DD报文中包含MTU参数如果收到的DD报文中MTU和本端的MTU不相等则丢弃该DD报文。缺省情况下华为设备未开启MTU检查
Optinons字段同Hello报文
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210150956105.png" alt="image-20220210150956105" style="zoom:50%;" />
R1开始向R2发送LSR报文请求那些在Exchange状态下通过DD报文发现的、并且在本地LSDB中没有的链路状态信息
R2向R1发送LSU报文LSU报文中包含了那些被请求的链路状态的详细信息。R1在完成LSU报文的接收之后且没有其他待请求的LSA后会将邻居状态从Loading变为Full
R1向R2发送LSAck报文作为对LSU报文的确认
**DR与BDR的作用**
MA网络中的问题
n×(n1)/2个邻接关系管理复杂
重复的LSA泛洪造成资源浪费
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210151107489.png" alt="image-20220210151107489" style="zoom:50%;" />
解决方案:
在MA网络中选举DR
DRDesignated Router指定路由器负责在MA网络建立和维护邻接关系并负责LSA的同步
DR与其他所有路由器形成邻接关系并交换链路状态信息其他路由器之间不直接交换链路状态信息
为了规避单点故障风险通过选举BDR备份指定路由器 在DR失效时快速接管DR的工作
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210151201562.png" alt="image-20220210151201562" style="zoom:50%;" />
MA Multiple Access多路访问 分为BMA Broadcast Multi-Access广播多路访问和NBMANon-Broadcast Multiple Access非广播多路访问。以太网链路组成的网络是典型的BMA网络。帧中继链路通过逻辑上的划分组成典型的NBMA网络
DRother既不是DR也不是BDR的路由器就是DRother路由器
**DR与BDR的选举规则**
DR/BDR的选举是非抢占式的
DR/BDR的选举是基于接口的
接口的DR优先级越大越优先
接口的DR优先级相等时Router ID越大越优先
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210151332106.png" alt="image-20220210151332106" style="zoom:50%;" />
**广播链路或者NBMA链路上DR和BDR的选举过程如下**
接口UP后发送Hello报文同时进入到Waiting状态。在Waiting状态下会有一个WaitingTimer该计时器的长度与DeadTimer是一样的。默认值为40秒用户不可自行调整
在WaitingTimer触发前发送的Hello报文是没有DR和BDR字段的。在Waiting阶段如果收到Hello报文中有DR和BDR那么直接承认网络中的DR和BDR而不会触发选举。直接离开Waiting状态开始邻居同步
假设网络中已经存在一个DR和一个BDR这时新加入网络中的路由器不论它的Router ID或者DR优先级有多大都会承认现网中已有的DR和BDR
当DR因为故障Down掉之后BDR会继承DR的位置剩下的优先级大于0的路由器会竞争成为新的BDR
只有当不同Router ID或者配置不同DR优先级的路由器同时起来在同一时刻进行DR选举才会应用DR选举规则产生DR
**不同网络类型中DR与BDR的选举操作**
P2MPpoint-to-multipoint点到多点
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210151454398.png" alt="image-20220210151454398" style="zoom:50%;" />
**OSPF状态机**
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210152247640.png" alt="image-20220210152247640" style="zoom:80%;" />
<h5>5.OSPF基本配置</h5>
![image-20220210151614195](%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210151614195.png)
![image-20220210151623681](%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210151623681.png)
<h5>6.OSPF配置举例</h5>
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210152338230.png" alt="image-20220210152338230" style="zoom:50%;" />
```shell
以R2为例
[R2]ospf 1 router-id 10.0.2.2
[R2-ospf-1]area 0.0.0.0
[R2-ospf-1-area-0.0.0.0] network 10.0.12.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0] network 10.0.24.2 0.0.0.0
[R2-ospf-1-area-0.0.0.0] network 10.0.35.2 0.0.0.0
```
注意:
**ospf发布network 192.168.1.1 0.0.0.0 和network 192.168.1.0 0.0.0.255区别**
开放不同
network 192.168.1.1 0.0.0.0network 192.168.1.1 0.0.0.0指定向外部IP地址开放了192.168.1.1这个ip地址的路由。
network 192.168.1.0 0.0.0.255network 192.168.1.0 0.0.0.255向外部IP地址开放了192.168.1.0这个ip地址里24位网段里的所有子地址的路由。
通信不同
network 192.168.1.1 0.0.0.0其他ip地址的路由只能通过network 192.168.1.1 0.0.0.0和同一192.168.1这个ip地址进行通信。
network 192.168.1.0 0.0.0.255其他ip地址的路由可以通过network 192.168.1.0 0.0.0.255能和同一192.168.1以下网段里的所有子地址之间进行通信。
**OSPF配置验证**
display ospf interface all可查看当前设备所有激活OSPF的接口信息
时间参数例如Hello报文发送间隔死亡时间。
接口的链路类型、接口的MTU。
对于以太网链路可查看DR的接口地址DR的优先级。
```shell
[R2]display ospf interface all
OSPF Process 1 with Router ID 10.0.2.2
Area: 0.0.0.0
Interface: 10.0.12.2 (GigabitEthernet0/0/0)
Cost: 1 State: DR Type: Broadcast MTU: 1500 Priority: 1
Designated Router: 10.0.12.2
Backup Designated Router: 10.0.12.1
Timers: HELLO 10 , Dead 40 , Poll 120 , Retransmit 5 , Transmit Delay 1
Interface: 10.0.235.2 (GigabitEthernet0/0/1)
Cost: 1 State: DROther Type: Broadcast MTU: 1500 Priority: 1
Designated Router: 10.0.235.5
Backup Designated Router: 10.0.235.3
Timers: HELLO 10 , Dead 40 , Poll 120 , Retransmit 5 , Transmit Delay 1
Interface: 10.0.24.2 (Serial1/0/1) --> 10.0.24.4
Cost: 48 State: P-2-P Type: P2P MTU: 1500
Timers: HELLO 10 , Dead 40 , Poll 120 , Retransmit 5 , Transmit Delay 1
```
display ospf peer可查看当前设备的邻居状态
邻居路由器的Router ID
邻居状态例如FULLTWO-WAYDOWN等
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210152639604.png" alt="image-20220210152639604" style="zoom:50%;" />
```shell
<R2>display ospf peer
OSPF Process 1 with Router ID 10.0.2.2
Area 0.0.0.0 interface 10.0.12.2(GigabitEthernet0/0/0)'s neighbors
Router ID: 10.0.1.1 Address: 10.0.12.1
State: Full Mode:Nbr is Slave Priority: 1
DR: 10.0.12.2 BDR: 10.0.12.1 MTU: 0
Dead timer due in 28 sec
Retrans timer interval: 5
Neighbor is up for 00:01:31
Authentication Sequence: [ 0 ]
Area 0.0.0.0 interface 10.0.235.2(GigabitEthernet0/0/1)'s neighbors
Router ID: 10.0.3.3 Address: 10.0.235.3
State: Full Mode:Nbr is Master Priority: 1
DR: 10.0.235.5 BDR: 10.0.235.3 MTU: 0
Dead timer due in 30 sec
Retrans timer interval: 5
Neighbor is up for 00:01:31
Authentication Sequence: [ 0 ]
```
在P2P网络中不需要选举DR/BDR。因此在本例中查看R2的OSPF邻居表时会发现其Serial1/0/1接口的数据结构中DR/BDR字段为None
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210152717792.png" alt="image-20220210152717792" style="zoom:50%;" />
```shell
<R2>display ospf peer
OSPF Process 1 with Router ID 10.0.2.2
Area 0.0.0.0 interface 10.0.235.2(GigabitEthernet0/0/1)'s neighbors
Router ID: 10.0.5.5 Address: 10.0.235.5
State: Full Mode:Nbr is Master Priority: 1
DR: 10.0.235.5 BDR: 10.0.235.3 MTU: 0
Dead timer due in 40 sec
Retrans timer interval: 0
Neighbor is up for 00:01:27
Authentication Sequence: [ 0 ]
Area 0.0.0.0 interface 10.0.24.2(Serial1/0/1)'s neighbors
Router ID: 10.0.4.4 Address: 10.0.24.4
State: Full Mode:Nbr is Master Priority: 1
DR: None BDR: None MTU: 0
Dead timer due in 35 sec
Retrans timer interval: 5
Neighbor is up for 00:01:56
Authentication Sequence: [ 0 ]
```
display ospf lsdb可查看当前设备的LSDB
LSDB由多种类型的LSA构成所有的LSA都有相同的报文头部格式其中关键字段如Type、LinkState ID、AdvRouter等。下节课程将重点介绍LSA的详细信息
```shell
<R2>display ospf lsdb
OSPF Process 1 with Router ID 10.0.2.2
Link State Database
Area: 0.0.0.0
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 10.0.4.4 10.0.4.4 662 72 80000006 48
Router 10.0.2.2 10.0.2.2 625 72 8000000C 1
Router 10.0.1.1 10.0.1.1 638 60 80000007 1
Router 10.0.5.5 10.0.5.5 634 60 8000000B 1
Router 10.0.3.3 10.0.3.3 639 60 80000009 1
Network 10.0.235.5 10.0.5.5 634 36 80000005 0
Network 10.0.12.2 10.0.2.2 629 32 80000003 0
```
display ospf routing可查看当前设备的OSPF路由表
从R2的OSPF路由表可看出它已经通过OSPF获知到达全网的路由
```shell
<R2>display ospf routing
OSPF Process 1 with Router ID 10.0.2.2
Routing Tables
Destination Cost Type NextHop AdvRouter Area
10.0.12.0/24 1 Transit 10.0.12.2 10.0.2.2 0.0.0.0
10.0.24.0/24 48 Stub 10.0.24.2 10.0.2.2 0.0.0.0
10.0.235.0/24 1 Transit 10.0.235.2 10.0.2.2 0.0.0.0
10.0.13.0/24 49 Stub 10.0.12.1 10.0.1.1 0.0.0.0
10.0.13.0/24 49 Stub 10.0.235.3 10.0.3.3 0.0.0.0
10.0.45.0/24 49 Stub 10.0.235.5 10.0.5.5 0.0.0.0
```
<h3>第四节OSPF路由计算</h3>
<h4>一:区域内路由计算</h4>
<h5>1.LSA概述</h5>
**LSA的基本概念**
LSA是OSPF进行路由计算的关键依据
OSPF的LSU报文可以携带多种不同类型的LSA
各种类型的LSA拥有相同的报文头部
链路状态类型、链路状态ID、通告路由器三元组唯一地标识了一个LSA
链路状态老化时间 、链路状态序列号 、校验和用于判断LSA的新旧
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210153537721.png" alt="image-20220210153537721" style="zoom:50%;" />
LS Age链路状态老化时间此字段表示LSA已经生存的时间单位是秒
Options可选项每一个bit都对应了OSPF所支持的某种特性
LS Type链路状态类型指示本LSA的类型
Link State ID链路状态ID不同的LSA对该字段的定义不同
Advertising Router通告路由器产生该LSA的路由器的Router ID
LS Sequence Number链路状态序列号当LSA每次有新的实例产生时序列号就会增加
LS Checksum校验和用于保证数据的完整性和准确性
Length是一个包含LSA头部在内的LSA的总长度值
注意:
LS Age当LSA被始发时该字段为0随着LSA在网络中被泛洪该时间逐渐累加当到达MaxAge缺省值为3600sLSA不再用于路由计算
LS Sequence Number该字段用于判断LSA的新旧或是否存在重复的实例。序列号范围是0x80000001-0x7FFFFFFF路由器始发一个LSA序列号为0x80000001之后每次更新序列号加1当LSA达到最大序列号时重新产生该LSA并且把序列号设置为0x80000001
<h5>2.常见LSA的类型</h5>
| **类型** | **名称** | **描述** |
| -------- | ---------------------------------- | ------------------------------------------------------------ |
| 1 | 路由器LSARouter LSA | 每个设备都会产生描述了设备的链路状态和开销该LSA只能在接口所属的区域内泛洪 |
| 2 | 网络LSANetwork LSA | 由DR产生描述该DR所接入的MA网络中所有与之形成邻接关系的路由器以及DR自己。该LSA只能在接口所属区域内泛洪 |
| 3 | 网络汇总LSANetwork Summary LSA | 由ABR产生描述区域内某个网段的路由该类LSA主要用于区域间路由的传递 |
| 4 | ASBR汇总LSAASBR Summary LSA | 由ABR产生描述到ASBR的路由通告给除ASBR所在区域的其他相关区域。 |
| 5 | AS外部LSAAS External LSA | 由ASBR产生用于描述到达OSPF域外的路由 |
| 7 | 非完全末梢区域LSANSSA LSA | 由ASBR产生用于描述到达OSPF域外的路由。NSSA LSA与AS外部LSA功能类似但是泛洪范围不同。NSSA LSA只能在始发的NSSA内泛洪并且不能直接进入Area0。NSSA的ABR会将7类LSA转换成5类LSA注入到Area0 |
<h5>3.Router LSA</h5>
Router LSA1类LSA每台OSPF路由器都会产生。它描述了该路由器直连接口的信息
Router LSA只能在所属的区域内泛洪
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210154017685.png" alt="image-20220210154017685" style="zoom:80%;" />
V (Virtual Link ) 如果产生此LSA的路由器是虚连接的端点则置为1
E (External ) 如果产生此LSA的路由器是ASBR则置为1
B (Border )如果产生此LSA的路由器是ABR则置为1
links LSA中的Link链路数量。Router LSA使用Link来承载路由器直连接口的信息
**详解**
Router LSA使用Link来承载路由器直连接口的信息
每条Link均包含“链路类型”、“链路ID”、“链路数据”以及“度量值”这几个关键信息
路由器可能会采用一个或者多个Link来描述某个接口
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210154316040.png" alt="image-20220210154316040" style="zoom:80%;" />
**Router LSA描述P2P网络**
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210154346573.png" alt="image-20220210154346573" style="zoom:50%;" />
```shell
<R1>display ospf lsdb router self-originate
Type : Router
Ls id : 10.0.1.1
Adv rtr : 10.0.1.1
* Link ID: 10.0.3.3
Data : 10.0.13.1
Link Type: P-2-P
Metric : 48
* Link ID: 10.0.13.0
Data : 255.255.255.0
Link Type: StubNet
Metric : 48
Priority : Low
```
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210154418095.png" alt="image-20220210154418095" style="zoom:50%;" />
**Router LSA描述TransNet**
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210154600920.png" alt="image-20220210154600920" style="zoom:80%;" />
<h5>4.Network LSA</h5>
Network LSA2类LSA 由DR产生描述本网段的链路状态在所属的区域内传播
Network LSA 记录了该网段内所有与DR建立了邻接关系的OSPF路由器同时携带了该网段的网络掩码
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210154646334.png" alt="image-20220210154646334" style="zoom:50%;" />
Link State ID DR的接口IP地址
Network MaskMA网络的子网掩码
Attached Router连接到该MA网络的路由器的Router-ID与该DR建立了邻接关系的邻居的Router-ID以及DR自己的Router-ID如果有多台路由器接入该MA网络则使用多个字段描述
**Network LSA描述MA网络**
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210154737936.png" alt="image-20220210154737936" style="zoom:80%;" />
<h4>二:区域间路由计算</h4>
<h5>1.大型网络中单区域OSPF存在的问题</h5>
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210154929589.png" alt="image-20220210154929589" style="zoom:50%;" />
一系列连续的OSPF路由器构成的网络称为OSPF域Domain
OSPF要求网络内的路由器同步LSDB实现对于网络的一致认知
当网络规模越来越大时LSDB将变得非常臃肿设备基于该LSDB进行路由计算其负担也极大地增加了此外路由器的路由表规模也变大了这些无疑都将加大路由器的性能损耗
当网络拓扑发生变更时,这些变更需要被扩散到整个网络,并可能引发整网的路由重计算
单区域的设计使得OSPF无法部署路由汇总
<h5>2.区域划分</h5>
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210155254340.png" alt="image-20220210155254340" style="zoom:50%;" />
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210155308835.png" alt="image-20220210155308835" style="zoom:50%;" />
Router LSA和Network LSA只在区域内泛洪因此通过区域划分在一定程度上降低网络设备的内存及CPU的消耗
**划分区域后,路由器可以分为两种角色:**
区域内部路由器Internal Router该类设备的所有接口都属于同一个OSPF区域。如R1、R4、R5
区域边界路由器Area Border Router该类设备接口分别连接两个及两个以上的不同区域。如R2、R3
**区域间路由信息传递**
OSPF区域间路由信息传递是通过ABR产生的Network Summary LSA3类LSA实现的
以192.168.1.0/24路由信息为例
R2依据Area 1内所泛洪的Router LSA及Network LSA计算得出192.168.1.0/24路由区域内路由并将该路由通过Network Summary LSA通告到Area 0。R3根据该LSA可计算出到达192.168.1.0/24的区域间路由
R3重新生成一份Network Summary LSA通告到Area 2中至此所有OSPF区域都能学习到去往192.168.1.0/24的路由
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210155617909.png" alt="image-20220210155617909" style="zoom:80%;" />
**Network Summary LSA**
Network Summary LSA3类LSA由ABR产生用于向一个区域通告到达另一个区域的路由
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210155729987.png" alt="image-20220210155729987" style="zoom:50%;" />
LS Type取值3代表Network Summary LSA
Link State ID路由的目的网络地址
Advertising Router生成LSA的Router ID
Network Mask路由的网络掩码
metric到目的地址的路由开销
**Network Summary LSA示例**
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210155829248.png" alt="image-20220210155829248" style="zoom:50%;" />
此LSA是R2产生的用于向Area0通告到达192.168.1.0/24的区域间路由
```SHELL
<R2>display ospf lsdb summary 192.168.1.0
OSPF Process 1 with Router ID 10.0.2.2
Area: 0.0.0.0
Link State Database
Type : Sum-Net
Ls id : 192.168.1.0
Adv rtr : 10.0.2.2
Ls age : 86
Len : 28
Options : E
seq# : 80000001
chksum : 0x7c6d
Net mask : 255.255.255.0
Tos0 metric: 1
Priority : Low
```
**R1和R3的路由计算**
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210160004386.png" alt="image-20220210160004386" style="zoom:50%;" />
通过区域内SPF的计算R1到达R2的Cost值为1R3到达R2的Cost值为2
R1和R3根据收到的Network Summary LSA进行路由计算
R1将到达R2和Cost值和Network Summary LSA所携带的Cost值相加因此R1到达192.168.1.0/24的Cost值为2
R3将到达R2和Cost值和Network Summary LSA所携带的Cost值相加因此R3到达192.168.1.0/24的Cost值为3
**R5的路由计算**
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210160047254.png" alt="image-20220210160047254" style="zoom:50%;" />
R3作为ABR它通过Area 0内泛洪的Network Summary LSA计算出到达192.168.1.0/24的路由然后重新向Area 2注入到达该网段的Network Summary LSA其中包含自己到达该网段的Cost值为3
R5在SPF中计算得知到达R3的Cost为1因此R5到达192.168.1.0/24的Cost为4
**区域间路由计算结果验证**
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210160121031.png" alt="image-20220210160121031" style="zoom:50%;" />
**区域间路由的防环机制**
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210193759181.png" alt="image-20220210193759181" style="zoom:50%;" />
OSPF要求所有的非骨干区域必须与Area0直接相连区域间路由需经由Area0中转
区域间的路由传递不能发生在两个非骨干区域之间这使得OSPF的区域架构在逻辑上形成了一个类似星型的拓扑
注意:
OSPF要求ABR设备至少有一个接口属于骨干区域
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210202627608.png" alt="image-20220210202627608" style="zoom:50%;" />
ABR不会将描述到达某个区域内网段路由的3类LSA再注入回该区域
**虚连接的作用及配置**
OSPF要求骨干区域必须是连续的但是并不要求物理上连续可以使用虚连接使骨干区域在逻辑上连续
虚连接可以在任意两个ABR上建立但是要求这两个ABR都有端口连接到一个相同的非骨干区域
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210202847887.png" alt="image-20220210202847887" style="zoom:50%;" />
```shell
[R2-ospf-1]ospf 1
[R2-ospf-1]area 1
[R2-ospf-1-area-0.0.0.1]vlink-peer 10.0.3.3
[R3-ospf-1]ospf 1
[R3-ospf-1]area 1
[R3-ospf-1-area-0.0.0.1]vlink-peer 10.0.2.2
```
<h4>三:外部路由计算</h4>
<h5>1.OSPF外部路由引入背景</h5>
网络中存在部分链路未开启OSPF协议如
路由器连接外部网络使用静态路由或者BGP协议
服务器直连的链路未开启OSPF协议
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210203338255.png" alt="image-20220210203338255" style="zoom:50%;" />
<h5>2.外部路由引入的基本概念</h5>
ASBRAS Boundary Router自治系统边界路由器。只要一台OSPF设备引入了外部路由它就成为了ASBR
ASBR将外部路由信息以AS-external LSA5类LSA的形式在OSPF网络内泛洪
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210203253520.png" alt="image-20220210203253520" style="zoom:50%;" />
```shell
在OSPF进程下通过如下命令引入外部路由。设备支持引入BGP、ISIS、OSPF、直连以及静态路由。
import-route { limit limit-number | { bgp [ permit-ibgp ] | direct | unr | rip [ process-id-rip ] | static | isis [ process-id-isis ] | ospf [ process-id-ospf ] } [ cost cost | type type | tag tag | route-policy route-policy-name ] * }
```
**AS-external LSA详解**
AS-external LSA5类LSA由ASBR产生描述到达AS外部的路由该LSA会被通告到所有的区域除了Stub区域和NSSA区域
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210203353681.png" alt="image-20220210203353681" style="zoom:50%;" />
LS Type取值5代表AS-external-LSA
Link State ID外部路由的目的网络地址
Advertising Router生成该LSA的Router ID
Network Mask网络掩码
E :该外部路由所使用的度量值类型
0度量值类型为Metric-Type-1
1度量值类型为Metric-Type-2
metric到目的网络的路由开销
Forwarding AddressFA到所通告的目的地址的报文将被转发到这个地址
**AS-external LSA示例**
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210203523142.png" alt="image-20220210203523142" style="zoom:50%;" />
R1与服务器直连的网段为192.168.1.0/24在R1上将直连路由引入OSPF此时R1会向OSPF注入用于描述192.168.1.0/24路由的AS-external-LSA该LSA将在整个OSPF域内泛洪
```shell
<R1>display ospf lsdb ase self-originate
OSPF Process 1 with Router ID 10.0.1.1
Link State Database
Type : External
Ls id : 192.168.1.0
Adv rtr : 10.0.1.1
Ls age : 1340
Len : 36
Options : E
seq# : 80000004
chksum : 0xb5cc
Net mask : 255.255.255.0
TOS 0 Metric: 1
E type : 2
Forwarding Address : 0.0.0.0
Tag : 1
Priority : Low
```
**ASBR-Summary LSA**
ASBR-Summary LSA4类LSA由ABR产生描述到ASBR的路由通告给除ASBR所在区域的其他相关区
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210203711581.png" alt="image-20220210203711581" style="zoom:50%;" />
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210203730911.png" alt="image-20220210203730911" style="zoom:50%;" />
LS Type取值4代表ASBR-Summary LSA
Link State ID ASBR的Router ID
Advertising Router:生成LSA的Router ID
Network Mask仅保留无意义
metric到目的地址的路由开销
**ASBR-Summary LSA示例**
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210203833449.png" alt="image-20220210203833449" style="zoom:50%;" />
以R3向Area 2通告的ASBR-Summary LSA为例
```shell
<R3>display ospf lsdb asbr self-originate
Area: 0.0.0.2
Link State Database
Type : Sum-Asbr
Ls id : 10.0.1.1 //ASBR的Router ID
Adv rtr : 10.0.3.3
Ls age : 15
Len : 28
Options : E
seq# : 80000005
chksum : 0xf456
Tos 0 metric: 1 //R3到达ASBR的开销
```
<h5>3.区分OSPF外部路由的2种度量值类型</h5>
**Metric-Type-1**
当外部路由的开销与自治系统内部的路由开销相当并且和OSPF自身路由的开销具有可比性时可以认为这类路由的可信程度较高将其配置成Metric-Type-1
Metric-Type-1外部路由的开销为AS内部开销路由器到ASBR的开销与AS外部开销之和
**Metric-Type-2**
当ASBR到AS之外的开销远远大于在AS之内到达ASBR的开销时可以认为这类路由的可信程度较低将其配置成Metric-Type-2
Metric-Type-2外部路由的开销等于AS外部开销
| **Type** | **描述** | **开销计算** |
| ---------------------- | -------------------------------------- | --------------------- |
| Metric-Type-1 | 可信程度高 | AS内部开销+AS外部开销 |
| Metric-Type-2 (缺省) | 可信程度低AS外部开销远大于AS内部开销 | AS外部开销 |
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210204127873.png" alt="image-20220210204127873" style="zoom:80%;" />
<h5>4.OSPF多区域项目实战</h5>
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210213643343.png" alt="image-20220210213643343" style="zoom:80%;" />
<h3>第五节OSPF特殊区域及其他特性</h3>
<h4>Stub区域和Totally Stub区域</h4>
<h5>1.网络规模变大引发的问题</h5>
OSPF路由器计算区域内、区域间、外部路由都需要依靠网络中的LSA当网络规模变大时设备的LSDB规模也变大设备的路由计算变得更加吃力造成设备性能浪费
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210215448897.png" alt="image-20220210215448897" style="zoom:50%;" />
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210220222493.png" alt="image-20220210220222493" style="zoom:50%;" />
<h5>2.传输区域和末端区域</h5>
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210220303280.png" alt="image-20220210220303280" style="zoom:50%;" />
传输区域Transit Area除了承载本区域发起的流量和访问本区域的流量外还承载了源IP和目的IP都不属于本区域的流量即“穿越型流量”如本例中的Area 0
末端区域Stub Area只承载本区域发起的流量和访问本区域的流量如本例中的Area 1和Area 2
<h5>3.Stub区域</h5>
Stub区域的ABR不向Stub区域内传播它接收到的AS外部路由Stub区域中路由器的LSDB、路由表规模都会大大减小
为保证Stub区域能够到达AS外部Stub区域的ABR将生成一条缺省路由使用3类LSA描述
**配置Stub区域时需要注意下列几点**
骨干区域不能被配置为Stub区域
Stub区域中的所有路由器都必须将该区域配置为Stub
Stub区域内不能引入也不接收AS外部路由
虚连接不能穿越Stub区域
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210220451525.png" alt="image-20220210220451525" style="zoom:50%;" />
**Stub区域的路由表及3类LSA**
```shell
[R3]ospf 1 router-id 3.3.3.3
[R3-ospf-1]area 2
[R3-ospf-1-area-0.0.0.2]stub
R5相同
```
R1作为ASBR引入多个外部网段如果Area 2是普通区域则R3将向该区域注入5类和4类LSA
**当把Area 2配置为Stub区域后**
R3不会将5类LSA和4类LSA注入Area 2
R3向Area 2发送用于描述缺省路由的3类LSAArea 2内的路由器虽然不知道到达AS外部的具体路由但是可以通过该默认路由到达AS外部
```shell
<R5>display ospf lsdb
OSPF Process 1 with Router ID 10.0.5.5
Link State Database
Area: 0.0.0.2
Type LinkState ID AdvRouter Metric
Sum-Net 0.0.0.0 10.0.3.3 1
Sum-Net 10.0.13.0 10.0.3.3 1
Sum-Net 10.0.24.0 10.0.3.3 3
Sum-Net 10.0.12.0 10.0.3.3 2
不存在4、5类LSA但描述区域间路由的3类LSA仍然存在
```
```shell
<R5>display ospf routing
OSPF Process 1 with Router ID 10.0.5.5
Routing Tables
Routing for Network
Destination Cost Type NextHop AdvRouter Area
10.0.35.0/24 1 Transit 10.0.35.5 10.0.5.5 0.0.0.2
0.0.0.0/0 2 Inter-area 10.0.35.3 10.0.3.3 0.0.0.2
10.0.12.0/24 3 Inter-area 10.0.35.3 10.0.3.3 0.0.0.2
10.0.13.0/24 2 Inter-area 10.0.35.3 10.0.3.3 0.0.0.2
10.0.24.0/24 4 Inter-area 10.0.35.3 10.0.3.3 0.0.0.2
```
<h5>4.Totally Stub区域</h5>
Totally Stub区域既不允许AS外部路由在本区域内传播也不允许区域间路由在本区域内传播
Totally Stub区域内的路由器通过本区域ABR下发的缺省路由使用3类LSA描述到达其他区域以及AS外部
**配置Totally Stub区域时需要注意**
与Stub区域配置的区别在于在ABR上需要追加no-summary关键字
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210221609140.png" alt="image-20220210221609140" style="zoom:50%;" />
Totally Stub区域访问其他区域及AS外部是通过默认路由实现的
AS外部、其他OSPF区域的拓扑及路由变化不会导致Totally Stub区域内的路由器进行路由重计算减少了设备性能浪费
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210221723631.png" alt="image-20220210221723631" style="zoom:50%;" />
```shell
[R3-ospf-1-area-0.0.0.2]stub no-summary
[R5-ospf-1-area-0.0.0.2]stub
```
```shell
<R5>display ospf lsdb
OSPF Process 1 with Router ID 10.0.5.5
Link State Database
Area: 0.0.0.2
Type LinkState ID AdvRouter Metric
Sum-Net 0.0.0.0 10.0.3.3 1
```
**当Area 2配置为Totally Stub区域后**
R3不会将5类LSA和4类LSA注入Area 2
R3不会将3类LSA注入Area 2但是会向该区域注入一条使用3类LSA描述的缺省路由
R5通过缺省路由到达AS外部网络和其他OSPF区域
**注意:**
Stub区域、Totally Stub区域解决了末端区域维护过大LSDB带来的问题但对于某些特定场景它们并不是最佳解决方案
<h4>NSSA区域和Totally NSSA区域</h4>
<h5>1.Stub区域与Totally Stub区域存在的问题</h5>
OSPF规定Stub区域是不能引入外部路由的这样可以避免大量外部路由引入造成设备资源消耗
对于既需要引入外部路由又要避免外部路由带来的资源消耗的场景Stub和Totally Stub区域就不能满足需求了
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210222703709.png" alt="image-20220210222703709" style="zoom:80%;" />
<h5>2.NSSA区域与Totally NSSA区域</h5>
NSSA区域能够引入外部路由同时又不会学习来自OSPF网络其它区域引入的外部路由
Totally NSSA与NSSA区域的配置区别在于前者在ABR上需要追加no-summary关键字
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210222816965.png" alt="image-20220210222816965" style="zoom:50%;" />
**NSSA区域能够引入外部路由同时又不会学习来自OSPF网络其它区域的外部路由**
7类LSA是为了支持NSSA区域而新增的一种LSA类型用于描述NSSA区域引入的外部路由信息。NSSA区域的ASBR将外部路由引入该区域后使用7类LSA描述这些路由
7类LSA的扩散范围仅限于始发NSSA区域7类LSA不会被注入到普通区域
NSSA区域的ABR会将7类LSA转化为5类LSA并将该LSA注入到骨干区域从而在整个OSPF域内泛洪
NSSA区域的ABR会阻挡其他区域引入的外部路由引入本区域即NSSA区域内不会存在4类及5类LSA为了让NSSA区域内的路由器能够通过骨干区域到达AS外部NSSA区域的ABR会自动向该区域注入一条缺省路由该路由采用7类LSA描述
<h5>3.NSSA区域与Totally NSSA区域的LSDB</h5>
![image-20220210223227300](%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210223227300.png)
![image-20220210223242584](%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210223242584.png)
```shell
[R3-ospf-1-area-0.0.0.2]nssa
[R5-ospf-1-area-0.0.0.2]nssa
[R5-ospf-1]import-route direct
```
场景1将Area 2配置为NSSA区域当R5将外部路由192.168.3.0/24引入NSSA区域时R5作为ASBR生成7类LSA在Area 2内泛洪R3生成使用7类LSA描述的缺省路由注入Area 2Area 2内的路由器依然会收到R3注入的3类LSA并计算出到达其他区域的区域间路由
场景2将Area2配置为Totally NSSA区域Totally NSSA区域和NSSA区域类似只是Totally NSSA区域的ABR会阻挡3类LSA进入该区域因此在场景2中R3不会将区域间路由注入Area 2故而在R5的LSDB中仅会看到一条描述缺省路由的3类LSA
<h5>4.OSPF LSA回顾</h5>
| **类型** | **名称** | **描述** |
| -------- | ---------------------------------- | ------------------------------------------------------------ |
| 1 | 路由器LSARouter LSA | 每个设备都会产生描述了设备的链路状态和开销该LSA只能在接口所属的区域内泛洪 |
| 2 | 网络LSANetwork LSA | 由DR产生描述该DR所接入的MA网络中所有与之形成邻接关系的路由器以及DR自己。该LSA只能在接口所属区域内泛洪 |
| 3 | 网络汇总LSANetwork Summary LSA | 由ABR产生描述区域内某个网段的路由该类LSA主要用于区域间路由的传递 |
| 4 | ASBR汇总LSAASBR Summary LSA | 由ABR产生描述到ASBR的路由通告给除ASBR所在区域的其他相关区域。 |
| 5 | AS外部LSAAS External LSA | 由ASBR产生用于描述到达OSPF域外的路由 |
| 7 | 非完全末梢区域LSANSSA LSA | 由ASBR产生用于描述到达OSPF域外的路由。NSSA LSA与AS外部LSA功能类似但是泛洪范围不同。NSSA LSA只能在始发的NSSA内泛洪并且不能直接进入Area0。NSSA的ABR会将7类LSA转换成5类LSA注入到Area0 |
特殊区域的使用减小了设备的LSDB规模从而减少设备性能浪费且一定程度上也缩小了网络故障的影响范围
<h5>5.路由器对LSA的处理原则</h5>
如果收到的LSA本地没有则更新LSDB并泛洪该LSA
如果本地LSDB已存在该LSA但是收到的更新则更新LSDB并泛洪该LSA
如果收到的LSA和LSDB中相同则忽略并终止泛洪
如果收到的LSA损坏例如Checksum错误则不接收该LSA
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210224851053.png" alt="image-20220210224851053" style="zoom:50%;" />
<h4>三:区域间路由汇总和外部路由汇总</h4>
<h5>1.在ABR执行路由汇总</h5>
路由汇总又被称为路由聚合,即是将一组前缀相同的路由汇聚成一条路由,从而达到减小路由表规模以及优化设备资源利用率的目的,我们把汇聚之前的这组路由称为精细路由或明细路由,把汇聚之后的这条路由称为汇总路由或聚合路由
**OSPF路由汇总的类型**
在ABR**区域边界路由器**)执行路由汇总:对区域间的路由执行路由汇总
在ASBR**自治系统边界路由器**)执行路由汇总:对引入的外部路由执行路由汇总
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210225017868.png" alt="image-20220210225017868" style="zoom:50%;" />
**注意:**
区域边界路由器ABRArea Border Routers
该类路由器可以同时属于两个以上的区域但其中一个必须是骨干区域area 0
ABR用来连接骨干区域和非骨干区域可以是实际连接也可以是虚连接
骨干路由器Backbong Routers
该类路由器属于骨干区域area 0。只维护骨干区域的LSDB
OSPF中所有非骨干区域之间的信息都要通过骨干区域进行中转
因此所有的ABR和位于Area0的内部路由器都是骨干路由器
自治系统边界路由器ASBRAS Boundary Routers
与其他AS交换路由信息的路由器称为ASBR。 使用了多种路由协议
只要一台OSPF路由器引入了外部路由的信息他就称为了ASBR
它有可能是ABR区域路由器不一定位于AS边界
**汇总前:**
```
<R2>display ospf lsdb
area 0
Type LinkState ID AdvRouter
Sum-Net 172.16.0.0 10.0.2.2
Sum-Net 172.16.1.0 10.0.2.2
Sum-Net 172.16.2.0 10.0.2.2
Sum-Net 172.16.3.0 10.0.2.2
Sum-Net 172.16.4.0 10.0.2.2
Sum-Net 172.16.5.0 10.0.2.2
Sum-Net 172.16.6.0
```
**汇总后:**
```
<R2>display ospf lsdb
area 0
Type LinkState ID AdvRouter
Sum-Net 172.16.0.0 10.0.2.2
```
**注意:**
执行路由汇总后ABR R2只向Area 0通告汇总路由172.16.0.0/21
明细路由对应的网段如果产生翻动Up/Down该拓扑变更造成的影响将被限制在Area 1内
<h5>2.在ASBR执行路由汇总</h5>
在ASBR配置路由汇总后ASBR将对自己所引入的外部路由进行汇总
NSSA区域的ASBR也可以对引入NSSA区域的外部路由进行汇总
在NSSA区域中ABR执行7类LSA转化成5类LSA动作此时它也是ASBR。若配置路由汇总则对由7类LSA转化成的5类LSA进行汇总
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210231428727.png" alt="image-20220210231428727" style="zoom:80%;" />
<h4>OSPF协议特性</h4>
<h5>1.Silent-Interface</h5>
通过Silent-Interface的配置增强OSPF的组网适应能力减少系统资源的消耗
**Silent-Interface有以下特性**
Silent-Interface不会接收和发送OSPF报文
Silent-Interface的直连路由仍可以发布出去
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210231605803.png" alt="image-20220210231605803" style="zoom:80%;" />
```shell
<R1>display ospf interface GigabitEthernet 0/0/1
OSPF Process 1 with Router ID 10.0.1.1
Interface: 10.0.13.1 (GigabitEthernet0/0/1)
Cost: 1 State: Waiting Type: Broadcast MTU: 1500
Priority: 1
Designated Router: 0.0.0.0
Backup Designated Router: 0.0.0.0
Timers: Hello 10 , Dead 40 , Poll 120 , Retransmit 5 , Transmit Delay 1
Silent interface, No hellos
```
**注意:**
R1的GE0/0/1接口在OSPF network命令的网段范围内
到达该接口的路由将被通告到OSPF使得其他设备能够访问Server
由于该接口上未连接任何其他OSPF路由器因此管理员将该接口配置为Silent-Interface该接口将不再收发Hello报文从而避免了对Server的性能降低
<h5>2.OSPF报文认证</h5>
OSPF支持报文认证功能只有通过认证的OSPF报文才能被接收
**路由器支持两种OSPF报文认证方式当两种认证方式都存在时优先使用接口认证方式**
区域认证方式一个OSPF区域中所有的路由器在该区域下的认证模式和口令必须一致
接口认证方式:相邻路由器直连接口下的认证模式和口令必须一致
<img src="%E7%AC%AC%E5%9B%9B%E7%AB%A0%EF%BC%9A%E5%8A%A8%E6%80%81%E8%B7%AF%E7%94%B1%E6%8A%80%E6%9C%AF.assets/image-20220210231750154.png" alt="image-20220210231750154" style="zoom:80%;" />
```shell
[R2]interface GigabitEthernet 0/0/1
[R2-GigabitEthernet0/0/1]ospf authentication-mode md5 1 cipher Huawei
```
```shell
[R2]ospf
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]authentication-mode simple cipher Huawei
```
**区域视图下配置OSPF区域的认证模式**
执行命令authentication-mode simple [ plain plain-text | [ cipher ] cipher-text ]配置OSPF区域的认证模式
plain表示明文口令类型
cipher表示密文口令类型。对于MD5/HMAC-MD5认证模式当此参数缺省时默认为cipher类型
配置接口认证方式。
执行命令ospf authentication-mode simple [ plain plain-text | [ cipher ] cipher-text ]配置OSPF接口的认证模式