第350篇:跨厂商设备互联互通排错案例
关键词:跨厂商互联、OSPF、MPLS、LACP、BGP、兼容性
一、案例背景
某跨国企业收购了一家海外公司后,需要将两家的网络进行整合。企业原有网络全为华为设备,被收购方使用Cisco和Juniper设备。在互联互通过程中,多个层面出现了兼容性问题。
网络整合范围: - 华为侧:NE40E(PE)、CE6865(核心)、AR6140(出口) - Cisco侧:ASR9000(PE)、Nexus 9000(核心) - Juniper侧:PTX1000(核心)、MX204(出口)
故障现象: 1. OSPF邻居在华为NE40E和Cisco ASR9000之间无法建立 2. MPLS LDP会话在华为和Juniper之间建立后频繁断开 3. LACP Eth-Trunk在华为CE和Cisco Nexus之间状态异常 4. BGP eBGP会话在华为AR和Juniper MX之间建立但路由未学习
二、需求分析与方案设计
2.1 跨厂商互联常见问题
| 协议 | 常见问题 | 华为 | Cisco | Juniper |
|---|---|---|---|---|
| OSPF | MTU不匹配、认证差异、Option Bits | 默认MTU检测 | 默认不检测MTU | 默认不检测MTU |
| MPLS | Label分配方式、TTL处理方式 | Libera/Per-platform | Per-platform | Per-platform |
| LACP | System ID计算、超时时间 | 基于MAC | 基于优先级+MAC | 基于MAC |
| BGP | GR机制、MD5密钥协商、AS4字节 | 支持4字节AS | 支持4字节AS | 支持4字节AS |
| STP | BPDU格式、优先级计算 | 802.1w(RSTP) | PVST+(私有) | RSS-Bridge |
2.1.1 跨厂商默认参数对照表
| 协议参数 | 华为VRP | Cisco IOS/IOS-XR | Juniper Junos |
|---|---|---|---|
| OSPF Hello Interval | 10s (广播) | 10s | 10s |
| OSPF Dead Interval | 40s | 40s | 40s |
| OSPF MTU检测 | 默认开启(ipo-cpm) | 默认关闭 | 默认关闭 |
| OSPF Router Priority | 1 | 1 | 128 |
| BGP Keepalive | 30s | 60s | 30s |
| BGP Holdtimer | 90s | 180s | 90s |
| LDP Keepalive | 30s | 10s | 60s |
| LACP Timeout | 3s (slow) | 3s (slow) | 3s (slow) |
| STP Priority | 32768 | 32768 | 32768 |
| STP Hello Time | 2s | 2s | 2s |
| Interface MTU | 1500 | 1500 | 1500 |
| Jumbo Frame | 需手动配置 | 需手动配置 | 需手动配置 |
2.2 排错思路

2.3 跨厂商兼容性检查清单
| 检查项 | OSPF | MPLS | LACP | BGP |
|---|---|---|---|---|
| IP连通性 | ✓ | ✓ | ✓ | ✓ |
| MTU匹配 | ✓ | ✓ | - | - |
| 认证方式 | ✓ | - | - | ✓ |
| Timer匹配 | ✓ | ✓ | ✓ | ✓ |
| 版本一致 | ✓ | - | ✓ | ✓ |
| 系统ID/优先级 | - | - | ✓ | - |
| Hello/Kill Interval | ✓ | ✓ | ✓ | ✓ |
三、技术细节与实施过程
3.1 OSPF邻居无法建立
故障现象:华为NE40E与Cisco ASR9000的OSPF邻居始终停留在INIT状态。
# 华为侧OSPF状态
<NE40E> display ospf peer
OSPF Process 1 with Router ID 10.1.1.1
Neighbor:
Address State Pri DeadTimer RouterID Interface
10.0.0.2 Init 1 35 10.2.2.2 GE0/0/1
# Cisco侧OSPF状态
ASR9000# show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
10.1.1.1 1 INIT 00:00:33 10.0.0.1 Gi0/0/0
根因分析: 1. 抓包发现华为发送的OSPF Hello包中MTU字段为1500,Cisco侧接口MTU为9000(Jumbo Frame) 2. 华为OSPF默认启用MTU检测(ipo-cpm-enable),收到MTU不匹配的Hello包后不前进到2-Way状态
# 解决方案:在华为侧关闭OSPF MTU检测
<NE40E> system-view
[NE40E] ospf 1
[NE40E-ospf-1] area 0
[NE40E-ospf-1-area-0.0.0.0] interface GigabitEthernet 0/0/1
[NE40E-ospf-1-area-0.0.0.0-if-GigabitEthernet0/0/1] undo ipo-cpm-enable
[NE40E-ospf-1-area-0.0.0.0-if-GigabitEthernet0/0/1] quit
[NE40E-ospf-1-area-0.0.0.0] quit
[NE40E-ospf-1] quit
# 验证OSPF邻居
<NE40E> display ospf peer
Neighbor:
Address State Pri DeadTimer RouterID Interface
10.0.0.2 Full 1 35 10.2.2.2 GE0/0/1 <-- Full状态
3.2 MPLS LDP频繁断开
故障现象:华为NE40E与Juniper PTX1000的LDP会话建立后,每30分钟左右断开一次。
# 华为侧LDP状态
<NE40E> display mpls ldp peer
Peer Status:
Peer-Address State LDP-ID KeepAlive
10.0.1.2 Operative 0.0.0.0:0:0 Hold:8 Init:30
# LDP日志
*Mar 15 10:30:00 NE40E LDP: LDP session with 10.0.1.2 down, reason: Keepalive timeout
*Mar 15 10:30:05 NE40E LDP: LDP session with 10.0.1.2 up
根因:华为LDP默认KeepAlive为30秒,Juniper默认为60秒。华为在30秒后未收到Juniper的KeepAlive报文,判定对端Down。
# 方案1:在华为侧调整LDP KeepAlive匹配Juniper
[NE40E] mpls ldp
[NE40E-ldp] keepalive 60 # 匹配Juniper的60秒
[NE40E-ldp] hold 180 # Hold时间为KeepAlive的3倍
[NE40E-ldp] quit
# 方案2:在Juniper侧调整匹配华为
# set protocols mpls ldp interface all hello interval 10
# set protocols mpls ldp interface all hello hold-time 30
3.3 LACP Eth-Trunk异常
故障现象:华为CE6865与Cisco Nexus 9000之间的LACP Eth-Trunk只有1条成员链路Active。
# 华为侧Eth-Trunk状态
<CE6865> display eth-trunk 10
Eth-Trunk10 is up
Member: 100GE1/0/1 up LACP
Member: 100GE1/0/2 down LACP <-- 第二条链路Down
# Cisco侧Port-Channel状态
Nexus9000# show lacp summary
Port-channel: Po10
Age Sum Ports Protocol
01:23 0x00001 1 LACP
根因:华为LACP System ID使用MAC地址计算,Cisco使用优先级+MAC。当优先级不同时,LACP协商的Actor System ID不同,导致部分链路无法加入。
# 解决方案:统一LACP System Priority
# 华为侧
[CE6865] interface Eth-Trunk 10
[CE6865-Eth-Trunk10] lacp system-priority 32768
[CE6865-Eth-Trunk10] quit
# Cisco侧
Nexus9000# configure terminal
Nexus9000(config)# interface port-channel 10
Nexus9000(config-if)# lacp system-priority 32768
Nexus9000(config-if)# exit
3.4 BGP路由未学习
故障现象:华为AR6140与Juniper MX204的BGP eBGP会话Up,但华为侧没有学到Juniper发布的路由。
# 华为侧BGP状态
<AR6140> display bgp peer
IPv4 Session:
BGP peer is 203.0.113.1
GracefulRestart: Not configured
State: Established
Message statistics:
UpdRec: 1 UpdSent: 1
UpdPrefixRec: 0 <-- 前缀接收为0!
# Juniper侧BGP状态
MX204> show bgp summary
Peer AS InPkt OutPkt OutQ UPtime State InAct OutAct
203.0.113.254 65001 1234 567 0 01:23:45 Estab 5 0
根因:Juniper默认启用BGP Graceful Restart,华为侧未启用。Juniper在GR期间不发送路由更新,华为侧收不到路由。
# 华为侧启用BGP Graceful Restart
[AR6140] bgp 65001
[AR6140-bgp-65001] graceful-restart
[AR6140-bgp-65001] peer 203.0.113.1 graceful-restart
[AR6140-bgp-65001] quit
# 验证路由学习
<AR6140> display bgp routing-table peer 203.0.113.1
Network NextHop MED LocPrf Path/Ogn
*> 10.10.0.0/16 203.0.113.1 0 100 65002?i <-- 路由已学习
3.5 BGP MD5认证跨厂商兼容性
故障现象:华为与Cisco之间配置了BGP MD5认证,但会话反复在OpenSent和Established之间震荡。
# 华为侧日志
*Mar 15 11:00:00 AR6140 BGP: %BGP-5-ADJCHG: Peer 203.0.113.1 Down, TCP connection reset
*Mar 15 11:00:05 AR6140 BGP: %BGP-5-ADJCHG: Peer 203.0.113.1 Up
# 根因:华为使用TCP MD5 Signature (RFC 2385),
# Cisco IOS-XR支持TCP-AO (RFC 5925) 和 TCP MD5,
# 但默认可能优先尝试TCP-AO,导致协商失败
解决方案:
# 华为侧:确认使用TCP MD5
[AR6140] bgp 65001
[AR6140-bgp-65001] peer 203.0.113.1 tcp-md5-key Huawei@2024
# Cisco IOS-XR侧:显式配置TCP MD5(非TCP-AO)
RP/0/RP0/CPU0:ASR9K# configure terminal
ASR9K(config)# router bgp 65002
ASR9K(config-router)# neighbor 203.0.113.254 tcp-md5-signature key-string Huawei@2024
ASR9K(config-router)# ^Z
# 验证:两端BGP日志确认MD5协商成功
<AR6140> display bgp peer 203.0.113.1
TCP-MD5-KEY: Huawei@2024 <-- 确认MD5生效
3.6 STP跨厂商兼容性
故障现象:华为CE6865与Cisco Nexus 9000之间运行STP,但Cisco侧始终选举自己为根桥,导致流量绕行。
# 华为侧STP
<CE6865> display stp brief
MSTID Port Role STP State Protection
0 XGig1/0/1 Desi FORWARDING NONE
# Cisco侧STP
Nexus9000# show spanning-tree
Legend: ...
Root ID Priority 32768
Address xxxx.xxxx.xxxx
This bridge is the root <-- Cisco认为自己是根桥
根因:华为运行标准802.1w RSTP,Cisco Nexus默认运行PVST+(每VLAN生成树)。BPDU格式不同,导致根桥计算不一致。
解决方案:
# 方案1:统一使用MSTP(推荐)
# 华为侧
[CE6865] stp mode mstp
[CE6865] stp region-configuration
[CE6865-mstp-region] region-name DC-REGION
[CE6865-mstp-region] revision-level 1
[CE6865-mstp-region] instance 1 vlan 10-20
[CE6865-mstp-region] active region-configuration
[CE6865-mstp-region] quit
[CE6865] stp priority 0 # 华为作为根桥
# Cisco Nexus侧
Nexus9000# configure terminal
Nexus9000(config)# spanning-tree mode mst
Nexus9000(config)# spanning-tree mst configuration
Nexus9000(config-mst)# name DC-REGION
Nexus9000(config-mst)# revision 1
Nexus9000(config-mst)# instance 1 vlan 10-20
Nexus9000(config-mst)# exit
Nexus9000(config)# spanning-tree mst 1 priority 4096 # Cisco作为备用根桥
跨厂商STP兼容性对照:
| 特性 | 华为(RSTP/MSTP) | Cisco(PVST+/MST) | Juniper(RSTP/MST) |
|---|---|---|---|
| BPDU类型 | 802.1w | 0x2000(私有)/802.1w | 802.1w |
| 优先级步进 | 4096 | 4096 | 4096 |
| 默认优先级 | 32768 | 32768 | 32768 |
| Hello Time | 2s | 2s | 2s |
| Forward Delay | 15s | 15s | 15s |
| 兼容建议 | MSTP模式+统一Region | MSTP模式+统一Region | MSTP模式+统一Region |
四、实战配置/案例分析
4.1 跨厂商互联配置模板
# ========== 华为OSPF与Cisco互联 ==========
# 华为侧
[NE40E] ospf 1
[NE40E-ospf-1] area 0
[NE40E-ospf-1-area-0.0.0.0] interface GigabitEthernet 0/0/1
[NE40E-ospf-1-area-0.0.0.0-if-GigabitEthernet0/0/1] undo ipo-cpm-enable # 关闭MTU检测
[NE40E-ospf-1-area-0.0.0.0-if-GigabitEthernet0/0/1] timer spf 50 500 5000 # 调整SPF定时器
[NE40E-ospf-1-area-0.0.0.0-if-GigabitEthernet0/0/1] quit
# ========== 华为MPLS与Juniper互联 ==========
[NE40E] mpls ldp
[NE40E-ldp] keepalive 60 # 匹配对端KeepAlive
[NE40E-ldp] hold 180
[NE40E-ldp] router-id 10.1.1.1 # 显式指定Router ID
[NE40E-ldp] quit
# ========== 华为LACP与Cisco互联 ==========
[CE6865] interface Eth-Trunk 10
[CE6865-Eth-Trunk10] mode lacp-static
[CE6865-Eth-Trunk10] lacp system-priority 32768
[CE6865-Eth-Trunk10] lacp period fast # 快速LACP(可选)
[CE6865-Eth-Trunk10] quit
4.2 跨厂商兼容性测试报告
| 互联类型 | 测试项 | 结果 | 备注 |
|---|---|---|---|
| 华为↔Cisco OSPF | 邻居建立 | ✓ | 关闭MTU检测 |
| 华为↔Cisco OSPF | 路由学习 | ✓ | 正常 |
| 华为↔Juniper MPLS | LDP会话 | ✓ | 调整KeepAlive |
| 华为↔Juniper MPLS | Label分发 | ✓ | 正常 |
| 华为↔Cisco LACP | Eth-Trunk | ✓ | 统一System Priority |
| 华为↔Juniper BGP | 会话建立 | ✓ | 启用GR |
| 华为↔Juniper BGP | 路由学习 | ✓ | 正常 |
| 华为↔Cisco STP | 根桥选举 | ✓ | 统一MSTP+Region |
4.3 跨厂商排错标准流程

4.4 跨厂商互联预测试Checklist
| 序号 | 检查项 | OSPF | MPLS | LACP | BGP | STP |
|---|---|---|---|---|---|---|
| 1 | 接口物理状态 | ✓ | ✓ | ✓ | ✓ | ✓ |
| 2 | IP地址/子网 | ✓ | ✓ | - | ✓ | - |
| 3 | MTU匹配 | ✓ | ✓ | - | - | - |
| 4 | VLAN/Trunk配置 | - | - | ✓ | - | ✓ |
| 5 | 协议Area/AS | ✓ | - | - | ✓ | - |
| 6 | Hello/Dead Timer | ✓ | - | - | ✓ | - |
| 7 | KeepAlive/Hold | - | ✓ | ✓ | ✓ | - |
| 8 | 认证(密码/算法) | ✓ | - | - | ✓ | - |
| 9 | Priority匹配 | ✓ | - | ✓ | - | ✓ |
| 10 | GR机制 | - | - | - | ✓ | - |
| 11 | 抓包验证协议交互 | ✓ | ✓ | ✓ | ✓ | ✓ |
四、实战工具与自动化排错
4.5 Python多厂商设备配置比对工具
跨厂商排错的核心是快速发现参数差异。下面提供一套基于Netmiko的配置比对工具,支持华为/Cisco/Juniper三厂商。
#!/usr/bin/env python3
"""
跨厂商设备配置比对工具 - MultiVendor Config Comparator
支持华为VRP / Cisco IOS-XR / Juniper Junos 关键参数提取与差异报告生成
"""
from netmiko import ConnectHandler
import json
import sys
from datetime import datetime
DEVICE_TYPES = {
'huawei': 'huawei_vrpv8',
'cisco': 'cisco_xr',
'juniper': 'juniper_junos'
}
# 各厂商OSPF关键参数提取命令映射
OSPF_COMMANDS = {
'huawei': [
('display ospf interface', 'ospf_interfaces'),
('display ospf peer', 'ospf_peers'),
('display current-configuration configuration ospf', 'ospf_config'),
],
'cisco': [
('show ip ospf interface', 'ospf_interfaces'),
('show ip ospf neighbor', 'ospf_neighbors'),
('show running-config router ospf', 'ospf_config'),
],
'juniper': [
('show ospf interface', 'ospf_interfaces'),
('show ospf neighbor', 'ospf_neighbors'),
('show configuration protocols ospf', 'ospf_config'),
],
}
# 各厂商BGP关键参数提取命令映射
BGP_COMMANDS = {
'huawei': [
('display bgp peer', 'bgp_peers'),
('display current-configuration configuration bgp', 'bgp_config'),
],
'cisco': [
('show bgp summary', 'bgp_peers'),
('show running-config router bgp', 'bgp_config'),
],
'juniper': [
('show bgp summary', 'bgp_peers'),
('show configuration protocols bgp', 'bgp_config'),
],
}
class DeviceConnector:
"""多厂商设备连接封装"""
def __init__(self, host, vendor, username='admin', password=''):
self.host = host
self.vendor = vendor
self.device = {
'device_type': DEVICE_TYPES[vendor],
'host': host,
'username': username,
'password': password,
'session_log': f'{host}_session.log'
}
def connect(self):
self.conn = ConnectHandler(**self.device)
return self.conn
def execute(self, command):
return self.conn.send_command(command, use_textfsm=False)
def extract_params(device_info, protocol='ospf'):
"""提取设备协议参数"""
host, vendor, username, password = device_info
connector = DeviceConnector(host, vendor, username, password)
connector.connect()
commands = OSPF_COMMANDS if protocol == 'ospf' else BGP_COMMANDS
vendor_commands = commands.get(vendor, [])
result = {'host': host, 'vendor': vendor, 'protocol': protocol,
'timestamp': datetime.now().isoformat()}
for cmd, key in vendor_commands:
try:
output = connector.execute(cmd)
result[key] = output
except Exception as e:
result[key] = f'ERROR: {e}'
return result
def compare_ospf_params(device_a, device_b):
"""比对两台设备的OSPF参数差异"""
differences = []
# MTU检测差异
if 'huawei' in [device_a['vendor'], device_b['vendor']]:
differences.append({
'param': 'OSPF MTU检测(ipo-cpm)',
'device_a': '默认开启' if device_a['vendor'] == 'huawei' else '默认关闭',
'device_b': '默认开启' if device_b['vendor'] == 'huawei' else '默认关闭',
'risk': 'HIGH' if device_a['vendor'] != device_b['vendor'] else 'LOW',
'recommendation': '华为侧关闭ipo-cpm-enable,或统一两端MTU'
})
# Router Priority差异
priorities = {'huawei': 1, 'cisco': 1, 'juniper': 128}
differences.append({
'param': 'OSPF Router Priority',
'device_a': f"{device_a['vendor']}: {priorities.get(device_a['vendor'], 1)}",
'device_b': f"{device_b['vendor']}: {priorities.get(device_b['vendor'], 1)}",
'risk': 'MEDIUM',
'recommendation': '如需指定DR/BDR,手动统一两端Priority'
})
return differences
def compare_bgp_params(device_a, device_b):
"""比对两台设备的BGP参数差异"""
differences = []
timers = {
'huawei': {'keepalive': '30s', 'holdtimer': '90s'},
'cisco': {'keepalive': '60s', 'holdtimer': '180s'},
'juniper': {'keepalive': '30s', 'holdtimer': '90s'}
}
for timer_name in ['keepalive', 'holdtimer']:
differences.append({
'param': f'BGP {timer_name}',
'device_a': f"{device_a['vendor']}: {timers[device_a['vendor']][timer_name]}",
'device_b': f"{device_b['vendor']}: {timers[device_b['vendor']][timer_name]}",
'risk': 'HIGH' if timers[device_a['vendor']][timer_name] != timers[device_b['vendor']][timer_name] else 'LOW',
'recommendation': '统一两端定时器或使用 negotiate-auto'
})
# GR差异
differences.append({
'param': 'BGP Graceful Restart',
'device_a': f"{device_a['vendor']}: 需手动配置",
'device_b': f"{device_b['vendor']}: 需手动配置(Juniper默认启用)",
'risk': 'MEDIUM',
'recommendation': '两端同时启用GR,Juniper默认启用需注意'
})
return differences
def generate_report(differences, output_file='diff_report.json'):
"""生成差异报告"""
report = {
'report_time': datetime.now().isoformat(),
'total_issues': len(differences),
'high_risk': sum(1 for d in differences if d['risk'] == 'HIGH'),
'medium_risk': sum(1 for d in differences if d['risk'] == 'MEDIUM'),
'low_risk': sum(1 for d in differences if d['risk'] == 'LOW'),
'differences': differences
}
with open(output_file, 'w', encoding='utf-8') as f:
json.dump(report, f, indent=2, ensure_ascii=False)
return report
# 使用示例:比对华为↔Cisco OSPF参数
if __name__ == '__main__':
dev_a = {'host': '10.0.0.1', 'vendor': 'huawei'}
dev_b = {'host': '10.0.0.2', 'vendor': 'cisco'}
diffs = compare_ospf_params(dev_a, dev_b)
diffs.extend(compare_bgp_params(dev_a, dev_b))
report = generate_report(diffs)
print(f"差异报告已生成: HIGH={report['high_risk']}, "
f"MEDIUM={report['medium_risk']}, LOW={report['low_risk']}")
4.6 多厂商OSPF邻居故障排查流程图
当跨厂商OSPF邻居无法建立时,按以下流程图系统化排查:

4.7 BGP MD5认证跨厂商兼容性详解
BGP MD5认证在跨厂商场景中最容易出现兼容性问题。以下是各厂商实现差异的完整对照:
| 维度 | 华为VRP | Cisco IOS-XR | Cisco IOS (NX-OS) | Juniper Junos | H3C Comware |
|---|---|---|---|---|---|
| 标准支持 | RFC 2385 TCP-MD5 | RFC 2385 + RFC 5925(TCP-AO) | RFC 2385 | RFC 2385 | RFC 2385 |
| TCP-AO支持 | 部分版本支持 | 默认支持 | 不支持 | 不支持 | 不支持 |
| 密钥长度 | 8-127字符 | 8-127字符 | 8-127字符 | 8-127字符 | 4-127字符 |
| 密钥变更方式 | 实时生效 | 需要reload BGP会话 | 实时生效 | 需要clear session | 实时生效 |
| 配置关键字 | tcp-md5-key |
tcp-md5-signature |
md5-string |
authentication-key |
tcp-md5-key |
| 多密钥支持 | 不支持 | 支持(key-id) | 不支持 | 不支持 | 不支持 |
常见跨厂商BGP MD5故障及解决:
# 场景1:华为↔Cisco IOS-XR
# 问题:Cisco IOS-XR默认偏好TCP-AO而非TCP-MD5,导致协商失败
# 解决:在Cisco侧显式指定使用TCP-MD5
# Cisco IOS-XR配置
RP/0/RP0/CPU0:ASR9K# configure terminal
ASR9K(config)# router bgp 65002
ASR9K(config-router)# neighbor 203.0.113.254
ASR9K(config-router-subif)# tcp-md5-signature key-string MySecureKey123
# 关键:确保不使用tcp-auth-key(TCP-AO专用)
ASR9K(config-router-subif)# exit
# 华为配置
[Huawei] bgp 65001
[Huawei-bgp-65001] peer 203.0.113.1 tcp-md5-key MySecureKey123
# 场景2:密钥变更时的会话保持
# 问题:修改MD5密钥时BGP会话中断
# 解决:先添加新密钥,再删除旧密钥(部分设备支持)
# 华为侧:直接修改,会话会短暂中断后自动恢复
[Huawei] bgp 65001
[Huawei-bgp-65001] peer 203.0.113.1 tcp-md5-key NewSecureKey456
# 建议操作顺序:
# 1. 先在两端都配置新密钥
# 2. 手动重启一端BGP会话(clear bgp peer x.x.x.x)
# 3. 确认会话Up后再确认
4.8 跨厂商H3C设备互联补充
H3C Comware与华为VRP在命令行上相似,但协议实现仍有差异:
| 差异项 | 华为VRP | H3C Comware | 兼容建议 |
|---|---|---|---|
| OSPF MTU检测 | ipo-cpm-enable |
ospf mtu-enable |
命令不同但行为一致 |
| Eth-Trunk模式 | mode lacp-static |
mode dynamic |
H3C使用dynamic表示LACP |
| VRRP优先级 | vrrp vrid 1 priority 100 |
vrrp vrid 1 virtual-ip x.x.x.x priority 100 |
H3C必须在vrrp下配置虚拟IP |
| 路由策略 | route-policy |
route-policy |
语法基本一致 |
| ACL编号 | 基本ACL: 2000-2999 | 基本ACL: 2000-2999 | 一致 |
五、经验总结
| 序号 | 经验类别 | 经验内容 | 适用场景 |
|---|---|---|---|
| 1 | MTU匹配 | 跨厂商OSPF互联必须注意MTU检测的差异 | OSPF互联 |
| 2 | Timer匹配 | LDP/BGP/STP的定时器必须匹配对端 | 协议互联 |
| 3 | LACP兼容 | LACP System ID计算方式因厂商而异,必须统一优先级 | Eth-Trunk |
| 4 | GR机制 | BGP GR必须在两端同时启用 | BGP互联 |
| 5 | 抓包分析 | 跨厂商排错必须使用抓包分析协议交互 | 故障排查 |
| 6 | 参数文档 | 建立跨厂商参数对照表,减少排错时间 | 文档管理 |
| 7 | 预测试 | 跨厂商互联前必须在实验室预测试 | 变更管理 |
| 8 | 默认值差异 | 不同厂商的默认参数差异很大,不能假设一致 | 协议配置 |
| 9 | 认证兼容 | 跨厂商认证的算法和密钥格式必须兼容 | 安全互联 |
| 10 | 版本差异 | 不同版本的协议实现可能有差异,需注意版本兼容性 | 版本管理 |
思考
- 跨厂商OSPF互联时,除了MTU检测,还有哪些参数差异可能导致邻居无法建立?
- 如果需要在华为、Cisco、Juniper三厂商设备间运行MPLS TE,需要注意哪些兼容性问题?
- 跨厂商网络整合项目中,是否有工具可以自动检测配置兼容性?
下篇预告:第351篇:网络割接回滚方案与应急演练