用BGP协议接管所有运营商出口,通过调整Local Preference、AS Path、MED等选路属性,让流量自动走最优路径,而不是靠静态路由硬指。这套方案不挑设备品牌,华为、华三、思科均支持,关键是你得懂选路逻辑,而不是只会敲命令。
为什么企业多线路离不开BGP选路
企业同时接入电信、联通、移动三条线路时,默认情况下出口流量会全部挤在一条链路上,你可能会想”加个负载均衡不就行了”,但实际效果往往是一边堵死、一边闲置,原因很简单:传统静态路由只能指定”下一跳去哪”,它不知道哪条线路延迟低、哪条线路丢包少。
业内专家指出,90%以上的多线路网络故障不是带宽不够,而是选路策略错误,BGP之所以厉害,在于它把选路变成了可量化的决策过程,每一条路由都带着一堆属性,比如本地优先级、AS路径长度、MED值,网络设备按照固定的顺序逐条比较,最终选出唯一的”赢家”。
多线路BGP路由选路方案对比
动手配置之前,先搞清楚两条技术路线。
静态路由加NQA联动:便宜但不够聪明
这种方案适合预算有限的小型企业,核心思路是配置默认路由指向主线路,再用NQA(网络质量分析)探测对端IP,探测失败自动切换备用线路,配置很简单,两三条命令就能搞定,但毛病也很明显:它只能判断线路通不通,判断不了线路快不快,哪怕主线路延迟飙到200毫秒,只要没断,流量就死活不走备用线路。
全动态BGP方案:多线路BGP路由选路的正解
所有线路都跑BGP,相当于给网络装了一个智能导航系统,每条运营商线路都有自己独立的AS号,你的路由器通过EBGP同时接收三家运营商的完整路由表,然后按照策略决定哪些流量走哪条出口。三大运营商的国际路由延迟数据表明,动态BGP选路比静态切换平均快3-5秒响应网络故障,这个方案需要你拥有自己的AS号和IP地址段,因此比较适合中大型企业或互联网公司。
企业网络BGP配置步骤详解
下面按实际配置顺序展开,以双线路接入(电信+联通)场景为例。
第一步:规划AS号和IP地址
向APNIC或CNNIC申请公网AS号,例如AS63210,从运营商处获得互连IP,比如电信侧为100.64.0.1/30,本地为100.64.0.2/30;联通侧为100.64.0.5/30,本地为100.64.0.6/30,同时准备一个公网IP段用于对外发布,比如203.0.113.0/24。
第二步:建立EBGP邻居会话
以华为设备为例,进入BGP视图:配置两个邻居关系,分别连接电信和联通,与运营商对接时,记住一个重要细节,必须关闭EBGP的直连检查,因为运营商侧往往不跟你直连,中间隔着三层设备,同时要把本端的ttl值改大,华为是ttl 16。
第三步:发布自己的网段,接收运营商路由
在BGP视图里发布203.0.113.0/24这个网段,两家运营商都会学到你的路由,并且帮你转发到全网,接收方面,默认情况下BGP会接收所有路由,但完整的互联网路由表有90多万条,小设备根本扛不住,所以还得配路由策略只收默认路由加部分地区路由,或者干脆只收默认路由,让具体选路在本地用策略来控制。
BGP多线路由如何选最优路径:核心选路顺序
当路由器从多个邻居收到通向同一目标的路由时,它不会盲目选择,而是按照严格的顺序进行比较,这里教你把选路优先级背下来,是整个BGP多线路由优选的核心。
| 优先级 | 选路规则 | 实际作用场景 |
|---|---|---|
| 1 | 下一跳不可达直接丢弃 | 基础健康检查 |
| 2 | Local Preference(本地优先级) 高的优先 | 最常用,指定主备线路 |
| 3 | AS Path(AS路径) 短的优先 | 减少跨网跳数 |
| 4 | MED(多出口区分器) 小的优先 | 控制入方向流量 |
| 5 | EBGP优于IBGP | 避免内部环路 |
| 6 | IGP Metric(到下一跳的开销)小的优先 | 做精细化的链路选择 |
| 7 | Router-ID小的优先 | 兜底裁决 |
主备线路怎么配:修改Local Preference
假设电信线路为主、联通为备用,在入方向的路由策略中给电信邻居发来的路由打上Local Preference 200,联通打上100,数值大的优先,所以当电信线正常时,所有流量走电信,电信一旦出问题,BGP会话断开,联通的路由自动变成唯一可用路径,实现秒级切换,这种”BGP双线接入主备切换”的做法,在多数企业网络场景中都是标准操作。
负载均衡怎么配:AS Path前置追加
想让两条线路同时跑流量,核心思路不是让它们”平分”,而是按目的地细分,内网去访问电信IDC机房的流量走电信出口,去访问联通网络的流量走联通出口,做法就是在向电信发布你的网段时,给电信邻居的路由人为追加一条AS Path,让电信认为你的路径更长、优先级更低,外面的人就优先从联通进来,同理,发给联通的路由也做反向操作。
入方向流量控制:修改MED值
很多时候你控制不了别人的路由策略,但你能控制自己发出去的BGP属性,向不同的运营商发布路由时,携带不同的MED值,对方路由器收到后会优先选择MED小的路径。配置命令为:在发布路由时使用route-policy设置MED值,发给电信设20,发给联通设30,电信方向的流量就会明显增多。
常见故障与排查思路
BGP配置完成后不是万事大吉,下面几个故障经常让人头疼。
BGP邻居反复震荡
现象:display bgp peer显示状态在Established和Connect之间来回跳动,排查方法:检查互连IP的物理连通性,忽略一个重点问题就是MTU不一致。多数情况下这是环路接口或路由器的MTU值不匹配导致,将两端接口的MTU统一设置为1500即可解决。
路由学到但是不通
这种情况十有八九是下一跳不可达,BGP有一条规则:从EBGP学到的路由,默认不会将下一跳改为自己,而是保留原IP,当路由器去查路由表时发现该下一跳没有直连路由,于是丢弃,解决办法是在对端邻居视图中配置
next-hop-local,让它把发给你的路由下一跳改为自身接口IP。
路由切换后业务无响应
多发生在主备切换后,BGP路由已经正常切换,但业务的TCP连接仍然处于旧状态,这是NAT或会话表没有老化导致的,需要在出口设备开启状态化主备切换功能,同时调低会话超时时间到300秒以下,确保旧连接快速释放。
把BGP选路规则吃透,多线路网络就不再是”接上就行”的粗放状态,从Local Preference控制出方向选路,到MED控制入方向引流,改几个属性值就能让流量按照你的意图灵活走线,关键是,先想清楚你的目标是主备高可用,还是负载分担,再动手调策略,方向对了,命令只是水到渠成的事。
企业网络BGP配置常见问题解答
没有自己的AS号,可以配置多线路BGP吗?
可以,向运营商申请使用公有AS号,比如电信归属AS4134,联通归属AS9929,你可以用这段AS号与它们建EBGP邻居,这种方式叫静态BGP或半动态BGP,缺点是运营商侧有严格的路由条数限制,通常只允许你发布自己的IP段,接收路由也限制条数,好处是不用申请AS和IP资源就能体验BGP动态切换。
BGP多线路会不会导致路由震荡影响业务?
正常情况下不会,因为BGP有各种抑制和延迟机制,比如路由聚合、软重置(soft-reconfiguration)、最大前缀限制等,配置时注意开启`bgp suppress-duplicate`和`route-limit`,同时为关键路由设置聚合网段,把明细路由的抖动隔离在边缘,行业共识认为,只要配置合理,BGP的稳定性远超依赖脚本检测的静态切换方案。
内网还有多条专线,能跟BGP出口联动吗?
能,但需要额外引入策略路由(PBR) 做配合,思路是:BGP负责互联网出口选路,专线流量通过策略路由按源IP或目的IP匹配,强制走内部专线接口,两条体系互不干扰,具体命令是在流量入接口应用策略,匹配内网网段后set出接口为专线口,优先级高于BGP查表,这样做的好处是互联网流量和内部流量完全隔离,排障时也更清爽。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/643576.html





