前言
上篇 Blog 中我们已经成功的将 IP 宣告到了整个 Internet, 本篇我们继续来讲 peer.
peering 与 IXP
我们的 AS214775 已经通过 xTom 的 IP transit 服务与整个互联网相连, 但上次还挖了个坑叫 “peering”.
peering 意为对等互连 —— 两个 AS 通过友好协商的方式, 直接在两者间拉起一条链路, 这样两个 AS 间的流量就无需经过上级运营商, 提高带宽降低延迟的同时还能节约一部分给上游的结算费.
IXP, 全称 Internet exchange point(互联网交换中心), 有时也简称 IX, 就是给大家提供 peering 的物理场所. 各个 AS 的运营者可以接入就近的 IXP, IXP 内各个 AS 就可以直接建立 BGP 会话进行 peer. 很多大型的互联网公司也会通过大量 peer 来提升自己的 connectivity 和降低带宽成本, 比如 Cloudflare 现在就有 2000+ peer.
实际设置
我们想要和其他 AS peer 的话我们就需要加入一个 IX. 商业化的 IX 通常要求物理接入, 且会收取一笔端口管理费用. 但也有一些相对开放和公益性质的 IX, 甚至会有一些实验性质的虚拟 IX (通过 VPN 进行 peer).
我们上次使用的 v.ps 就提供了多个 IX 的选择. 例如 AMS-IX 和 DE-CIX 就是商业化的 IX, 每月要交至少 70 EUR 的接入费用, 但也会有很多大公司位列其中, 例如加入 AMS-IX 就能直接和 Alibaba, Tencent, Cloudflare, Apple, Amazon 等一众公司 peer.
不过由于我太穷了由于我们目前只是实验目的, 我们先用 v.ps 赠送的 LocIX 做示例. LocIX peer 人数就相对较少, 且没有很多耳熟能详的大公司, 但不同 IX 配置方法是类似的.
在 IX 中, 我们可以直接连接到其他 AS 进行 peer. 但为所有其他上百个 AS 一一配置 BGP Session 显然过于繁琐了. IX 为解决这个问题准备了一个 “Route Server” (RS), 所有的 AS 可以直接和 RS 进行 peer, RS 会讲我们导出的路由转发给其他人, 其他人导出的路由转发给我们, 就实现了一个 BGP Session 和所有人 peer 的效果.
通过工单申请 LocIX 的访问后, 后台会为我的 vps 添加一张新的网卡用于接入 IX (我的为 eth1), 同时通过邮件发送 LocIX Dashboard 的登陆信息.

在 LocIX 控制台获得 eth1 对应的 IP 地址 2a0c:b641:701::a5:21:4775:1, 手动配置在 vps 的网口上.
同时在控制台可以得到 RS 的 IP 2a0c:b641:701::a5:20:2409:1 和 ASN 202409, 在上篇 Blog 的 BIRD 配置末尾再添加以下内容, 与 RS 建立 peer. 过滤器这里, 对于 peer 我们仍是接收所有路由, 只导出我们自己的地址段, 所以无需修改.
protocol bgp bgp_locix_v6 {
local 2a0c:b641:701::a5:21:4775:1 as ASN;
neighbor 2a0c:b641:701::a5:20:2409:1 as 202409;
ipv6 {
import filter import_filter_v6;
export filter export_filter_v6;
export limit 10;
};
graceful restart;
}
配置好后重启 BIRD, 同样是一段时间后, 我们可以在 BGP Tools 和 LocIX 控制台查询到我们的 peer.


检验效果
看起来我们的 peer 已经没有问题了, 同样是使用 birdc show protocols all 可以看到我们从 LocIX 导入了 1417 条路由.
bgp_locix_v6 BGP --- up 2024-09-06 Established
Channel ipv6
State: UP
Table: master6
Preference: 100
Input filter: import_filter_v6
Output filter: export_filter_v6
Export limit: 10
Action: disable
Routes: 1417 imported, 1 exported, 1380 preferred
Route change stats: received rejected filtered ignored accepted
Import updates: 63354 0 0 4466 58888
Import withdraws: 33479 0 --- 1067 32412
Export updates: 2137470 61720 2075746 --- 4
Export withdraws: 128310 --- --- --- 0
BGP Next hop: 2a0c:b641:701:0:a5:21:4775:1 fe80::be24:11ff:fefa:9353
使用 ip -6 route | grep 'dev eth1' 可以看到这些路由, 我们可以尝试性地访问下邻居, 例如我尝试访问 xTom 的 2a03:d9c0:1000::1.
使用 tcpdump 可以在 eth1 上抓到对应的流量, 代表两个 AS 间的流量确实通过 IX 进行了交换:
06:54:40.064548 IP6 2a0e:8f01:1000:46:be24:11ff:fefa:9353 > cs01.q51.dus06.xtom.de: ICMP6, echo request, id 4432, seq 3, length 64
06:54:40.065748 IP6 cs01.q51.dus06.xtom.de > 2a0e:8f01:1000:46:be24:11ff:fefa:9353: ICMP6, echo reply, id 4432, seq 3, length 64
小结
前三部分已完成基础建设:ASN 注册 -> IP 宣告 -> IXP Peering。本文介绍了后续建网的进阶方向及未来规划:
进阶技术方向
- BGP Community:使用附加在路由上的自定义 Tag 来筛选和控制路由。
- 安全过滤 (Filter):建立合理的 Filter 和防火墙,不盲目信任上游和 RS,防止 BGP 路由泄漏(避免”炸掉互联网”的事故)。
- 内部网关:在自己的 AS 内部署 IGP 和 iBGP 以扩张网络。
作者后续规划 (DN42)
- 出于真实 Internet 的成本考量,作者暂不继续扩大真实 AS 规模。
- 计划转向 DN42(一个基于 BGP 的实验性虚拟网络)进行更自由的建网实验。
- 推荐资源:Lantian 的 DN42 建网教程及相关社群 (TG/IRC)。






























































