当前位置: 首页 > news >正文

OSPF单区域配置实验

1.OSPF简介:

OSPF(Open Shortest Path First)即开放式最短路径优先协议,是 IETF 组织开发的基于链路状态的内部网关协议(IGP) ,用于在单一自治系统(AS)内进行路由决策。以下从多方面详细介绍:

1.1基本概念:

  • 链路状态协议:把网络中的链路(可看作路由器接口)及接口与相邻路由器关系等状态信息收集起来,形成链路状态数据库(LSDB) 。每个路由器依据 LSDB,使用最短路径优先(SPF)算法(即迪杰斯特拉算法 )计算到达各网络的最短路径,构建路由表。
  • 自治系统(AS)与区域:AS 是由同一技术管理机构管理、使用统一路由策略的网络集合。OSPF 网络可由单个区域或多个区域组成。区域 0 是骨干区域,用于在非骨干区域间传递区域间路由信息。单区域 OSPF 网络中,各路由器维护描述整个 AS 拓扑的数据库;多区域网络里,路由器维护自身所在区域拓扑数据库,同时保留其他区域汇总拓扑。

1.2运行过程:

  1. 邻居发现:路由器通过发送 Hello 分组发现并建立与邻居路由器的邻接关系。Hello 分组周期性发送,包含路由器自身相关信息及对邻居的期望信息。若收到邻居回应的 Hello 分组且各项参数匹配,就建立起双向通信。
  2. 链路状态信息交换
    • 数据库描述(DBD)分组:路由器首次连入网络或从故障恢复后,通过 Hello 分组建立双向通信,接收邻居反馈的 DBD 分组,其包含链路状态数据库中条目的概要。
    • 链路状态请求(LSR)分组:收到 DBD 分组后,若路由器发现自身链路状态数据库缺少某些条目或条目过期,就发送 LSR 分组,向邻居请求特定链路状态信息的详细内容。
    • 链路状态更新(LSU)分组:用来应答 LSR 分组,将请求的链路状态信息发送给对方;网络运行中链路状态变化时,也用 LSU 分组以洪泛方式向全网更新链路状态。
    • 链路状态确认(LSAck)分组:接收方收到 LSU 分组后,发送 LSAck 分组进行确认,确保链路状态更新的可靠传输。
  3. 路由计算:路由器收集到完整链路状态信息,构建好 LSDB 后,运用 SPF 算法计算到达各网络的最短路径,生成路由表。

1.3度量值:

OSPF 使用 “开销(cost)” 作为路由度量值,计算公式为:接口 cost = 参考带宽 / 接口带宽 。默认参考带宽是 100M ,比如 100M 带宽接口 cost 值为 1 ,10M 带宽接口 cost 值为 10 。cost 值越小,路径越优。可通过 bandwidth - reference 命令修改参考带宽,但建议全网路由器统一配置,以免计算不准确。

1.4分组类型:

  • Hello 分组:用于发现、建立和维护邻居关系,周期性发送,包含路由器的 Router ID、掩码、Hello 间隔、Dead 间隔等参数。
  • 数据库描述(DBD)分组:在邻居建立初期,用于交换链路状态数据库的摘要信息,帮助路由器了解邻居数据库概况。
  • 链路状态请求(LSR)分组:向邻居请求特定链路状态信息的详细内容。
  • 链路状态更新(LSU)分组:携带完整链路状态通告(LSA)信息,用于更新链路状态数据库。
  • 链路状态确认(LSAck)分组:对收到的 LSU 分组进行确认,确保更新信息可靠传输。

1.5优点:

  • 适应大规模网络:对路由跳数无限制,支持广泛网络规模,在组播网络中能支持数十台路由器协同工作。
  • 触发式更新:收敛完成后,以触发方式发送拓扑变化信息,减少网络带宽占用,且组播发送对其他设备干扰小。
  • 收敛速度快:网络拓扑变化时,能快速发送报文扩散新拓扑信息,且使用周期短的 Hello 报文维护邻居状态。
  • 选路合理:以开销为度量值,考虑链路带宽因素,带宽越高开销越小,使选路更合理。
  • 避免路由环路:基于最短路径算法,根据链路状态生成路径,理论上可避免路由环路。

1.6缺点:

  • 配置复杂:需对网络细致规划,对网络分析员技术水平要求高,需深入理解协议才能完成配置和日常维护。
  • 负载分担能力有限:在同一区域内,路由协议倾向通过优先级最高接口转发数据,优先级低的接口难以参与负载分担。

2.具体配置:

实验拓扑及IP分配:

2.1RA配置:

2.1.1修改主机名:

Router>enable 
Router#configure terminal 
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#hostname RA
RA(config)#

 2.1.2配置环回:

RA(config)#interface loopback 0

RA(config-if)#
%LINK-5-CHANGED: Interface Loopback0, changed state to up

%LINEPROTO-5-UPDOWN: Line protocol on Interface Loopback0, changed state to up

RA(config-if)#ip address 20.1.1.1 255.0.0.0
RA(config-if)#no shutdown 
RA(config-if)#exit

2.1.3配置接口:

RA(config)#int g0/0
RA(config-if)#ip address 192.168.20.1 255.255.255.0
RA(config-if)#no shutdown 

RA(config-if)#
%LINK-5-CHANGED: Interface GigabitEthernet0/0, changed state to up

RA(config-if)#exit

RA(config)#interface s0/0/1
RA(config-if)#clock rate 128000 # 设置时钟频率为128KHz
RA(config-if)#bandwidth 128 # 设置带宽为128Kbps
RA(config-if)#ip address 192.168.10.1 255.255.255.0
RA(config-if)#no shutdown 

2.1.4OSPF宣告:

RA(config)#router ospf 10 # 启动OSPF进程,进程号为10,进程号本地有效
RA(config-router)#router-id 20.1.1.1 # 配置路由器ID,一般使用环回接口地址,确保全网唯一
RA(config-router)#network 192.168.10.0 0.0.0.255 area 0 # 宣告192.168.10.0/24网段,反掩码0.0.0.255,区域0
RA(config-router)#network 192.168.20.0 0.0.0.255 area 0
RA(config-router)#network 20.0.0.0 0.255.255.255 area 0
RA(config-router)#

2.1.5保存配置:

RA(config)#do wr
Building configuration...
[OK]
RA(config)#

2.1.6查看邻居列表:

2.1.7查看路由表:

2.1.8查看接口数据结构:

 

2.2RB配置:

2.2.1修改主机名:

Router>enable 
Router#configure terminal 
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#hostname RB
RB(config)#

 2.2.2配置环回:

RB(config)#interface loopback 0

RB(config-if)#
%LINK-5-CHANGED: Interface Loopback0, changed state to up

%LINEPROTO-5-UPDOWN: Line protocol on Interface Loopback0, changed state to up

RB(config-if)#ip address 10.1.1.1 255.0.0.0
RB(config-if)#exit
RB(config)#

2.2.3配置接口:

RB(config)#interface s0/0/1
RB(config-if)#ip address 192.168.10.2 255.255.255.0
RB(config-if)#no shutdown 

RB(config-if)#
%LINK-5-CHANGED: Interface Serial0/0/1, changed state to up

RB(config-if)#
%LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/0/1, changed state to up

RB(config-if)#

2.2.4OSPF宣告:

RB(config)#router ospf 10
RB(config-router)#router-id 10.1.1.1
RB(config-router)#network 192.168.10.0 0.0.0.255 area 0
RB(config-router)#network 10.0.0.0 0.255.255.255 area 0
RB(config-router)#exit

2.2.5保存配置:

RB(config)#do wr
Building configuration...
[OK]

2.3RC配置:

2.3.1修改主机名:

Router#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#hostname RC
RC(config)#

2.3.2配置环回:

RC(config)#interface loopback 0

RC(config-if)#
%LINK-5-CHANGED: Interface Loopback0, changed state to up

%LINEPROTO-5-UPDOWN: Line protocol on Interface Loopback0, changed state to up

RC(config-if)#ip address 30.1.1.1 255.0.0.0
RC(config-if)#exit
RC(config)#

2.3.3配置接口:

RC(config)#int g0/0
RC(config-if)#ip address 192.168.20.2 255.255.255.0
RC(config-if)#no shutdown 

RC(config-if)#
%LINK-5-CHANGED: Interface GigabitEthernet0/0, changed state to up

%LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/0, changed state to up

RC(config-if)#

2.3.4OSPF宣告:

RC(config)#router ospf 10
RC(config-router)#router-id 30.1.1.1
RC(config-router)#network 192.168.20.0 0.0.0.255 area 0
RC(config-router)#network 30.0.0.0 0.255.255.255 area 0
RC(config-router)#

2.3.5保存配置:

RC(config-router)#exit
RC(config)#do wr
Building configuration...
[OK]

3.测试:

3.1RB访问RA和RC:

3.2RA访问RB和RC:

 

3.3RC访问RA和RC:

 

相关文章:

  • 软件测试之单元测试详解
  • [LVGL] 使用lvgl自带的链表函数
  • CSV文件中的中文乱码--UTF-8 with BOM
  • DeepSeek 与开源:肥沃土壤孕育 AI 硕果
  • react/vue中前端多图片展示页面优化图片加载速度的五种方案
  • 高德地图 JS-SDK 实现教程
  • LFM调制信号分类与检测识别
  • electron-builder参数详解
  • 医用多功能压力检测仪,精密医疗的守护者
  • 04 GE - 钳制属性,等级
  • 面向MoE和推理模型时代:阿里云大数据AI产品升级发布
  • k8s中缩放pod规格
  • 微信小程序-下拉滚动加载数据
  • (2025亲测可用)Chatbox多端一键配置Claude/GPT/DeepSeek-网页端配置
  • XDocument和XmlDocument的区别及用法
  • Java 正则表达式综合实战:URL 匹配与源码解析
  • 详细解读TypeScript中 declare 关键字
  • 2k1000LA , 调试串口改成通信串口, uart.
  • 从三次方程到复平面:复数概念的奇妙演进(四)
  • 跨境贸易之常见的贸易术语
  • 国台办:80年前台湾重归中国版图,80年后不可能让台湾分裂出去
  • 图讯丨习近平出席中国-拉美和加勒比国家共同体论坛第四届部长级会议开幕式
  • 马上评丨摆摊要交芙蓉王?对吃拿卡要必须零容忍
  • 竞彩湃|德甲欧冠资格竞争白热化,伯恩茅斯主场迎恶战
  • 2025年4月份CPI环比由降转涨,核心CPI涨幅稳定
  • 图集|俄罗斯举行纪念苏联伟大卫国战争胜利80周年阅兵式