DN42系列 0x02:Peering
先前说到了已经在DN42 Registry注册了AS和IP段,但在进行Peer前,网络还没有到DN42的路由,而进行Peering需要另外的一套协议和机制。
查找 Peer
DN42 提供了一个 交友平台 Peer Finder 来查找最近的 Peer,只需要在上面输入需要 Peer 的服务器公网 IP,在等待一阵后就能找到 DN42 网络内最近的节点(ping 值最低),并提供了联系方式。
在接下来的章节内也会提到如何在自己的服务器上部署 Peer Finder 的客户端。
配置 WireGuard
WireGuard 是一个基于 Linux 内核实现的 VPN,具有快速、高效的特点。在 DN42 里被大多数 Peering 所使用。
一般安装
在安装 Debian 10 的服务器上进行操作,只需要安装 wireguard-dkms
及 wireguard-tools
即可。
OpenVZ 安装
由于OpenVZ的虚拟化特性,虚拟机无法安装内核模块,可参照以下文章进行安装:
生成密钥
通过以下方式可以生成一对公钥/私钥,放置在当前文件夹:
1 |
|
交换参数
通常一次 Peer 会把隧道、IP、BGP参数都同时提前进行交换,但这里为了保持文章的连贯性,会将隧道与 BGP 部分分开。
欲成功建立 WireGuard 隧道,需要双方交换以下几个东西:
- 隧道的地址(通常是希望进行 Peer 的服务器公网 IP 地址及 WireGuard 端口号)
- 隧道终结点,即双方为隧道分配的 DN42 IP 地址
- 此外,若需建立 IPv6 隧道,需要再提供一个 link-local IPv6 地址
systemd-networkd
在服务的管理上,我自信地采用了 systemd-networkd
(部分发行版可能需要手动安装)。
根据 Debian Wiki 上的介绍,对于每个接口,均需要创建一个 .netdev
和 .network
文件。
/etc/systemd/network/wgi0.netdev
1 |
|
/etc/systemd/network/wgi0.network
1 |
|
在完成上述步骤后,使用 systemctl restart systemd-networkd
即可完成配置。若需进行测试,直接 ping
隧道对端 IP 即可。
配置 BIRD
BIRD 是一种开源实现,用于在类似 Unix 的操作系统上路由 Internet 协议数据包。它是作为布拉格查尔斯大学数学与物理学院的一个学校项目开发的,并根据 GNU 通用公共许可证发行。 BIRD 通过运行单独的守护程序来支持 Internet 协议版本 4 和版本 6。
– Wikipedia: Bird Internet routing daemon
总而言之,BIRD 是一个路由软件。由于使用的服务器均没有类似于 Arch 的发行版,所有安装的版本均为 1.6。
基本配置
DN42 在网站上提供了一个 模板配置文件。
/etc/bird/bird.conf
1 |
|
IPv6 的配置文件 /etc/bird/bird6.conf
与上述内容大同小异。
1 |
|
IPv6 的配置文件 /etc/bird/local6.conf
与上述内容大同小异。
在完成后,使用 systemd
可以启动这 IPv4 和 IPv6 的服务(不要忘记 enable
):
1 |
|
Peering 配置
完成一次 BGP Peering,需要双方交换以下内容:
- 双方的 ASN
完成交换后,即可在 /etc/bird/peers4
和/或 /etc/bird/peers6
中加入以下文件内容
/etc/bird/peers{4,6}/{NAME}
1 |
|
之后,使用 birdc configure
和/或 birdc6 configure
重载配置。
使用 birdc show protocol
和/或 birdc6 show protocol
查看状态,如果一切配置正常,即可看到状态是 Established。
等待一段时间后,在 nixnodes 的 DN42 网络地图 上可以看到一条 Link 已经建立。
以上就是建立 BGP Peer 的一般步骤,在 AS 内部也可以使用(双方具有相同 ASN)。
以下是目前由我负责的 Niantic Network 的 Peering 联系方式:
- 邮件: dn42@strexp.net / Charles@0x7f.cc
- ASN: AS424242 1331
- IP: 172.20.158.128/26 (骨干网)
- Peer Finder 对应: Ox7f (IRC)
- 在下一章节,将会建立 Peer Finder 客户端和 Looking Glass 服务,这将成为首批对外提供的服务。