先确认物理层和链路状态:光纤收发器、SFP模块、接口速率与双工是否匹配,接口是否有CRC错误或丢包。使用命令查看接口状态(例如:show interfaces / ethtool / ifconfig),并查看交换机/路由器日志。
如果物理正常,检查与对端的BGP会话是否建立。使用类似show ip bgp neighbors或vtysh里的show bgp neighbor查看状态、保持时间和错误。检查ACL、防火墙或防DDoS策略是否拦截TCP 179或相关心跳包。
常用命令:ping、traceroute、mtr(带一定次数与报告模式)、tcpdump(抓BGP握手包)。快速修复示例:更换SFP或光纤、调整接口速率、放开ACL对179端口的限制、对等端重启BGP进程或clear ip bgp <neighbor>。
使用traceroute和mtr对比延时与丢包,确认出口到对端的首跳与中间跳是否经过预期CN2节点。若运营商提供的CN2专线有标签或特定next-hop,可用BGP路由表比对看本地选择了哪个路径(show ip route & show bgp)。
常见配置问题包括:错误的BGP本地优先级(local-preference)、错误的AS路径预置、缺失或错误的community标记、next-hop未设置为对端指定的地址,或对端未接收本地路由。
调整策略:使用route-map修改local-preference或设置community传达优先级;确保对端接收到正确的next-hop(若必要用next-hop-self);在变更后执行clear ip bgp <neighbor> soft in/out以避免长时间掉线对业务影响。
常见错误包含:错误的BGP邻居IP或AS号、路由过滤器写反(把允许写成deny)、prefix-list或route-map顺序错误、忘记了next-hop-self或不正确的aggregate配置、MTU不一致造成的分片问题。
对照配置文件逐项核对:核对neighbor与remote-as、检查prefix-list与route-map的方向(in/out)和顺序、检查aggregate和summary是否覆盖了可达子网、用show ip bgp <prefix>看当前路径属性。
示例1:若发现BGP不接收某前缀,检查是否被prefix-list拒绝,修复为permit并执行clear bgp soft-reconfig;示例2:MTU问题导致TCP慢或TLS握手失败,排查方法为ping -M do -s <size>,若失败,调整接口或隧道MTU并重启相关服务。
查看BGP邻居日志以确认是否有keepalive或hold timer异常;使用show bgp flap-statistics或路由震荡监控工具确认哪些前缀频繁更新。比对AS_PATH、MED、community变化找出来源。
可能原因:对端路由策略频繁改变、上游多路径切换、链路不稳定或路由反射器(RR)配置不当。降低抖动可通过增加BGP抖动缓冲(route flap dampening)、调整keepalive/hold time(慎重)或优化路由策略避免无谓的撤销和重新通告。
启用dampening并设置合理的参数;修复错误的route-map导致的频繁更新;在策略允许的情况下稳定local-preference以减少路径切换;与对端或运营商沟通同步社区策略以消除策略冲突。
先用分段测试定位问题:从源到出口、骨干到对端PoP、对端到最终目的地分别做mtr/iperf/psping测试,找出哪一段出现高延时或丢包。结合路由表查看是否存在路径回环或不对称路由。
常见问题包括:队列拥塞(需查看接口丢包与队列长度)、MTU/分片影响、TCP窗口/缓冲设置过小以及QoS策略不当。解决方向为启用适当的QoS避免丢包、调整TCP参数(如window scaling)、修正MTU并使用PMTUD,必要时通过运营商申请带宽或更优CN2出口。
实施变更前在测试环境复现;变更后持续监控(使用rrd/Prometheus/Grafana或运营商提供的监控数据);记录配置快照并与运营商保持沟通。对业务敏感路径建议建立备份链路并配置静态优先路由或BGP策略进行流量分流。