2. 专线接入层冗余:双路由接入、BGP多路径、静态路由备份

专线接入层,说白了就是企业网络和运营商之间的「最后一公里」。

我见过太多公司,核心层做得花里胡哨,接入层却只有一根光缆、一个端口。结果运营商一割接,全公司断网。嗯,这种教训,一次就够了。

这一章,我们聊聊接入层的冗余怎么做。核心就三招:双路由接入、BGP多路径、静态路由备份

2.1 双路由接入:别把鸡蛋放一个篮子里

双路由接入,就是同时接入两家不同的运营商。比如电信+联通,或者电信+移动。

为什么要两家?因为同一家运营商的故障,往往是区域性的。光缆被挖断、设备掉电,一倒一大片。你接两条电信的线,其实还是单点。

我个人习惯,主用选电信,备用选联通。为什么?电信的海外出口质量好,联通的国内互联带宽足。当然,具体选哪家,得看你业务流量的走向。

双路由接入的核心原则:

  • 物理路径分离:两条光纤走不同的管道、不同的局端
  • 运营商分离:避免同一家运营商的区域性故障
  • 带宽不对称:主用带宽大,备用带宽小(省钱)

我在项目中遇到过一家公司,两条线都接的电信,结果电信一个核心机房掉电,两条线全断。老板急得跳脚,我只好临时拉了一条4G LTE做应急。从那以后,我坚持「不同运营商」原则。

2.2 BGP多路径:让流量自己选路

双路由接好了,怎么让流量智能切换?BGP多路径是首选方案。

BGP多路径,说白了就是让路由器同时学习到多条去往同一目的地的路径。正常情况下,BGP只选一条最优路径。但我们可以通过配置,让它同时使用多条。

为什么会这样?因为BGP默认的选路规则里,有一条叫「最短AS路径」。如果两条路径的AS路径长度一样,它就只选一条。我们需要打破这个规则。

避坑指南:我曾经在配置BGP多路径时,忘了调整「maximum-paths」参数。结果路由器只装了一条路由,另一条完全没用。白白浪费了双路由的冗余能力。

配置示例(华为设备):

bgp 65001
  peer 1.1.1.1 as-number 4809
  peer 2.2.2.2 as-number 4837
  #
  ipv4-family unicast
    maximum-paths 2
    peer 1.1.1.1 enable
    peer 2.2.2.2 enable

注意这里的 maximum-paths 2,就是告诉BGP:最多可以同时使用2条等价路径。这样,流量就会在电信和联通之间负载分担。

但有个问题:BGP多路径要求两条路径的AS路径长度完全一致。如果电信和联通的路径长度不一样,怎么办?

嗯,这时候可以用 bestpath as-path multipath-relax 命令。它允许BGP忽略AS路径长度的差异,只要其他选路属性相同,就认为等价。

警告:BGP多路径虽然好用,但要注意流量不对称问题。比如电信的流量走联通出去,回程可能还是走电信。这会导致延迟增加。建议配合策略路由使用。

2.3 静态路由备份:简单粗暴的保底方案

BGP多路径虽然智能,但配置复杂,而且依赖BGP会话的稳定性。万一BGP会话断了,路由表就空了。

这时候,静态路由备份就是最后的保底方案。说白了,就是手动写一条优先级更低的路由,当BGP路由消失时,它自动顶上。

配置示例:

ip route-static 0.0.0.0 0.0.0.0 1.1.1.1 preference 60
ip route-static 0.0.0.0 0.0.0.0 2.2.2.2 preference 70

这里,preference 60 的优先级高于 70。正常情况下,路由器会走 1.1.1.1(电信)。如果电信断了,自动切换到 2.2.2.2(联通)。

你想想看,静态路由备份的好处是什么?

  • 简单:不需要维护BGP会话,不会因为协议问题导致路由丢失
  • 可靠:只要物理链路通,路由就在
  • 可控:你可以精确控制切换的优先级

但静态路由也有缺点:它不会自动感知链路质量。比如电信的链路虽然通,但丢包率50%,静态路由照样走它。这时候,BGP的灵活性就体现出来了。

我的建议:把BGP多路径和静态路由备份结合起来。BGP做主路由,静态路由做最后一道防线。我曾经在一个项目中,BGP会话因为运营商设备重启而中断了30秒,静态路由在这30秒内完美接管,业务零中断。

2.4 三种方案的对比与选择

说了这么多,到底该用哪种?我整理了一个表格,方便你对比:

方案 优点 缺点 适用场景
双路由接入 物理冗余,抗区域性故障 成本高,需要两条专线 所有高可靠场景
BGP多路径 智能选路,负载分担 配置复杂,依赖BGP会话 多运营商接入,需要流量调度
静态路由备份 简单可靠,配置量小 无法感知链路质量 小型网络,或作为BGP的保底

我个人习惯,大型网络用BGP多路径+静态路由备份中小型网络用双路由接入+静态路由备份。BGP虽然强大,但维护成本高,小团队不一定玩得转。

2.5 实战案例:一次运营商割接的考验

我记得有一次,电信通知凌晨2点进行光缆割接,预计中断30分钟。

我们当时用的是电信主用+联通备用的方案。BGP多路径已经配好,静态路由备份也写好了。按理说,应该自动切换。

但我不放心,提前做了个测试:手动 shutdown 电信端口,观察流量切换情况。

结果发现,BGP会话在3秒内断开,路由表自动切换到联通。但静态路由备份没有生效——因为BGP路由虽然没了,但联通的路由还在,优先级更高。

嗯,这里有个细节:静态路由备份的优先级,一定要低于BGP路由的优先级。否则BGP路由恢复后,静态路由不会自动回切。

经验总结:

  • 割接前一定要做切换测试,不要相信「理论上应该没问题」
  • BGP和静态路由的优先级要合理设置,避免路由环路
  • 监控系统要能实时看到路由表变化,否则切了你都不知道

那次割接,实际中断了28分钟。但我们的业务只中断了3秒——就是BGP会话断开的那一瞬间。之后流量全部走联通,用户完全无感知。

2.6 知识体系总览

下面这张图,帮你理清本章的核心逻辑:

专线接入层冗余方案 接入层冗余 双路由接入 BGP多路径 静态路由备份 物理路径分离 智能选路+负载分担 简单可靠保底 三者结合,实现99.99%接入层可用性

这张图展示了本章的核心逻辑:双路由接入提供物理冗余,BGP多路径提供智能选路,静态路由备份提供最后保底。三者结合,才能实现真正的接入层高可靠。

好了,这一章就到这里。记住:接入层是网络的「大门」,门坏了,里面再豪华也没用。


公众号:蓝海资料掘金营,微信deep3321