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

IS-IS 和 OSPF 报文对比

1. 协议基础对比

特性 IS-IS OSPF
协议标准 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在大型网络中收敛更快

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

相关推荐
腾渊信息科技公司14 小时前
工业数据运维痛点根治方案:基于AI Agent的产线自动化台账系统落地
运维·人工智能·自动化·个人开发·ai编程
Dxy123931021615 小时前
Proxy Protocol v2 详解
运维
踏月的造梦星球15 小时前
DMDPC 学习:架构、部署、运维与调优
运维·数据库·学习·架构
潘正翔15 小时前
docker核心概念
linux·运维·服务器·docker·容器·centos·运维开发
renhongxia116 小时前
世界模型,是“空中楼阁”还是AGI的“最后一块拼图”?
运维·服务器·数据库·人工智能·算法·agi
Dovis(誓平步青云)17 小时前
远程办公软件文件传输实测:6 款工具的速度、稳定性和办公体验对比
linux·运维·服务器·后端·生成对抗网络
CHANG_THE_WORLD18 小时前
TCP 三次握手彻底解析:SYN、ACK、SEQ、确认号与状态迁移
网络·网络协议·tcp/ip
csdn_aspnet18 小时前
GitHub Actions自动化运维实战,用CI/CD流水线实现测试、部署、安全扫描一体化
运维·安全·ci/cd·自动化·github
DLYSB_19 小时前
基于 HTTP API 与 Modbus 协议的多源监控声光语音联动告警系统设计与实现
网络·网络协议·http·报警灯
Inhand陈工19 小时前
数据中心UPS无功补偿与智能化监控方案:基于IG502的Modbus RTU转IEC61850实战
运维·人工智能·物联网·信息与通信