在学习本章之前应掌握HCIA的OSPF基础,博主此前文章有写过,下方链接即是:
https://blog.csdn.net/m0_45912044/article/details/123481259
---------------------------------------------------------------------------------------------------------------------------------
1、动态路由协议简介
动态路由协议的分类
BGP使用一种基于距离矢量算法修改后的算法,该算法被称为路径矢量(Path Vector)算法。因此在某些场合下,BGP也被称为路径矢量路由协议。
IGP(内部网关协议)在同一个自治系统内交换路由信息,IGP的主要目的是发现和计算自治域内的路由信息。
EGP(外部网关协议)主要用于AS(自治系统)之间的互联。
距离矢量路由协议(RIP)
运行距离矢量路由协议的路由器周期性的泛洪自己的路由表。通过路由的交互,每台路由器都从相邻的路由器学习到路由,并且加载进自己的路由表中。
对于网络中的所有路由器而言,路由器并不清楚网络的拓扑,只是简单的知道要去往某个目的网段方向在哪里,开销有多大。
链路状态路由协议
链路状态路由协议-LSA泛洪
与距离矢量路由协议不同,链路状态路由协议通告的的是链路状态而不是路由表。运行链路状态路由协议的路由器之间首先会建立一个协议的邻居关系,然后彼此之间开始交互LSA(Link State Advertisement,链路状态通告)。
链路状态路由协议 - LSDB维护
每台路由器都会产生LSA,路由器将接收到的LSA放入自己的LSDB(Link State DataBase,链路状态数据库)。路由器通过对LSDB中所存储的LSA进行解析,进而了解全网拓扑。
链路状态路由协议 - SPF计算
每台路由器基于LSDB,使用SPF(Shortest Path First,最短路径优先)算法进行计算。每台路由器都计算出一棵以自己为根的、无环的、拥有最短路径的“树”。有了这棵“树”,路由器就已经知道了到达所有网段的优选路径。
SPF是OSPF路由协议的一个核心算法,用来在一个复杂的网络中做出路由优选的决策。
链路状态路由协议 - 路由表生成
最后,路由器将计算出来的优选路径,加载进自己的路由表(Routing Table)。
链路状态路由协议总结
链路状态路由协议有四个步骤:
第一步是建立相邻路由器之间的邻居关系。
第二步是邻居之间交互链路状态信息和同步LSDB。
第三步是进行优选路径计算。
第四步是根据最短路径树生成路由表项加载到路由表。
2、OSPF简介
OSPF是IETF定义的一种基于链路状态的内部网关路由协议。目前针对IPv4协议使用的是OSPF Version 2(RFC2328);针对IPv6协议使用OSPF Version 3(RFC2740)。
OSPF有以下优点:
基于SPF算法,以“累计链路开销”作为选路参考值
采用组播形式收发部分协议报文
支持区域划分
支持对等价路由进行负载分担
支持报文认证
OSPF应用场景
接入层:接入层利用光纤、双绞线、同轴电缆、无线接入技术等传输介质,实现与用户连接,并进行业务和带宽的分配。接入层目的是允许终端用户连接到网络,因此接入层交换机具有低成本和高端口密度特性。
汇聚层:汇聚层为接入层提供基于策略的连接,如地址合并,协议过滤,路由服务,认证管理等。通过网段划分实现与网络隔离,可以防止网络故障蔓延和影响到核心层。汇聚层同时也可以提供接入层虚拟网之间的互连,控制和限制接入层对核心层的访问,保证核心层的安全和稳定。
核心层:核心层的功能主要是实现骨干网络之间的优化传输,核心层任务的重点通常是冗余能力、可靠性和高速的传输。
OSPF基础术语 - Router ID
Router ID用于在自治系统中唯一标识一台运行OSPF的路由器,它是一个32位的无符号整数。
Router ID选举规则如下:
手动配置OSPF路由器的Router ID(建议手动配置)
如果没有手动配置Router ID,则路由器使用Loopback接口中最大的IP地址作为Router ID
如果没有配置Loopback接口,则路由器使用物理接口中最大的IP地址作为Router ID
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基础术语:区域
OSPF Area用于标识一个OSPF的区域。
区域是从逻辑上将设备划分为不同的组,每个组用区域号(Area ID)来标识。
OSPF的区域ID是一个32bit的非负整数,按点分十进制的形式(与IPv4地址的格式一样)呈现,例如Area0.0.0.1。为了简便起见,我们也会采用十进制的形式来表示。
几个例子:Area0.0.0.1等同于Area1,Area0.0.0.255等同于Area255,Area0.0.1.0等同于Area256。许多网络厂商的设备同时支持这两种区域ID配置及表示方式。
OSPF的基础术语:度量值
OSPF使用Cost(开销)作为路由的度量值。每一个激活了OSPF的接口都会维护一个接口Cost值,缺省时接口Cost值=100 Mbit/s /接口带宽(参考带宽/实际带宽,参考带宽默认情况下是100 Mbit/s)。其中100 Mbit/s为OSPF指定的缺省参考值,该值是可配置的。
OSPF以“累计cost”为开销值,也就是流量从源网络到目的网络所经过所有路由器的出接口的cost总和。
在实际应用中,推荐根据接口带宽大小手动配置Cost值,而不是修改OSPF参考带宽。
OSPF基础术语 - 度量值修改举例
在规划流量路径时,推荐将汇聚层直连链路Cost值>接入环所有链路Cost值之和,这样可以保证从接入层访问R1或R2时,流量可通过接入层路由器直达R1或R2。
以上图为例。R1和R2位于企业网中的汇聚层,R1和R2的直连链路属于区域0,R1有一个直连网段10.0.1.1/32通过在区域0。
在缺省情况下,R4到达10.0.1.1/32的路由存在两个下一跳。
修改Cost之后,R4到达10.0.1.1的路由仅存在一个下一跳。
OSPF三大表项 - 邻居表
OSPF有三张重要的表项,OSPF邻居表、LSDB表和OSPF路由表。对于OSPF的邻居表,需要了解:
OSPF在传递链路状态信息之前,需先建立OSPF邻居关系。
OSPF的邻居关系通过交互Hello报文建立。
OSPF邻居表显示了OSPF路由器之间的邻居状态,使用display ospf peer查看。
OSPF三大表项 - LSDB
对于OSPF的LSDB表,需要了解:
LSDB会保存自己产生的及从邻居收到的LSA信息,本例中R1的LSDB包含了三条LSA。
Type标识LSA的类型,AdvRouter标识发送LSA的路由器。
使用命令行display ospf lsdb查看LSDB表。
OSPF三大表项 - OSPF路由表
对于OSPF的路由表,需要了解:
OSPF路由表和路由器路由表是两张不同的表项。本例中OSPF路由表有三条路由。
OSPF路由表包含Destination、Cost和NextHop等指导转发的信息。
使用命令display ospf routing查看OSPF路由表。
路由器路由表通常称为全局路由表,并非所有OSPF路由都可以放到路由器路由表。
OSPF报文格式和类型
OSPF一共定义了5种类型的报文,不同类型的OSPF报文有相同的头部格式。
OSPF报文直接采用IP封装,在报文的IP头部中,协议号为89。
3、OSPF工作过程
建立邻居关系
OSPF工作过程概览
建立邻居关系
OSPF使用Hello报文发现和建立邻居关系。
在以太网链路上,缺省时,OSPF采用组播的形式发送Hello报文(目的地址224.0.0.5:代表运行OSPF协议的路由器)。
OSPF Hello报文中包含了路由器的Router ID、邻居列表等信息。
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报文中的参数协商,建立邻居关系。
邻居保持:通过周期性发送和接收,检测邻居运行状态。
建立邻接关系
邻接关系建立(1)
exchange阶段,以主路由器的序列号作为起始序列号发送LSDB摘要
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序列号被随机设置为X,I-bit设置为1,表示这是第一个DD报文。
同样当R2的邻居状态变为ExStart后,R2也会发送第一个DD报文。此报文中,DD序列号被随机设置为Y(I-bit=1,M-bit=1,MS-bit=1,含义同上)。由于R2的Router ID较大,所以R2将成为真正的Master。收到此报文后,R1会产生一个Negotiation-Done事件,并将邻居状态从ExStart变为Exchange。
当R1的邻居状态变为Exchange后,R1会发送一个新的DD报文,此报文中包含了LSDB的摘要信息,序列号设置为R2在步骤2中使用的序列号Y,I-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报文,但是作为Slave,R1需要对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。
邻接关系建立 (2)
DR与BDR的作用
DR与BDR的作用
MA( Multiple Access,多路访问 )分为BMA( Broadcast Multi-Access,广播多路访问)和NBMA(Non-Broadcast Multiple Access,非广播多路访问)。以太网链路组成的网络是典型的BMA网络。帧中继链路通过逻辑上的划分组成典型的NBMA网络(注:帧中继相关知识不再介绍)。
DRother:既不是DR也不是BDR的路由器就是DRother路由器。
DR与BDR的选举规则
广播链路或者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的选举操作
P2MP:point-to-multipoint,点到多点。
可按需调整设备接口的OSPF网络类型
OSPF的网络类型是协议根据接口的数据链路层封装自动设置的,在图中,两台处于网络接入层的路由器AS-R1及AS-R2都通过双链路上联到核心层的路由器CO-R1及CO-R2。四台路由器都在各自接口上激活OSPF。由于这些路由器都是采用以太网接口互联,因此这些接口的网络类型缺省均为Broadcast,于是在邻居关系的建立过程中,OSPF会在每段以太网链路上选举DR及BDR。
然而,这实际上是没有必要而且浪费时间的(DR及BDR的选举过程涉及一个等待计时器,这增加了直连路由器形成邻接关系的时间),因为这些链路其实从逻辑的角度看都是点对点的连接,选举DR或BDR实在是画蛇添足。因此为了提高OSPF的工作效率,加快邻接关系的建立过程,可以把这些互联接口的网络类型都修改为P2P。
4、OSPF的基本配置
配置命令介绍
缺省情况下,OSPF以32位主机路由的方式对外发布Loopback接口的IP地址,与Loopback接口上配置的掩码长度无关。如果要发布Loopback接口的实际网段,需要在接口下配置网络类型为NBMA或广播型。
OSPF配置举例
OSPF配置验证
思考题
1、(单选题)OSPF使用以下哪种报文维护邻居关系?( A )
A、Hello B、Database Description C、LSR D、 LSU
2、(多选题)OSPF支持以下哪些网络类型?( ABCD )
A、P2P网络 B、P2MP网络 C、广播网络 D、NBMA网络
----以上内容为誉天教育培训过程中所记,如有雷同纯属巧合----