DN42 从入坑到放弃 - Part2 与他人Peer
警告:
本人只是一名高三学生,在此之前对于BGP等技术一无所知,因此,本文可能包含但不限于 笔误/错误/小白理解 请大佬勿喷,如果能指正出来那就更好啦
再次警告:
如果您能接受的话,可以继续看下去,如果不能接受,建议现在就关闭此文章
前言
上篇文章中,我们学习了如何加入DN42网络,注册属于自己的ASN与地址块.但是,仅仅拥有这些是远远不够的,为了真正加入DN42网络,你还需要与他人建立联系(Peer)
什么是Peer?
Peer(对等体)的定义:
在计算机网络中,Peer 指的是地位平等、可以直接相互通信和交换信息的设备或程序。
在DN42中,Peer 指的是相互连接并交换路由信息的路由器。它们是互联网上不同网络(自治系统)之间交换路由信息的关键点,可以分为:
- eBGP Peer: 不同网络间的路由器。
- iBGP Peer: 同一网络内的路由器。
开始Peer!
如何与别人Peer
由于DN42是一个去中心化的网络,因此并没有一个中央路由可以让你直接接入,相反,你需要寻找其他DN42上的节点,建立隧道连接和BGP会话,从而建立Peering关系
您可以
找人peer,或者直接找我
注意,您可以(并且建议)找多人进行peer,以降低网络中心度增加网络稳定性。
找几个离你节点近延迟小的节点,然后看下面
重要的系统配置
根据官方Wiki
The first rule of dn42: Always disable
rp_filter
.
The second rule of dn42: Always disablerp_filter
.
The third rule of dn42: Allow ip forwarding!
一定关掉rp_filter
并开启IP forwarding
,具体执行下面的代码:
1 | echo "net.ipv4.conf.default.rp_filter=2" >> /etc/sysctl.conf |
然后一定关掉UFW之类的自动配置iptables的东西,以免出现玄学问题
选择隧道软件
不同Peer之间一般是没有网线直接拉上的,互联基本上依靠隧道。现在DN42社区一般喜欢使用WireGuard和OpenVPN,我倾向于使用WireGuard。
WireGuard一般配置为点对点连接。我通常是这么配置WireGuard隧道的:
1 | [Interface] |
然后直接用 wg-quick + 隧道名(文件名) 启动隧道就建立了互联。
警告:
一定要加Table = off,否则wg-quick会给AllowedIPs加上路由,往外连的路由表应该用BGP管理,所以这里不需要帮你添加
选择BGP软件
我只用过Bird v2,而且DN42 Wiki上面也有Bird v2的配置文件可以直接抄,所以我推荐Bird v2。
当然,还有别的可以用,但是我没用过,不做推荐
进行Peer
BGP软件配配置好,就可以开始做Peer了。
与他人建立WireGuard隧道后,在/etc/bird/peers/ 中新建文件,写入:
1 | protocol bgp 线路名称 from dnpeers { |
该配置使用了MP-BGP over link-local
接入完成
完成上述操作之后,等到对方也将您的配置推进bird2后,您就成功的接入了DN42网络。可以开始愉快的Ping了 (其实DN42里面也有不少服务的)。
您可以接着申请域名、搭建权威DNS服务器和DNS反查服务器,在DN42里面搭建博客或者整活了🥰
参考文献
感谢以下文章对本小白踏入 DN42 提供了巨大的帮助!
DN42 实验网络介绍(2020 版)
BIRD 与 BGP 的新手开场
Multiple servers on dn42: iBGP and IGPs
萌新入坑 DN42 之 —— 多服务器互联