news 2026/5/26 10:25:44

IS-IS和OSPF路由协议对比以及两个协议双点双向引入

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
IS-IS和OSPF路由协议对比以及两个协议双点双向引入

IS-IS 和 OSPF 报文对比

1.协议基础对比

特性IS-ISOSPF
协议标准ISO 10589 (RFC 1142)RFC 2328
网络层直接运行在数据链路层(二层协议)运行在IP层(协议号89)
地址结构NSAP地址(变长,8-20字节)IP地址(32位)
区域划分基于路由器(一个接口属于一个区域)基于链路(一个接口属于一个区域)
层次结构Level-1、Level-2、Level-1-2骨干区域(Area0)、非骨干区域
度量值默认10,最大1024(宽度量)成本值,基于带宽计算

2.报文类型对比

IS-IS 报文类型
1. Hello PDU (IIH) - Level-1 LAN Hello - Level-2 LAN Hello - P2P Hello 2. Link State PDU (LSP) - Level-1 LSP - Level-2 LSP 3. Sequence Number PDU (SNP) - Complete SNP (CSNP) - 完整序列号PDU - Partial SNP (PSNP) - 部分序列号PDU
OSPF 报文类型
1. Hello Packet (Type 1) 2. Database Description (Type 2, DD) 3. Link State Request (Type 3, LSR) 4. Link State Update (Type 4, LSU) 5. Link State Acknowledgement (Type 5, LSACK)

3.邻居建立过程对比

IS-IS 邻居建立(P2P链路)
1. 初始状态:Down 2. 发送P2P Hello → Init状态 3. 收到邻居Hello(包含自己的System ID) → Up状态 4. 发送CSNP同步LSDB 5. 使用PSNP请求缺失的LSP 6. LSDB同步完成
OSPF 邻居建立(广播网络)
1. 初始状态:Down 2. 发送Hello → Init状态 3. 收到邻居Hello(包含自己的Router ID) → 2-Way状态 4. DR/BDR选举(如果需要) 5. ExStart状态:交换空的DD报文选举主从 6. Exchange状态:交换DD报文(LSDB摘要) 7. Loading状态:使用LSR/LSU请求详细LSA 8. Full状态:LSDB完全同步

4.交互数据包流程

IS-IS 邻居建立交互
R1 R2 |-- P2P Hello (R1 SysID) -->| |<-- P2P Hello (R1+R2 SysID)-| |-- CSNP (LSDB摘要) -------->| |<-- PSNP (请求缺失LSP) -----| |-- LSP (详细链路状态) ----->| |<-- PSNP (确认) ------------|
OSPF 邻居建立交互
R1 R2 |-- Hello (R1 RouterID) --->| |<-- Hello (R1+R2 RouterID)-| |-- DD (Seq=X, I=1, M=1) -->| ExStart |<-- DD (Seq=Y, I=1, M=1) --| |-- DD (Seq=Y, I=0, M=1) -->| Exchange |<-- DD (Seq=Y+1, I=0, M=0)-| |<-- LSR --------------------| Loading |-- LSU -------------------->| |<-- LSACK ------------------|

5.双点双向引入配置示例(华为设备)

拓扑说明
ISIS Area 49.0001 OSPF Area 0 --------------------------- ------------------- | | | | R1(ISIS L1/L2) ----------- R2(OSPF+ISIS) ----------- R3(OSPF ASBR) | | | | --------------------------- -------------------
基础配置
# R2 配置 sysname R2 # IS-IS 配置 isis 1 is-level level-1-2 network-entity 49.0001.0000.0000.0002.00 import-route ospf 1 # interface GigabitEthernet0/0/0 ip address 10.1.12.2 255.255.255.0 isis enable 1 # OSPF 配置 ospf 1 router-id 2.2.2.2 import-route isis 1 type 2 area 0.0.0.0 network 10.1.23.0 0.0.0.255 # interface GigabitEthernet0/0/1 ip address 10.1.23.2 255.255.255.0 ospf enable 1 area 0.0.0.0 # R3 配置 sysname R3 # OSPF 配置 ospf 1 router-id 3.3.3.3 import-route direct area 0.0.0.0 network 10.1.23.0 0.0.0.255 # interface GigabitEthernet0/0/1 ip address 10.1.23.3 255.255.255.0 ospf enable 1 area 0.0.0.0 # 环回口用于测试 interface LoopBack0 ip address 10.3.3.3 255.255.255.255 ospf enable 1 area 0.0.0.0
路由过滤配置(避免环路)
方案1:使用Route-Policy过滤
# R2 配置 - 只允许特定路由相互引入 # 定义ACL匹配需要引入的路由 acl number 2000 rule 5 permit source 10.3.3.3 0 rule 10 deny source any acl number 2001 rule 5 permit source 10.1.0.0 0.0.255.255 rule 10 deny source any # 定义Route-Policy route-policy ISIS->OSPF permit node 10 if-match acl 2000 apply tag 100 route-policy OSPF->ISIS permit node 10 if-match acl 2001 apply cost 50 # 应用Route-Policy isis 1 import-route ospf 1 route-policy OSPF->ISIS ospf 1 import-route isis 1 route-policy ISIS->OSPF
方案2:使用Tag过滤防止环路
# R2 配置 route-policy SET-TAG permit node 10 apply tag 100 route-policy DENY-TAG permit node 10 if-match tag 100 deny # OSPF引入ISIS时打Tag ospf 1 import-route isis 1 route-policy SET-TAG # ISIS引入OSPF时过滤带Tag的路由 isis 1 import-route ospf 1 route-policy DENY-TAG
方案3:使用Filter-Policy(推荐)
# R2 配置 - 基于路由前缀过滤 # 定义前缀列表 ip ip-prefix ISIS-TO-OSPF index 10 permit 10.1.0.0 16 greater-equal 24 less-equal 32 ip ip-prefix OSPF-TO-ISIS index 10 permit 10.3.0.0 16 greater-equal 24 less-equal 32 # 应用过滤策略 isis 1 filter-policy ip-prefix OSPF-TO-ISIS import filter-policy ip-prefix ISIS-TO-OSPF export ospf 1 filter-policy ip-prefix ISIS-TO-OSPF import filter-policy ip-prefix OSPF-TO-ISIS export
方案4:双点双向引入防环路完整配置
# R2 配置 ip ip-prefix FROM-ISIS index 10 permit 10.1.0.0 16 ip ip-prefix FROM-OSPF index 10 permit 10.3.0.0 16 route-policy ISIS->OSPF permit node 10 if-match ip-prefix FROM-ISIS apply tag 100 apply cost-type type-2 apply cost 100 route-policy OSPF->ISIS permit node 10 if-match ip-prefix FROM-OSPF apply cost 50 # 应用策略 isis 1 import-route ospf 1 route-policy OSPF->ISIS level-2 filter-policy ip-prefix FROM-OSPF export ospf 1 import-route isis 1 route-policy ISIS->OSPF type 2 filter-policy ip-prefix FROM-ISIS export

6.验证命令

# 检查邻居状态 display isis peer display ospf peer # 检查路由表 display ip routing-table display isis route display ospf routing # 检查引入的路由 display isis import-route display ospf import-route # 检查过滤策略 display ip ip-prefix display route-policy

7.注意事项

  1. 防环路措施

    • 使用Tag标记引入的路由

    • 设置不同的路由开销

    • 使用路由策略严格过滤

  2. 优选路径

    • 调整协议优先级:preference

    • 使用路由策略控制引入的开销

  3. 性能考虑

    • 避免大规模路由相互引入

    • 使用路由聚合减少路由表规模

  4. 收敛时间

    • OSPF收敛相对较快

    • IS-IS在大型网络中收敛更快

这种双点双向引入方案可以在保证网络互通的同时,通过精细的路由过滤策略避免环路和次优路径问题。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/26 4:08:42

NCM音频格式转换技术深度解析

在数字音乐存储格式多样化的背景下&#xff0c;网易云音乐采用的NCM格式为用户带来了特定的播放场景限制。本文将深入探讨如何通过专业工具实现音频格式的灵活转换。 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 技术原理与实现机…

作者头像 李华
网站建设 2026/5/25 20:21:32

付费墙终结者:5大免费阅读神器全面解析

付费墙终结者&#xff1a;5大免费阅读神器全面解析 【免费下载链接】bypass-paywalls-chrome-clean 项目地址: https://gitcode.com/GitHub_Trending/by/bypass-paywalls-chrome-clean 当你满怀期待地点开一篇深度报道&#xff0c;却被冰冷的付费墙无情拦截&#xff0c…

作者头像 李华
网站建设 2026/5/25 7:21:11

3步精通位置模拟功能:新手零失败实战指南

想要轻松实现Android设备的位置模拟功能&#xff1f;位置模拟工具能够帮助你在各类应用中实现位置信息展示。本文将为你提供一套简单易行的操作方案&#xff0c;确保位置功能稳定运行。 【免费下载链接】MockGPS Android application to fake GPS 项目地址: https://gitcode.…

作者头像 李华
网站建设 2026/5/26 9:16:17

联想笔记本性能优化工具终极指南:完整系统调优解决方案

联想笔记本性能优化工具终极指南&#xff1a;完整系统调优解决方案 【免费下载链接】LenovoLegionToolkit Lightweight Lenovo Vantage and Hotkeys replacement for Lenovo Legion laptops. 项目地址: https://gitcode.com/gh_mirrors/le/LenovoLegionToolkit 还在为联…

作者头像 李华
网站建设 2026/5/25 16:26:15

QGIS二次开发识别不出来要素问题

代码这样写是识别不出来的 QList<QgsMapToolIdentify::IdentifyResult> identifyRes identify(e->pos().x(), e->pos().y());这样写是可以的 QList<QgsMapToolIdentify::IdentifyResult> identifyRes identify(e->pos().x(), e->pos().y(), canvas…

作者头像 李华