1. BGP与MED属性基础解析
BGP(Border Gateway Protocol)作为互联网的核心路由协议,其MED(Multi-Exit Discriminator)属性在实际网络规划中扮演着关键角色。MED本质上是一个度量值,用于向外部邻居建议进入本AS(自治系统)时的优选路径——数值越小路径越优。与本地优先级(Local Preference)不同,MED的影响范围仅限于相邻AS之间,这种设计使得它成为跨运营商流量调度的理想工具。
关键区别:Local Preference用于控制出AS流量,而MED影响入AS流量。理解这点是正确配置的前提。
在华为ENSP模拟器中,MED的典型应用场景包括:
- 多宿主网络(Multi-homed)中引导入站流量
- 不同出口链路成本优化(如优先使用低延迟链路)
- 与商业伙伴的SLA(服务等级协议)实现
2. ENSP实验环境准备
2.1 软件获取与安装
华为ENSP最新稳定版(V100R003C00SPC100)可通过华为官网认证通道下载。安装时需特别注意:
- 关闭所有杀毒软件实时防护(易误报拦截虚拟网卡驱动)
- 以管理员身份运行安装程序
- 安装路径避免中文和空格(推荐D:\Huawei\eNSP)
实测发现Win11系统需额外操作:右键eNSP主程序→属性→兼容性→勾选"以管理员身份运行此程序"并设置Windows 8兼容模式。
2.2 基础拓扑搭建
构建包含3个AS的测试环境:
- AS 100(模拟运营商核心网络)
- 使用AR2220路由器×2
- AS 200(企业网络A)
- AR1220路由器×1
- S5700交换机×2
- AS 300(企业网络B)
- AR1220路由器×1
设备间链路配置建议:
bash复制# AR2220之间(AS100内部)
interface GigabitEthernet0/0/0
ip address 10.1.1.1 255.255.255.252
#
interface GigabitEthernet0/0/1
ip address 10.1.1.5 255.255.255.252
# AR2220与AR1220(跨AS互联)
interface GigabitEthernet0/0/2
ip address 192.168.100.1 255.255.255.252
3. MED属性深度配置
3.1 基础BGP邻居建立
以AS100和AS200的互联为例:
bash复制# AS100侧配置(AR2220)
bgp 100
peer 192.168.100.2 as-number 200
#
ipv4-family unicast
peer 192.168.100.2 enable
peer 192.168.100.2 route-policy EXPORT out
peer 192.168.100.2 route-policy IMPORT in
# AS200侧配置(AR1220)
bgp 200
peer 192.168.100.1 as-number 100
#
ipv4-family unicast
peer 192.168.100.1 enable
peer 192.168.100.1 route-policy MED_OUT out
3.2 MED策略实战
场景:AS200通过双线接入AS100(主备链路),需设置主链路MED值为50,备用链路为100:
- 创建路由策略:
bash复制route-policy MED_OUT permit node 10
if-match ip-prefix PRIMARY_ROUTES
apply cost 50
!
route-policy MED_OUT permit node 20
if-match ip-prefix SECONDARY_ROUTES
apply cost 100
- 定义前缀列表:
bash复制ip ip-prefix PRIMARY_ROUTES index 10 permit 172.16.1.0 24
ip ip-prefix SECONDARY_ROUTES index 10 permit 172.16.2.0 24
- 应用策略:
bash复制bgp 200
peer 192.168.100.1 route-policy MED_OUT out
3.3 验证与调试
关键检查命令:
bash复制display bgp routing-table # 查看BGP路由接收情况
display bgp peer 192.168.100.1 verbose # 检查邻居状态
display route-policy MED_OUT # 验证策略内容
流量路径测试技巧:
- 在AS100内使用tracert命令
- 通过修改MED值观察路径切换延迟(通常3-5个更新周期)
4. 典型问题排查手册
4.1 MED不生效常见原因
-
跨AS传递问题:
- 检查是否配置了
compare-different-as-med(默认不比较不同AS的MED值) - 解决方案:在BGP视图下执行
compare-different-as-med
- 检查是否配置了
-
策略应用错误:
- 使用
display current-configuration | include route-policy确认策略绑定 - 常见错误:策略方向(in/out)与预期相反
- 使用
-
路由过滤导致:
- 执行
display bgp routing-table peer 192.168.100.1 advertised查看实际发送的路由
- 执行
4.2 ENSP特有故障处理
-
AR路由器启动失败(Error 40):
- 卸载重装VirtualBox(要求版本5.2.44)
- 检查BIOS中VT-x虚拟化支持是否开启
-
设备频繁卡死:
- 调整虚拟机内存:AR1220建议≥512MB,AR2220建议≥1GB
- 关闭ENSP的自动更新检查
-
Win11兼容性问题:
- 注册表修改:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VBoxDrv\Start = 3
- 禁用驱动程序强制签名
5. 高级应用技巧
5.1 MED与Local Preference联动
通过路由策略实现智能选路:
bash复制route-policy LP_MED_SYNC permit node 10
if-match med 50 # 匹配低MED路由
apply local-preference 200 # 同时提高本地优先级
!
route-policy LP_MED_SYNC permit node 20
if-match med 100
apply local-preference 150
5.2 基于带宽的MED动态计算
在路由策略中使用脚本实现:
bash复制route-policy DYNAMIC_MED permit node 10
apply cost [ bandwidth_to_med [ interface-bandwidth GigabitEthernet0/0/0 ] ]
其中bandwidth_to_med为TCL脚本:
tcl复制proc bandwidth_to_med { bw } {
if { $bw >= 1000 } { return 10 }
if { $bw >= 100 } { return 50 }
return 100
}
5.3 多厂商互通注意事项
当与思科设备互联时:
- MED默认不传递,需显式配置
neighbor x.x.x.x send-med - 思科将MED作为"metric"显示
- 华为默认MED值为0,思科默认为空(需统一基准值)
6. 实验效果验证方法
6.1 流量路径可视化
在ENSP中使用报文跟踪功能:
- 右键链路→开启抓包
- 发送测试流量(ping/tracert)
- 对比不同MED值下的路径变化
6.2 路由策略调试技巧
使用条件调试命令:
bash复制debugging bgp route-policy MED_OUT
terminal debugging
6.3 性能影响评估
关键指标监控命令:
bash复制display bgp peer 192.168.100.1 statistics
display cpu-usage # 确保BGP进程不超过30%
通过Wireshark分析BGP Update报文可直观看到MED值传递:
code复制BGP UPDATE Message
- Withdrawn Routes Length: 0
- Total Path Attribute Length: 25
- ORIGIN: IGP
- AS_PATH: 200
- NEXT_HOP: 192.168.100.2
- MULTI_EXIT_DISC: 50 ← MED值在此显示
