BGP 机房服务器托管:和单线、双线机房差在哪
BGP 机房有自己的 AS 号和 IP 段,同时与多家运营商建立 BGP 互联,一个 IP 对电信、联通、移动用户都走本网直达,不经过拥堵的跨网互联点。单线机房便宜但跨网慢,双线机房靠两个 IP 分流,BGP 机房一个 IP 全网可达,价格也更高。面向全国用户、对延迟和丢包敏感的业务,多付的钱是值的。
BGP 机房服务器托管和单线机房的差别,不在机柜和电力,而在一个 IP 能不能被所有运营商的用户直达。BGP 机房拥有自己的自治系统号(AS 号)和 IP 地址段,同时与电信、联通、移动等多家运营商建立 BGP 互联,把自己的地址段宣告给每一家;不管用户用的是哪家宽带,流量都在本网内直接到达机房。单线机房只接一家运营商,其他运营商的用户要绕行骨干网互联点;双线机房给服务器两个 IP、靠智能 DNS 把不同运营商的用户分开。价格上三者依次升高,值不值得多付,取决于你的用户分布在几家运营商、业务对延迟和丢包有多敏感。
BGP 机房是什么:自己的 AS 号加多家上游
BGP(Border Gateway Protocol,边界网关协议)是互联网上不同网络之间交换路由的协议。每个独立运营的网络是一个自治系统(AS),有一个全球唯一的 AS 号:电信骨干网是 AS4134,联通是 AS4837,移动是 AS9808,电信的 CN2 是 AS4809(各家还持有其他 AS 号,这里列的是最常见的骨干网 AS)。两个 AS 之间建立 BGP 会话后,互相告知“我这里有哪些 IP 段”,对方就知道怎么把流量送过来。
一个机房要成为 BGP 机房,需要三样东西:
- 自己的 AS 号:向 APNIC 或 CNNIC(中国互联网络信息中心)申请,机房以独立网络的身份出现在互联网上;
- 自己的 IP 段:IPv4 至少一个 /24(256 个地址),这是互联网上普遍接受的最小宣告单位;IPv6 通常是 /48 或更大。IP 归机房或其所属公司,而不是借用某家运营商的地址;
- 与多家运营商的 BGP 互联:机房的边界路由器分别与电信、联通、移动等建立 eBGP 会话,向每一家宣告自己的 IP 段,同时从每一家接收路由表。
有了这三样,一个地址段就同时出现在三家运营商的路由表里。联通用户访问机房的 IP,联通网络一查路由表发现“这个段直接从我和机房的互联口过去”,流量不会跑到电信网里绕一圈。
出方向也一样。机房路由器从三家分别收到路由,服务器回包时按目的 IP 匹配路由表选出口:发给联通用户的包通常走联通口,发给移动用户的包走移动口。多数流量来回都留在同一家运营商网内,这是 BGP 机房访问质量稳定的主要原因。
单线、双线、BGP 多线怎么访问
| 对比项 | 单线机房 | 双线 / 多线双 IP 机房 | BGP 多线机房 |
|---|---|---|---|
| IP 归属 | 一家运营商 | 每家运营商各给一个 IP | 机房自己的 AS |
| 服务器 IP 数量 | 1 个 | 2 个或更多,每条线路一个 | 1 个 |
| 本网用户访问 | 直达 | 直达(前提是 DNS 分流正确) | 直达 |
| 跨网用户访问 | 绕行骨干网互联点 | DNS 分流失误时仍绕行 | 直达 |
| 分流方式 | 无 | 智能 DNS 按用户运营商返回不同 IP | 网络层由路由表自动完成 |
| 服务器侧配置 | 一个网关 | 两张网卡或两个 IP,需要策略路由保证来回同路 | 一个网关 |
| 单条线路故障 | 全部中断 | 需 DNS 切换,受 TTL 影响 | 路由自动收敛,秒级到分钟级 |
| 带宽价格 | 低 | 中 | 高 |
单线机房的跨网问题
单线机房的 IP 属于一家运营商。另一家运营商的用户要访问它,流量先在自己运营商的网内走到骨干网互联点,再进入机房所在运营商的网络。互联点的带宽是两家运营商协商建设的,数量有限,晚上八点到十一点的高峰期经常拥塞,表现为延迟升高、丢包、速度忽快忽慢。用 traceroute 看,路径中会出现从一家骨干网地址段跳到另一家骨干网地址段的那一跳,延迟常在这一跳陡增。
双线机房的 DNS 依赖
双线机房在网络层仍然是两条单线,靠 DNS 把用户“分配”到正确的那条。问题有三个:一是判断用户运营商靠的是用户所用 DNS 服务器的归属,用户如果用了公共 DNS,就可能被解析到错误的线路;二是服务器要维护两个 IP、两条路由,回包必须从进来的那条线路出去,策略路由配错就表现为“能 ping 通但打不开网页”;三是需要固定 IP 的场景(白名单、证书、API 回调)要同时登记两个地址。双线机房适合流量集中在两家运营商、能接受这些复杂度的业务。
访问质量差多少:用延迟和丢包说话
下面是一个假设的对比,用来说明结构,具体数值以你自己测试为准。假设机房在华东,联通用户访问:
| 场景 | 延迟 | 晚高峰丢包 | 路径 |
|---|---|---|---|
| 联通用户 → 电信单线机房 | 白天 40 ms 左右,晚高峰 80 ms 以上 | 1%–5% | 联通本网 → 互联点 → 电信骨干 → 机房 |
| 联通用户 → BGP 机房 | 全天 20–30 ms | 接近 0 | 联通本网 → 机房联通口 |
| 电信用户 → 电信单线机房 | 全天 20–30 ms | 接近 0 | 电信本网 → 机房 |
同一个单线机房,本网用户体验和 BGP 机房一样好,跨网用户则差一截;BGP 机房把所有用户都变成了“本网用户”。延迟数字本身对网页影响不大,真正影响体验的是丢包和抖动:TCP 在 2% 丢包下吞吐量就会明显下降,游戏和音视频在跨网高峰的抖动下会卡顿掉线。
签约前怎么验证是不是真 BGP
“BGP 机房”是营销里用得很多的词,签约前用三步验证,每一步都只需要机房给一个测试 IP。
第一步,查 IP 归属。 用 whois 看这个 IP 段的持有者和宣告它的 AS:
# 查地址段登记信息,看 netname、descr 和 route 对象里的 origin
whois 203.0.113.10
# 直接查这个 IP 当前由哪个 AS 宣告
whois -h whois.cymru.com " -v 203.0.113.10"
如果 origin 是 AS4134、AS4837、AS9808 这类运营商的 AS,这个 IP 就是运营商的单线地址,机房即使做了双线也不是 BGP。真正的 BGP 机房,IP 由机房自己的 AS 宣告;再到 bgp.he.net 这类路由查询站点看这个 AS 的上游(Upstreams)列表,有几家运营商就是几线。
第二步,从不同运营商测路径。 用手机切换电信、联通、移动的 4G/5G 热点,或者分别在三家宽带下执行:
# -z 显示每一跳所属的 AS 号,-c 100 发 100 个包统计丢包,-r 输出报告,-w 不截断主机名
mtr -rwzc 100 203.0.113.10
真 BGP 的特征是:三家网络下的路径都在本网 AS 内走到倒数第二跳,然后直接进入机房的 AS,中间不出现另一家运营商的 AS 号;三家的延迟数字相近,丢包都接近 0。单线机房则是其中两家的路径里会出现第三方 AS,且延迟明显更高。
第三步,晚高峰再测一次。 白天测不出互联点拥塞,20:00–23:00 重复第二步,比较丢包和延迟的变化。顺手用机房提供的测速文件测一下下载速度,确认带宽是否达到承诺:
curl -o /dev/null -w 'speed: %{speed_download} bytes/s\n' http://203.0.113.10/test-100m.bin
还要问清机房接入了几家、每家各有多大带宽。只接电信和联通两家也可以叫 BGP,移动用户就还是要绕行;某一家只买了很小的带宽,这一家的用户在高峰期照样拥塞。
价格差在哪,钱花到了什么地方
BGP 带宽的单价高于单线,原因是成本结构不同:
| 成本项 | 单线机房 | BGP 机房 |
|---|---|---|
| 运营商带宽 | 向一家采购 | 向每一家分别采购,每家都要留余量应对峰值 |
| IP 资源 | 用运营商附带的地址 | 自己持有的地址段,有申请、年费与维护成本 |
| 路由设备 | 普通出口路由器 | 能承载完整互联网路由表并做策略的边界路由器,通常双机冗余 |
| 人力 | 基本网络维护 | 需要懂 BGP 的网络工程师处理选路、故障和上游协调 |
同样是 BGP,价格也有梯度:接入家数(两家、三家、含教育网或更多)、是否包含 CN2 或国际线路、是独享还是共享、按固定带宽还是 95 计费,都会影响单价。拿报价时把这些条件对齐再比,不要只比“每 Mbps 多少钱”。
什么业务值得为 BGP 多付钱
判断依据只有一个:你的用户分布在几家运营商,以及他们对延迟和丢包的容忍度。
| 业务 | 用户分布 | 建议 |
|---|---|---|
| 面向全国 C 端的网站、APP 后端 | 三家运营商都有大量用户 | BGP,否则总有一部分用户体验差 |
| 游戏服务端、实时音视频、直播推流 | 全国用户,延迟与丢包敏感 | BGP,跨网丢包直接变成掉线和卡顿 |
| 企业内部系统、OA、只给一个省的客户用 | 用户集中在一两家运营商 | 对应运营商的单线或双线即可 |
| 下载站、视频源站、备份与同步 | 看带宽成本,对延迟不敏感 | 单线大带宽更划算,可以配合 CDN 覆盖跨网用户 |
| 爬虫、离线计算、内部任务 | 没有终端用户 | 单线,哪家便宜用哪家 |
| 海外用户为主 | 境外 | 国内 BGP 帮不上忙,看国际线路或选海外机房 |
不确定用户分布时,从现有服务的访问日志里取一段时间的来源 IP,用 IP 归属库统计运营商比例。某家运营商占比不到 10%,为了他们上 BGP 未必划算;三家各占三成,单线机房会让七成用户跨网。
托管进 BGP 机房前要问清的事
- 机房的 AS 号是多少,接入了哪几家运营商,各家带宽多大、当前利用率多少;
- 分给你的 IP 属于机房的 AS 还是运营商,是否支持 IPv6 BGP;
- 带宽按独享固定、共享还是 95 峰值计费,超量后限速还是停机;
- 某家上游中断时的切换方式和历史故障记录;
- 是否提供 DDoS 清洗,黑洞阈值多少、封堵多久;
- 如果你有自己的 AS 和地址段,是否支持 BGP 接入(下放 BGP 会话让你自己宣告);
- 测试 IP 能给几天,是否允许在高峰期测试。
拿到答案再按上一节的方法实测一遍。BGP 机房贵出来的部分买的是“所有用户都走本网”,这一点验证清楚了,钱才花得值。
常见问题
BGP 机房的 IP 也分电信、联通吗?
不分。BGP 机房的 IP 段属于机房自己的 AS,不属于任何一家运营商,各家运营商都能直接路由到它。如果服务商给你的 IP 用 whois 查出来归属于某家运营商,那就是运营商的单线 IP,不是 BGP IP。
BGP 机房的带宽为什么比单线贵?
机房要向每一家接入的运营商分别购买带宽,并且每家都要留出余量,才能保证任何一家的用户都不拥塞;再加上 AS 号与 IP 段的持有成本、能装下完整互联网路由表的路由器和懂 BGP 的网络工程师,单位带宽成本自然高于只买一家运营商带宽的单线机房。
海外用户访问国内 BGP 机房快吗?
国内 BGP 解决的是国内运营商之间的互通,对海外用户没有直接帮助。海外用户的访问质量取决于机房接入的国际出口,面向海外用户要看服务商有没有国际线路,或者直接选海外机房。
自己有 AS 号和 IP 段,能托管进 BGP 机房自己宣告吗?
部分 BGP 机房提供 BGP 接入服务:与你的路由器建立 BGP 会话,让你宣告自己的 IP 段,由机房的多家上游转发出去。需要你合法持有 AS 号和地址段,并由机房登记路由对象,具体以机房的接入条件为准。