多线BGP路由优选策略方向的设定,核心是两句话:入站路由用MED和AS-Path控制流量从哪条链路进来,出站路由用Local-Preference决定流量从哪条链路出去,方向弄反,流量绕路、延迟升高,带宽成本也会白涨。
实际配置中,不少团队把这两类属性混在一起调,自己做了策略,结果去程走联通、回程走电信,用户端一切正常,源站侧却看得到大量跨网流量,问题不在BGP本身,而在策略方向没对齐。
策略方向先分清“进”和“出”
BGP路由优选发生在两个平面上,一个是入站方向,管的是外部网络怎么把流量送进你的AS;另一个是出站方向,管的是你的AS怎么把流量送到外部,很多人混淆这两个概念,以为在路由器上写一条route-map就等于控制了全局,实际上一张route-map挂在IN方向还是OUT方向,效果完全不同。
入站方向是别人怎么看你
入站方向的策略,调整的是你对邻居宣告的路由属性,对方收到你的路由后,会根据MED、AS-Path、Local-Pref这些属性做决策,想引导电信流量走电信链路,就在对电信的邻居关系上,把宣告出去的MED值调低,或者把AS-Path变短,简单说,入站策略是“我把自己包装得更好,让别人优先选我”。
出站方向是你怎么看别人
出站方向的策略,调整的是你对邻居发来的路由赋予的属性,此时主要用Local-Preference,值越大越优先,比如你同时接入了联通和移动两条线路,希望默认出口走联通,就在联通邻居的入方向加一条策略,把Local-Pref设置为200,移动保持默认100,这个方向的操作对象是“别人宣告给我的路由”,而不是“我宣告给别人的路由”。
入站策略:MED和AS-Path的配合方式
入站方向的调整目标是让不同运营商流量各回各家,典型的多线场景下,电信流量从电信线路进,联通流量从联通线路进,移动流量从移动线路进,实现这个效果的主流做法是在每一条运营商线路上分别宣告不同属性。
操作路径参考
以思科设备为例,对接电信邻居时,核心配置思路如下:
- 定义前缀列表,匹配需要宣告的网段。
- 在route-map中设置
set metric 50,让电信看到的MED值更低。 - 在BGP邻居上使用
neighbor x.x.x.x route-map FROM-TELECOM OUT应用策略。
同理,联通邻居的MED可以设置为100,移动邻居设置为150,这样三家运营商收到的路由,MED值不同,优选顺序自然形成。
验证手段比较直接,登录运营商侧的路由器看BGP表,或者用“Looking Glass”工具查询你AS的宣告路径,如果发现电信路由到了联通AS,说明策略方向挂反了,或者MED值设置失效。
入站调整的两个常见坑
一是MED只对相邻AS有效,不会沿AS路径继续传递,如果你通过上游中转,MED传给上游后,上游再往外传时通常会重置,二是AS-Path prepend虽然好用,但操作对象是路径长度,加长路径会让所有运营商都疏远你,没法实现精细化分流。
出站策略:Local-Preference定主次
出站方向比入站简单,核心就是Local-Preference,这个属性只在本地AS内部有效,不影响外部选路,调整目标也很清楚:日常流量优先走质量好的线路,某条链路故障时自动切换。
配置示意
华为设备上的常用写法:
- 用ACL匹配电信方向的BGP路由。
- 在route-map里设置
apply local-preference 200。 - 应用到电信邻居的IN方向。
联通方向保持默认100,移动方向设置80,这样所有出站流量默认走电信,电信线路中断后自动切到联通,不会产生路由环路,出站策略的验证比入站直观,直接traceroute看首跳,或者display bgp routing-table里看Local-Pref列的数据。
这里有一个容易被忽略的点:如果做了BGP负载均衡,比如两条链路等带宽负载,Local-Preference就要设置成相同值,此时ECMP生效,但入站方向的MED也要匹配,否则流量进出不对称,TCP回包走错链路,连接直接超时。
多线BGP路由优选策略方向怎么定?场景化拆解
多线BGP和普通双线不同,接入的运营商不止一家,且各家路由表规模、互联带宽、穿透质量都有差异,设定策略方向之前,先明确业务流量的主要构成,再做属性规划。
地域差异下的策略调整方向
北方地区的用户结构里,联通占比通常偏高;南方地区电信占优,如果你的服务器在北方机房,用户也集中在华北,那么入站方向应该优先让联通流量直接进源站,电信流量允许走联通穿透,但延迟会增加,这里通常会把联通MED设最低,电信其次,移动最后,不少企业在做北京BGP机房推荐时,特别看重联通和电信的互通质量,原因就在这里。
反过来,如果业务面向华南,电信线路就是优先级最高的,此时电信MED设最低,联通走备用,这种思路也回答了“多线BGP怎么选路”这个核心问题:不是全都挤一条优质线路,而是让流量按运营商归属就近分流。
流量模型决定策略重心
如果业务以下载、视频为主,出站流量大,策略重心放在出站方向,保证自己访问外网资源快;如果是网站托管,用户访问进来为主,策略重心放在入站方向,行业共识认为,入站方向的精细度通常决定了用户体验的上限,因为回包路径错了,页面加载直接卡顿。
三线BGP和双线BGP,策略方向设定有什么区别
很多人在选择线路时纠结三线BGP和双线区别,实际上两者的核心差异就是策略方向的实现空间。
| 维度 | 双线BGP | 三线BGP |
|---|---|---|
| 线路组成 | 多为电信+联通 | 电信+联通+移动或教育网 |
| 入站策略 | MED两级区分,简单直接 | 需考虑移动的流量穿透特征 |
| 出站策略 | Local-Pref两档即可 | 移动线路常需额外调低优先级 |
| 故障切换 | 切换速度快,路由收敛简单 | 需防止某一方向路由反复震荡 |
| 价格 | 相对低,接入成本可控 | 带宽成本明显更高 |
移动线路有一个特点:跨网穿透质量波动大,有时联通线路比移动直连还快,所以在三线BGP环境中,移动的Local-Preference经常设置成最低值,入站MED也调高,让它作为兜底线路使用,这个策略在成本和体验之间取了一个平衡点,如果带宽预算紧张,双线BGP配合合理的策略方向,能覆盖多数中小业务。
价格与场景的取舍
“多线BGP机房哪个便宜”这类问题背后,其实是成本与策略空间的权衡,三线BGP单IP带宽价格通常比双线高,同带宽下往往要贵出一截,但便宜方案如果只有单运营商BGP,或者只是静态多IP,就失去了自治选路的能力,策略方向根本没得调,BGP机房的带宽成本里包含AS号接入、IP资源、互联互通等多项费用,不是单纯买带宽那么简单。
所以选型结论可以这样理解:预算有限且用户集中在一个运营商,双线BGP加简单策略就够;用户分布全国,必须上三线BGP,并把入站策略做细。
Q&A:多线BGP策略方向常见疑问
多线BGP路由策略方向设定错了会有什么后果?
流量绕路是最直接的表现,常见情况是北方联通用户访问网站,去程走了联通线路,回程却从电信线路出去,跨网延迟直接翻倍,调错方向还可能造成路由环路,表现为部分用户间歇性无法访问,源站BGP会话频繁震荡。
三线BGP和双线BGP,运维成本差别大吗?
差别主要体现在策略维护上,双线BGP只需维护两条邻居关系的属性和优先级,规则少,排障路径清晰,三线BGP需要同时关注移动线路的穿透变化、联通电信的互通瓶颈,调整频率更高,且切换线路时还要检查三条链路的收敛状态,运维投入明显增加。
多线BGP机房哪个便宜?
从市场行情看,双线BGP的带宽单价低于三线BGP,单线接入则更低,但便宜的方案往往限制策略调整空间,比如不提供BGP会话的可控权限,或者只能做静态路由指向,这会直接限制入站方向的MED调整能力,自建BGP的固定成本更高,包含AS号申请、IP资源、设备投入与专线接入等多笔费用。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/643319.html





