3. 多运营商出口的地址规划与AS号规划

多运营商出口工程中,地址与AS号规划是“看不见但决定上限”的基础工作。它不像BGP邻居建立那样立刻看到Established,也不像路由策略那样立刻看到选路变化,但一旦规划失当,后期会出现互联地址冲突、环回口不可达、AS号与上游冲突、聚合边界不清导致明细路由泄漏等问题。本节围绕五类核心资源展开:公网IP地址块、互联地址、环回口地址、AS编号、路由聚合边界。

一、公网IP地址块:先确定“谁拥有、谁宣告”

多运营商出口通常有两种公网地址来源:一是向APNIC或CNNIC申请独立PI地址块,二是从某个运营商获取PA地址。PI地址块可跨运营商宣告,适合多出口场景;PA地址块归属运营商,换运营商时需重新申请,容易造成业务中断。因此,多运营商出口应优先使用PI地址块。

假设企业申请到 203.0.113.0/24 作为PI地址块,规划时需先划分用途:

用途示例网段说明
业务公网地址203.0.113.0/25对外提供服务的服务器、VIP
出口设备环回口203.0.113.128/27用于BGP Router ID、iBGP源地址
互联地址池203.0.113.160/27与运营商对接的/30或/31
保留扩展203.0.113.192/26未来新运营商或新业务

互联地址建议使用独立小段,不要从业务地址中零散抽取。与运营商对接常用 /30(可用2个地址)或 /31(RFC 3021,点对点链路可用2个地址)。例如与运营商A对接使用 203.0.113.160/30,本端 .161,对端 .162;与运营商B对接使用 203.0.113.164/30,本端 .165,对端 .166。这样每个运营商占用一个独立/30,互不干扰。

二、环回口地址:BGP稳定性的锚点

环回口(Loopback)地址是BGP会话的“稳定锚点”。物理接口可能因链路故障或割接而Down,但环回口始终Up。多运营商出口中,建议为每台边界路由器配置一个 /32 环回口地址,作为BGP Router ID和iBGP/eBGP更新源。

例如:

R1: interface Loopback0
    ip address 203.0.113.129 255.255.255.255
R2: interface Loopback0
    ip address 203.0.113.130 255.255.255.255

与运营商建立eBGP时,可使用环回口建立多跳会话(neighbor x.x.x.x ebgp-multihop),但前提是双方通过静态路由或IGP保证环回口可达。若运营商不支持环回口建邻,则使用互联接口地址建邻,但iBGP仍应使用环回口作为更新源。

三、AS号规划:公网AS与私有AS的边界

AS号分为公网AS(1–64511)和私有AS(64512–65534,以及32位私有AS 4200000000–4294967294)。多运营商出口中,若企业已申请公网AS,则直接使用;若未申请,可在内部使用私有AS,但向运营商宣告路由时需注意:运营商通常不接受私有AS号出现在AS_PATH中,需使用 as-override 或 allowas-in 等机制,或由运营商侧做AS替换。

典型规划:企业使用公网AS 65001,运营商A为AS 100,运营商B为AS 200。边界路由器R1与运营商A建立eBGP,R2与运营商B建立eBGP,R1与R2之间建立iBGP。此时AS_PATH中会出现65001,运营商A和B均能正常接收。

若企业使用私有AS 64512,向运营商A宣告时,运营商A的AS_PATH中会出现64512。部分运营商会在入方向过滤私有AS,导致路由被丢弃。此时需与运营商确认是否支持私有AS,或申请公网AS。

四、路由聚合边界:在哪里聚合、聚合到什么粒度

路由聚合边界决定了“哪些明细路由被抑制、哪些聚合路由被宣告”。多运营商出口中,聚合边界通常设在边界路由器向eBGP邻居宣告的方向。聚合粒度过粗会丢失路径信息,过细则失去聚合意义。

以 203.0.113.0/24 为例,若业务地址为 203.0.113.0/25,环回口为 203.0.113.128/27,互联地址为 203.0.113.160/27,则向运营商宣告时,可聚合为 203.0.113.0/24,但需注意:互联地址段不应被宣告到公网,否则可能造成安全风险。因此,聚合边界应排除互联地址段。

推荐做法:使用 aggregate-address 203.0.113.0 255.255.255.0 summary-only 并配合 suppress-map 抑制互联地址明细。或者更精细地,只宣告 203.0.113.0/25 和 203.0.113.128/27,不宣告互联段。

多运营商出口地址与AS号规划全景 企业侧 PI 地址块 203.0.113.0/24 业务: 203.0.113.0/25 环回: 203.0.113.128/27 互联: 203.0.113.160/27 保留: 203.0.113.192/26 边界路由器 R1 AS 65001 | Lo: .129 边界路由器 R2 AS 65001 | Lo: .130 iBGP 运营商 A AS 100 互联: .161 ↔ .162 运营商 B AS 200 互联: .165 ↔ .166 eBGP eBGP 路由聚合边界与宣告策略 向运营商A宣告 203.0.113.0/25 203.0.113.128/27 不宣告互联段 向运营商B宣告 203.0.113.0/25 203.0.113.128/27 不宣告互联段 聚合边界原则 聚合到/24但不含互联 summary-only + suppress 避免明细泄漏

五、规划检查清单与常见错误

完成规划后,建议按以下清单逐项核对:

  • 公网地址块是否为PI?若为PA,是否已确认换运营商时的迁移方案?
  • 互联地址是否每运营商独立/30或/31?是否与业务地址分离?
  • 环回口地址是否为/32?是否已作为BGP Router ID和更新源?
  • AS号是否为公网AS?若为私有AS,运营商是否支持?
  • 聚合边界是否排除了互联地址段?是否使用summary-only抑制明细?
  • 是否预留了扩展地址段,供未来新运营商或新业务使用?
常见错误:将互联地址从业务地址中零散抽取,导致聚合时无法干净地排除互联段;或使用私有AS向运营商宣告,被运营商入方向过滤,导致路由无法传播。建议在规划阶段就用表格固定每类地址的用途和边界,后期变更时只动表格不动逻辑。

地址与AS号规划的本质是“边界管理”:公网地址块划定了企业可宣告的范围,互联地址划定了与运营商对接的点,环回口划定了BGP会话的稳定锚点,AS号划定了路由域的身份,聚合边界划定了对外宣告的粒度。五者一致,多运营商出口才能稳定、可扩展、易排障。