动态路由-OSPF

in 默认分类 with 0 comment

eaf97bd0-b912-475c-be1a-875dc3ef72e4.jpg

OSPF和STP所触及的概念较多,也相对较难。其中关于各类数值权限也比较容易混淆,将对这两种协议单独文章记录,以便后续查看回顾。

OSPF相关观念

OSPF Version2:IPV4
OSPF Version3:IPV6

OSPF Router-ID:路由器标识符(Router Identifier),在OSPF域中唯一地标识一台路由器。OSPF协议使用Router-ID作为路由器的身份标示,如果在启动这些路由协议时没有指定Router-ID,则路由协议进程可能无法正常启动;在OSPF区域中必须保证Router-ID唯一,不然OSPF无法正确识别邻居,导致OSPF网络不通。参考资料:Router-ID介绍

OSPF Router-ID 选举规则
1)如果通过Router-ID命令配置了Router-ID,则按照配置结果设置,选取优先级为第一;
2)在没有配置Router-ID的情况下,如果存在配置了IP地址的Loopback 接口,则选择Loopback接口地址中最大的地址作为Router-ID,选取优先级为第二;
3)如果没有已配置IP地址的Loopback接口,则从其他接口的IP地址中选择最大的地址作为 Router-ID(不考虑接口的Up/Down状态),选取优先级为第三。

优先级为已配置的Router-ID>最大Loopback>最大IP地址>0.0.0.0(如上述三项均未配置则默认为0.0.0.0)

当且仅当被选为Router-ID的接口IP地址被删除/修改,才触发重新选取Router-ID,其他情况(例如接口处于DOWN状态;已经选取了一个非Loopback接口地址后又配置了一个Loopback接口地址;配置了一个更大的接口地址等)不触发重新选择的过程。
OSPF Router-ID选举具有非抢占性,Router-ID改变之后,OSPF协议需要通过手动执行reset命令,重启OSPF进程(或重启路由器)后才会重新选取新的Router-ID。
重启OSPF进程命令:

<huawei>reset ospf process

OSPF Area:用于标识一个OSPF的区域。
Cost:度量值或路由开销,如掩码相同,协议优先级相同,则会看发送开销(即查看路由器出接口的带宽)。如有两个链路可访达目标路由,则会走最小开销路线。如一个接口为100M,一个接口为10M,则会优先走100M,计算方式为100M/链路速率。100M/100M时,cost=1。当100M/10M时,cost=10.但cost值需计算这两条的是整个达到网络所有的cost值总和。而不是看单一出接口cost值。(当cost值小于1时取1)
2024-03-20T11:27:28.png
有时需人为修改某台路由器出接口的cost值,则需要在启动ospf 的路由器出接口中配置

[Huawei]int g0/0/1       /*进入出接口
[Huawei-GigabitEthernet0/0/1]ospf cost 100    /*修改cost 值为100

2024-10-10T13:19:44.png

OSPF工作原理

OSPF的5种报文

2024-10-10T13:30:49.png
2024-10-10T13:53:54.png
Hello:周期性发送,用来发现和维护OSPF邻居关系。(每10S发送一个hello包维持邻居关系,如40S没有收到回应,则会判断此链路或路由器已失效,则会删除对此路由器的OSPF邻居关系)
2024-10-10T13:56:38.png
Database Description:
1)确认主从设备,双发会比较随机序列号。Router-ID大的一方为主设备,后续按照主设备序列号为传递依据进行,例如主设备序列号为100,主设备发送的包序列号为100,从设备回包序列号为100,主设备再发送101,从设备再回包101...
2)用于描述本地LSDB(链路状态数据库)的摘要信息,用户两台设备进行数据库同步。通过Database Description是LSA(链路状态通告)的描述,各路由器通过交换LSA来完善数据库。
Link State Request:用于向对方请求所需要的LSA。设备只有在OSPF邻居双发成功交换DD报文后才会向对方发送LSR报文。
Link State Update:用于向对方发送所需要的LSA。
Link State ACK:用于对接收的LSA进行确认。(确认邻接关系即state:full)
2024-10-10T13:36:59.png

OSPF的3张表

OSPF的工作过程分为3个大步骤,分别是形成邻居关系,形成邻接关系,计算路由。(邻居关系为发送hello包,邻接关系为收集完自己所需的LSA,两者是不同的概念)
OSPF将对应形成OSPF邻居表,LSDB表及OSPF路由表。
查看邻居表:display ospf peer
2024-10-10T13:26:25.png
查看LSDB表:display ospf lsdb
2024-10-10T13:26:43.png
查看OSPF路由表:display ospf routing
2024-10-10T13:26:57.png

OSPF配置

路由器需设置Router-ID及Area,将直连到路由器的网段全部宣告出去,宣告网段时掩码需使用反掩码。

OSPF邻接关系建立流程

1)发送Hello报文,当发送报文后,未得到对方回复是状态为Init,得到回复后状态为2-way.
2024-03-20T11:27:58.png

2)如下图所示,两台设备会发送空的DBD报文(即DD报文),里面带有Router-ID,然后进行比较Router-ID大小,Router-ID大的成为主设备(即master),小的为从设备,主设备会先发带有摘要信息的DBD报文,从设备则后发DBD报文,从而查看有哪些摘要信息。
2024-03-20T11:28:21.png

3)如下图所示,当收到DBD报文时,则向对方申请自己没有的LSA,此过程会发送LSR,对方接收到后会回复请求的LSA,此过程会发送LSU,当收到LSU后将LSA学习后完善自身LSDB表,添加LSA完成后则会向对方发送LSACK,然后接着请求下一个LSA。。直到双方LSDB相互同步为止。
2024-03-20T11:28:35.png

OSPF网络类型

2024-03-20T11:29:54.png
下图两种以不再使用,仅做认识即可。
2024-03-20T11:30:00.png

DR与BDR

MA即多路访问网络中,如每台路由器均向各路由器发送OSPF请求,则会消耗资源,所以为了优化MA网络中的邻接关系,OSPF指定三种OSPF路由器身份,DR(指定路由器),BDR(备用指定路由器),和DRouter。
只允许DR和BDR与其他OSPF路由建立邻接关系,DRouter之间不会建立毗邻OSPF邻接关系,双方关系停留在2-way。(即发送Hello报文后发现邻接路由器)
BDR会监控DR的状态,并在当前DR发生故障时接替其角色。(总的来说就是用DR来完成各路由器之间LSA的后续交换工作)
DRother向DR,BDR发送DD,LSA request或者LSA UPdate时目标地址是AllDRouter(224.0.0.6);DR,
BDR向DRother发送DD,LSA Request或者LSA Update时目标地址是AllSPFRouter(224.0.0.5);

DR与BDR选举方式

查看OSPF 接口优先级,优先级越大则为DR(优先级可设置),优先级第二大的为BDR。当DR相同时则查看Router-ID,Router-ID越大则为DR,Router-ID第二大的为BDR。
2024-03-20T11:30:32.png

OSPF域与单区域

如小规模网络可使用单区域OSPF。
2024-03-20T11:31:13.png

OSPF多区域

如大规模网络可使用OSPF的多区域划分,将大区域划分为多区域,由区域边界路由器进行区域内路由汇总,发送到各区域,减少每台路由器请求LSA的学习成本,从而提高各区域网络质量。(此做法中必须要有area0)
2024-03-20T11:31:26.png

OSPF多区域划分中各路由器角色

1)区域的分类:区域可以分为骨干区域与非骨干区域。骨干区域即Area 0,除Area 0以外其他区域都称为非骨干区域。
2)多区域互联原则:基于防止区域间环路的考虑,非骨干区域与非骨干区域不能直接相连,所有非骨干区域必须与骨干区域相连。

区域内路由器IR(Internal Router):非Area 0的路由器为区域内路由器。该类路由器的所有接口都属于同一个OSPF区域。
区域边界路由器ABR(Area Border Router):该类路由器的接口同时属于两个以上的区域,但至少有一个接口属于骨干区域。连接两个的区域路由器为边界路由器。
骨干路由器BR(Backbone Router):该类路由器至少有一个接口属于骨干区域。Area 0中的路由器均为骨干路由器。
自治系统边界路由器ASBR(AS Boundary Router):该类路由器与其他AS交换路由信息。只要一台OSPF路由器引入了外部路由的信息,它就成为ASBR。两个路由协议的边界路由器,如其他AS为RIP,那么将和本身的OSPF进行路由。
2024-03-20T11:31:40.png

OSPF基础配置命令

创建并运行OSPF进程

[Huawei]opsf X route-id X.X.X.X (ospf X为进程号,同一设备可运行多个不同的OSPF进程)

在OSPF视图下创建OSPF区域

[Huawei]area X

在OSPF区域视图下,宣告直连接口

[Huawei-ospf-0.0.0.0]network X.X.X.X 0.0.0.255(此处使用反掩码)

在接口视图下,配置OSPF接口开销值,在出接口配置。

[Huawei-GE1/0/0]ospf cost X(缺省情况下cost值为100M/接口速率)

OSPF带宽修改,将因为100M/接口速率小于1时将取值为1,无法识别端口大于100Mbit/s的接口速率,所以可将带宽设置为100000Mbit/s,此时就得到大于100Mbit/s的cost值。

[Huawei-ospf-1]bandwidth-reference X(X的取值范围为1-2147483628单位为Mbit/s,缺省情况下100Mbit/s)

在接口视图下,OSPF选举DR是设置优先级

[Huawei-GE0/0/0]ospf dr-priority X(X值为priority,priority越大越优先,取值范围为·0-255)

Responses