Skip to main content

One post tagged with "Peering"

View All Tags

· 5 min read

接入 DN42 之前,先要在 registry 中声明“我是谁、我拥有哪些资源、哪些路由允许由我的 AS 宣告”。这一步做不好,后面的 BGP 即使建立成功,路由也可能被对方 ROA 过滤器拒绝。

Registry 是什么#

DN42 registry 是一个 Git 仓库,里面保存社区资源对象。常见对象如下:

mntner    维护者对象,记录认证方式和维护者信息person    联系人对象aut-num   AS 号对象inetnum   IPv4 地址段对象inet6num  IPv6 地址段对象route     IPv4 路由授权对象route6    IPv6 路由授权对象domain    .dn42 域名对象,可选

典型流程:

fork registry添加自己的对象运行 registry 检查脚本提交一个经过 squash 的 commit按要求签名 commit发起 Pull Request等待 maintainer review

不要直接用网页编辑器一点点改文件。网页编辑容易产生多个散乱 commit,也不方便运行检查脚本。

资源对象之间的关系#

一套最小可用资源通常包含:

FOO-MNTFOO-DN42AS4242423777172.22.107.0/27fd42:3777:3777::/48route:  172.22.107.0/27 origin AS4242423777route6: fd42:3777:3777::/48 origin AS4242423777

inetnum / inet6num 表示地址段归属,route / route6 表示这个前缀允许由哪个 AS 宣告。BGP 过滤时通常会用 route/route6 生成 ROA 表,所以这两个对象非常关键。

ASN 选择#

DN42 常见私有 ASN 段包括 4242420000-4242423999。选择前请先确认 registry 中没有被占用。

建议:

  • 选择一个未使用的 ASN。
  • AS 名称简短、稳定。
  • 不要使用公网 ASN,除非你清楚它和 DN42 社区规则的关系。
  • 后续配置 BIRD 时只写数字部分,例如 define OWNAS = 4242423777;

地址选择#

IPv4 常见从 172.20.0.0/14 等 DN42 地址空间中申请。IPv6 使用 fd00::/8 ULA。

建议:

  • IPv4 新手选择社区允许范围内的合适前缀,不要太大。
  • IPv6 可以使用 ULA 生成工具生成随机 /48
  • loopback 地址从自己的前缀里取一个稳定地址,例如 172.22.107.1/32fd42:3777:3777::1/128
  • router id 使用稳定 IPv4 地址,例如 172.22.107.1

找 peer#

DN42 中通常没有严格的“上游”和“客户”区分,大多数 peer 都会互相提供 transit。找 peer 时建议优先选择:

  • 地理位置接近。
  • 延迟较低,通常同洲 peer 更合适。
  • 有稳定在线时间。
  • peering 页面写得清楚。
  • 支持 WireGuard 和 BIRD/FRR 常见配置。

你需要和对方交换:

你的 ASN你的 DN42 IPv4/IPv6 地址或 link-local 地址你的 WireGuard 公钥你的公网 endpoint 和 UDP 端口你的 DN42 前缀你的 peering 联系方式

不要发送:

WireGuard private key服务器密码SSH 私钥Grafana/API token

Peering 信息模板#

可以给对方这样的信息:

ASN: AS4242423777DN42 IPv4: 172.22.107.1DN42 IPv6: fd42:3777:3777::1WireGuard public key: <LOCAL_PUBLIC_KEY>WireGuard endpoint: your.example.com:23777WireGuard link-local: fe80::3777Preferred BGP transport: IPv6 link-local

如果你在 NAT 后面,没有固定公网入口,也可以只主动连接对方 endpoint,并设置 PersistentKeepalive = 25

PR 通过后再做什么#

PR 合并后,等待 registry 镜像和 ROA 数据更新。然后再:

配置 Linux 网络基础配置 WireGuard配置 BIRD2更新 ROA 表和 peer 联调

如果你的 BGP session 已经 established 但对方不接受你的前缀,优先检查:

  • route / route6 对象是否存在。
  • origin ASN 是否写对。
  • 前缀长度是否和 registry 一致。
  • ROA 数据是否已经更新。

参考资料#