DN42申请与部署
DN42实验网注册申请与部署教程
DN42介绍
DN42 是一个大型动态 VPN,采用互联网技术(BGP、whois 数据库、DNS 等)。参与者通过网络隧道(GRE、OpenVPN、WireGuard、Tinc、IPsec)相互连接,并通过边界网关协议交换路由。网络地址分配在 172.20.0.0/14 范围内,使用私有 AS 号码(参见注册表)以及 ULA 范围内的 IPv6 地址(fd00::/8)
DN42 可用于学习联网和连接专用网络,如黑客空间或社区网络。但最重要的是,在 DN42 中尝试路由是一件有趣的事!
路由技术实验
参与 DN42 主要是为了学习 BGP 等路由技术,使用一个相当大的网络(> 1500 AS,> 1700 前缀)。
由于 DN42 与互联网非常相似,因此它可以作为新想法的实践试验场,或者只是用来学习在互联网上可能无法实现的真正的网络技术(BGP 多重归属、中转)。与互联网相比,它的最大优势在于:如果你在网络中弄坏了什么东西,不会有任何大型网络运营商对你怒吼。
以上资料来自DN42官方
总结:
- DN42适合给网络爱好者练习、研究设备配置,让你后续能成为一个及格的BGP Player。
- 适合给真实的BGP Player一个练习的地方,让其不至于炸掉半个互联网。
- 不适合单纯的想出国留学的普通人
- 不适合通过隧道跑取大量流量的用户
实验前提
读懂本文章并进行实验,你需要懂得的知识点:
1.拥有Linux系统环境(Centos,Ubuntu,debian,openwrt等)(双系统,虚拟机,VPS,路由器等)。
2.懂得如何操作Linux系统,常用的文件操作命令(cd/ls/mkdir/cp/mv/rm等),安装软件包命令(yum/apt/opkg等),会使用文本编辑器(例如vi,vim,nano等)。
3.明白git版本控制工具,理论与命令(push/pull/commit等)。
4.有网络基础知识,什么是IP/MAC地址吗,什么是掩码 24位/32位 等,清楚几种基本的路由类型 OSPF/RIP/BGP 等。
5.对英语有一定阅读基础(因为注册及peer时候大多数都是英文界面)
本教程全程比较啰嗦,已经对萌新很友好的了,如果你不具备以上知识,你很有可能无法理解本教程内容,以至于配置错误并给其他DN42用户造成麻烦。
要求
您至少有 一台全天候运行的路由器。任何 Linux 或 BSD 盒子都可以变成路由器。如果您的家用路由器运行 OpenWRT,您可以考虑将其用于 DN42。
您的路由器可以在互联网上建立网络隧道(Wireguard、GRE、OpenVPN、IPSec、Tinc……)。请注意,您的网络运营商可能会过滤此类流量,例如在学校或大学。
对网络和路由有基本的了解(例如,听说过 BGP、IGP、转发,并愿意配置 BGP 路由器,如 Quagga 或 Bird)
以上资料来自DN42官方
我们建议你以下所有流程都在unix类系统下进行(例如Centos,Ubuntu,debian,openwrt,MacOS等)
因为用到的软件和秘钥对unix类系统比较友好。当然这不是强制要求,但过程中发生奇怪情况请自行负责。
请注意:建立中国大陆到中国大陆以外的跨境 VPN 连接可能违反法律。请自行衡量其中的风险。
我不提供中国大陆节点与中国大陆以外的服务器进行任何形式的隧道连接。
注册流程
注册流程非常繁琐,如果顺利的话也需要一天左右才能注册成功获得ip块as号。这是因为DN42仿照真实的ASN号和IP注册而创造出来的流程,就是为了更加真实的模拟真实互联网。
以下流程基于2023.08.01,但由于注册流程可能会随着DN42流程而改变,建议每一步都对照官方注册流程作为参考。
DN42 官方 Wiki 的注册流程
1.首先去(https://git.DN42.dev/)注册一个账号,让你有权限进行操作。
2.打开(https://git.DN42.dev/DN42/registry),这是一个官方存放所有DN42成员信息的仓库。
3.点击右上角fork或者派生,克隆一份到自己的仓库下。
4.这时候需要切换到自己的仓库下的registry,并且clone到本地。
> 以下是我的注册信息,仅供参考。您可以复制代码,但请将我的信息全部修改为你的信息。
git clone https://git.DN42.dev/kiyomi/registry.git
输入完上述指令后可能需要输入git.DN42.dev的账号密码,按照你注册时候的信息输入即可。
1
2
3
4
5
6
7
8
9
10
11
12[root@sea-node-jvav DN42b]# git clone https://git.DN42.dev/kiyomi/registry.git
正克隆到 'registry'...
Username for 'https://git.DN42.dev': kiyomi
Password for 'https://kiyomi@git.DN42.dev':
remote: Enumerating objects: 102917, done.
remote: Counting objects: 100% (102917/102917), done.
remote: Compressing objects: 100% (34974/34974), done.
remote: Total 102917 (delta 72999), reused 97399 (delta 67869), pack-reused 0
接收对象中: 100% (102917/102917), 15.34 MiB | 10.35 MiB/s, done.
处理 delta 中: 100% (72999/72999), done.
[root@sea-node-jvav DN42b]# ls
registry看见上述done字样,那就代表拉取已经成功,可以进行下一步操作了。
首先在
data/mntner/
目录创建一个[名称]-MNT
文件- 上述的
[名称]
是需要自行创建,最好不要与仓库内现有的名称相同,例如我的叫KIYOMI-MNT
,之后下面创建所有的文件,都需要统一使用该名称
注意:所有文件的缩进都是固定的,请勿用空格或Tab缩进代替,可以前往官方wiki复制模板。以下是我的注册信息,仅供参考。您可以复制代码,但请将我的信息全部修改为你的信息。
1
2
3
4
5
6mntner: KIYOMI-MNT
admin-c: KIYOMI-DN42
tech-c: KIYOMI-DN42
mnt-by: KIYOMI-MNT
auth: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFxVANr+Srl leijiajie.ljj@qq.com
source: DN42
下面是文件各项的含义 mntner
:即 maintainer(维护者),说明这个账户的名称,与文件名相同。admin-c
:即 admin contact(管理员联系信息),需要指向后续创建的 person 文件,一般为 [名称]-DN42。tech-c
:即 tech contact(技术员联系信息),需要指向后续创建的 person 文件,一般也为 [名称]-DN42。mnt-by
:即 maintain by(由谁维护),指向这个账户本身,一般为 [名称]-MNT。source
:默认填 DN42。auth
:你的个人认证信息。只能在 GPG 公钥和 SSH 公钥中二选一,下面将会详细介绍两种秘钥的生成方式。
注意是GPG和SSH秘钥二选一,只需要选择其中一个对应下面教程即可,当然你做两个秘钥也不是不行。remarks
:备注,可以不填。
这部分因为过程繁琐,为了简洁本页教程,所有请传送到另一篇文章查看DN42的GPG和SSH秘钥对生成与部署
- 上述的
第二个文件是代表你个人信息的文件,在
data/person
文件夹下创建一个 [名称]-DN42 的文件,例如我的就是KIYOMI-DN42
。以下是我的注册信息,仅供参考。您可以复制代码,但请将我的信息全部修改为你的信息。
1
2
3
4
5
6person: Kiyomi
e-mail: leijiajie.ljj@qq.com
contact: telegram:K1roto
nic-hdl: KIYOMI-DN42
mnt-by: KIYOMI-MNT
source: DN42
下面是文件各项的含义person
:你的名称。e-mail
:你的邮箱。contact
:你的联系方式,例如 IRC、Telegram 等。nic-hdl
:NIC handle,指向文件本身,与文件名相同,[名称]-DN42。mnt-by
:maintain by(由谁维护),指向你之前的 mntner 文件名称,[名称]-MNT。source
:默认填 DN42。
接下来就是到创建AS号的注册文件了,需要在4242420000 - 4242423999之间挑选一个且不能与仓库内现有的AS号相同,当然也不会那么残忍的让你一个个去试,这里有一个工具,能让你更快的找到空闲的AS号和IP块DN42 Free Explorer。找到一个合适的ASN号之后,在
data/aut-num/
目录下创建名为”AS号”的文件,例如我的文件就是AS4242421350
,此文件名需要根据自己挑选的AS号填写。以下是我的注册信息,仅供参考。您可以复制代码,但请将我的信息全部修改为你的信息。
1
2
3
4
5
6
7aut-num: AS4242421350
as-name: KIYOMI-AS
descr: Peer with me at leijiajie.ljj@qq.com
admin-c: KIYOMI-DN42
tech-c: KIYOMI-DN42
mnt-by: KIYOMI-MNT
source: DN42
下面是文件各项的含义aut-num
:AS 号。as-name
:AS 的名称,一般只在 DN42 的一些网络结构示意图中看到。可以设置为 [名称]-AS。descr
:AS 简介,一般只在结构图中看到,随意填写。admin-c
:admin contact(管理员联系信息),指向你的 person 文件,[名称]-DN42。tech-c
:tech contact(技术员联系信息),指向你的 person 文件,[名称]-DN42。mnt-by
:maintain by(由谁维护),指向你之前的 mntner 文件,[名称]-MNT。source
:默认填 DN42。
这一步是挑选IPV4地址块的环节了,首先去DN42 Free Explorer,挑选到自己喜欢的V4地址块后,在
data/inetnum
目录下创建对应文件,例如我的文件是172.20.39.80_28
,此文件名需要根据自己挑选的地址块填写。- 如果你的服务器和设备只有6台,且打算小规模做实验的玩家,只需要申请/29就够了,其次是/28。
- 与多人peer不需要额外的IP,只用相同IP即可,所以无需额外IP。
- 你也可以申请 /27,但你能直接申请的最大地址块是 /26。
- 请勿直接申请/24等巨大地址块,如果你确实需要那么多地址(例如设备很多超过62台),请联系管理员或者官方频道邮箱说明情况。
- 和公网一样,在DN42当中IPv4地址一样珍贵。
以下是我的注册信息,仅供参考。您可以复制代码,但请将我的信息全部修改为你的信息。
1
2
3
4
5
6
7
8
9
10
11inetnum: 172.20.39.80 - 172.20.39.95
netname: KIYOMI-IPV4
remarks: Peer with me at leijiajie.ljj@qq.com
descr: Peer with me at leijiajie.ljj@qq.com
country: CN
admin-c: KIYOMI-DN42
tech-c: KIYOMI-DN42
mnt-by: KIYOMI-MNT
status: ASSIGNED
cidr: 172.20.39.80/28
source: DN42
下面是文件各项的含义inetnum
:你的这个地址块的范围,如果你不会算,那么可以根据你的地址块前后的用户推出,或者直接用 IP 地址计算器。netname
:你的这个地址块的名称,没什么用,随便取(但一般建议保持 [名称]-IPV4 格式)。remarks
:简介,随便写。descr
:简介,随便写。country
:国家代号。admin-c
:admin contact(管理员联系信息),指向你的 person 文件,[名称]-DN42。tech-c
:tech contact(技术员联系信息),指向你的 person 文件,[名称]-DN42。mnt-by
:maintain by(由谁维护),指向你之前的 mntner 文件,[名称]-MNT。status
:默认为 ASSIGNED。cidr
:以 CIDR 方式表示你的地址块。source
:默认填 DN42。
注册完IP就到了注册route对象了,在
data/route
文件夹创建对应文件,例如我的文件名是172.20.39.80_28
,这个名字跟上面的文件名是一样的。以下是我的注册信息,仅供参考。您可以复制代码,但请将我的信息全部修改为你的信息。
1
2
3
4
5route: 172.20.39.80/28
origin: AS4242421350
max-length: 28
mnt-by: KIYOMI-MNT
source: DN42
下面是文件各项的含义route
:地址块。descr
:简介,随便写。- ``origin`:填写你的 AS 编号。
mnt-by
:maintain by(由谁维护),指向你之前的 mntner 文件,[名称]-MNT。source
:默认填 DN42。
这一步是可选的,但我建议你最好还是注册一个IPv6,和v4一样先到DN42 Free Explorer随机挑选一个自己喜欢的v6地址块,然后在
data/inet6num
文件夹内创建地址所对应文件名的文件,例如我的是fd9e:ed80:8884::_48
。以下是我的注册信息,仅供参考。您可以复制代码,但请将我的信息全部修改为你的信息。
1
2
3
4
5
6
7
8
9
10inet6num: fd9e:ed80:8884:0000:0000:0000:0000:0000 - fd9e:ed80:8884:ffff:ffff:ffff:ffff:ffff
netname: KIYOMI-IPV6
descr: Peer with me at leijiajie.ljj@qq.com
country: CN
admin-c: KIYOMI-DN42
tech-c: KIYOMI-DN42
mnt-by: KIYOMI-MNT
status: ASSIGNED
cidr: fd9e:ed80:8884::/48
source: DN42
下面是文件各项的含义inet6num
:你的这个地址块的范围。IPv6 的范围算起来很简单,从全 0 到全 f。netname
:你的这个地址块的名称(但建议保持 [名称]-IPV6 格式)。remarks
:简介,随便写。descr
:简介,随便写。country
:你的国家代号。admin-c
:admin contact(管理员联系信息),指向你的 person 文件,[名称]-DN42。tech-c
:tech contact(技术员联系信息),指向你的 person 文件,[名称]-DN42。mnt-by
:maintain by(由谁维护),指向你之前的 mntner 文件,[名称]-MNT。status
:默认为 ASSIGNED。cidr
:以 CIDR 方式表示你的地址块。source
:默认填 DN42。
注册完v6,到创建一个route6对象了,在
data/route6
创建一个跟上面文件名一样的文件,例如我的是fd9e:ed80:8884::_48
。以下是我的注册信息,仅供参考。您可以复制代码,但请将我的信息全部修改为你的信息。
1
2
3
4
5
6route6: fd9e:ed80:8884::/48
descr: Peer with me at leijiajie.ljj@qq.com
origin: AS4242421350
max-length: 48
mnt-by: KIYOMI-MNT
source: DN42
下面是文件各项的含义route6
:地址块。descr
:简介,随便写。origin
:填写你的 AS 编号。mnt-by
:maintain by(由谁维护),指向你之前的 mntner 文件,[名称]-MNT。source
:默认填 DN42。
到这一步已经创建完所有文件了,接下来我们到仓库根目录
registry
下执行git add .
,然后再执行git commit -S
。如果执行完
git commit -S
之后出现以下问题,没有让你输入密码就直接跳过,请按照我下面的提示操作。如果执行完后出现输入密码界面,请输入密码后回车即可。1
2
3
4
5
6
7
8
9
10[root@sea-node-jvav registry]# git commit -S
您需要输入密码,才能解开这个用户的私钥:“kiyomi <leijiajie.ljj@qq.com>”
4096 位的 RSA 密钥,钥匙号 A4161238,建立于 2023-07-03
gpg: 用户取消
gpg: “BF640B7B167A28DB99BAC3057681D6B9A4161238”已跳过:操作已取消
gpg: signing failed: 操作已取消
error: gpg 无法为数据签名
fatal: 无法写提交对象如果你卡在上一步,出现上面提示时我的解决办法是,直接执行
gpg --detach-sign
,这时候会让你输入密码,输入之后可能会一直卡着没有下一步,等待1分钟左右按CTRL+C
之后再执行git commit -S
即可,如果还是显示以上信息可以继续尝试这一步操作,并等待时间久一点再ctrl+c退出。
之后就可以
git push -f
上到仓库啦。
如果你之前已经commit过或者已经push过到仓库,就得使用官方的一个脚本去合并为一次commit
执行脚本在registry
目录下的./squash-my-commits
,之后再执行git push -f
推送到仓库即可。
- 回到 dn42/registry ,创建一个合并请求,之后会有
pipeline
和schema-checker
两个机器人帮你检查文件信息是否有错,如果有错误请修改后重复教程的第8步骤操作,也因为已经commit过,所以每次修改后需要执行./squash-my-commits
脚本再push。
- 如果你在Windows下编写文件再复制到Linux环境,可能会出现奇怪问题,这时候使用
registry
目录下的./fmt-my-stuff
脚本检查,或者直接把模板复制到Linux环境进行修改。 - 也因为检查的是两个机器人,有时候避免不了出现BUG,这时候可以请求管理员评审,通常可以找
lare
或者burble
。只要你错的不离谱,他们都会很好心的辅助你排除错误。
- 如果上面的合并请求通过了,恭喜你完成了dn42的注册!下面可以开始部署了。
部署流程
我的部署教程基于wireguard + bird2,因为我发现peer的对象基本上都是使用wireguard比较多其次是openvpn,但鉴于openvpn部署麻烦及没那么多人使用,所以本教程还是决定使用wireguard进行隧道连接。
- 以下教程peer对象为我自己,下面是我的基础信息。
以下是我的信息,仅供参考。您可以复制代码,但请将我的信息全部修改为你的信息。
1
2
3
4
5
6
7AS Number: 4242421350
Clearnet Domain: sea.jvav.tech
Wireguard port: 3981
Wireguard public key: VCYdDHIKBDfHe+drn2CG6pw56HBzDeoRt6wAx6GUg0Y=
DN42 IPv4: 172.20.39.81
DN42 IPv6: fd9e:ed80:8884::1
DN42 IPv6 Link-local: fe80::1350
首先执行下面指令,来开启转发及关闭内核rp_filter的严格模式。
1
2
3
4echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
echo "net.ipv6.conf.default.forwarding=1" >> /etc/sysctl.conf
echo "net.ipv6.conf.all.forwarding=1" >> /etc/sysctl.conf
sysctl -p1
2
3echo "net.ipv4.conf.default.rp_filter=0" >> /etc/sysctl.conf
echo "net.ipv4.conf.all.rp_filter=0" >> /etc/sysctl.conf
sysctl -p安装Wireguard和Bird2
yum install -y wireguard-tools bird2
- 如果你用的是OpenVZ或者LXC的VPS,那只能用其他隧道软件代替,不建议使用wireguard-go代替。
Wireguard隧道创建
首先执行wg genkey | tee privatekey | wg pubkey > publickey
,生成公钥和私钥,秘钥可以重复使用,即多个wireguard隧道使用同一个秘钥。
4.然后去 /etc/wireguard
目录,创建wireguard的配置文件。例如我的就是 Jvav-sea.conf
,其实这个命名只需要.conf结尾即可,.conf前的名字就是该隧道接口名字。vim /etc/wireguard/Jvav-sea.conf
5.然后就可以编写wireguard的标准配置啦。
1 |
|
下面是文件各项的含义
ListenPort
本机wg监听端口,通常需要提供给peer对方。在DN42里常用对方的后五位ASN作为监听端口号,例如你跟我peer就需要填写21350作为端口号。PrivateKey
第三步生成的秘钥中的私钥。PostUp
这个是生效配置时候附带执行的命令,通常用来写一条通往对方的静态路由。Table
是否覆盖路由表,这个一定要关掉 不然会将你公网路由也给覆盖掉直接断网。Endpoint
对方的连接点,后面需要附带端口。当然按照DN42的常例,跟ListenPort的含义一样,通常是我方的ASN后五位作为端口号。PublicKey
这里填写对方公钥。AllowedIP
允许通过隧道的IP段。
6.修改bird.conf配置文件vim /etc/bird/bird.conf
,直接删除所有替换为DN42官方提供的模板。
- 删除原有配置,复制官方模板,需要修改的地方如下
以下是我的信息,仅供参考。您可以复制代码,但请将我的信息全部修改为你的信息。
1
2
3
4
5
6
7
8
9
10
11################################################
# Variable header #
################################################
define OWNAS = 4242421350;
define OWNIP = 172.20.39.85;
define OWNIPv6 = fd9e:ed80:8884::5;
define OWNNET = 172.20.39.80/28;
define OWNNETv6 = fd9e:ed80:8884::/48;
define OWNNETSET = [172.20.39.80/28+];
define OWNNETSETv6 = [fd9e:ed80:8884::/48+];
7.根据官方ROA设置教程,设置认证更新,但因为我们使用的是bird2,所以官方教程不一定准确,请使用以下命令。
- 打开
crontab -e
计划任务,复制两条curl指令进去并保存。1
2*/15 * * * * curl -sfSLR -o/etc/bird/roa_dn42_v6.conf -z/etc/bird/roa_dn42_v6.conf https://dn42.burble.com/roa/dn42_roa_bird2_6.conf && /usr/sbin/birdc configure
*/15 * * * * curl -sfSLR -o/etc/bird/roa_dn42.conf -z/etc/bird/roa_dn42.conf https://dn42.burble.com/roa/dn42_roa_bird2_4.conf && /usr/sbin/birdc configure - 手动执行一次命令,让其生成两个roa文件。8.新建peer连接,创建
1
2curl -sfSLR -o/etc/bird/roa_dn42_v6.conf -z/etc/bird/roa_dn42_v6.conf https://dn42.burble.com/roa/dn42_roa_bird2_6.conf
curl -sfSLR -o/etc/bird/roa_dn42.conf -z/etc/bird/roa_dn42.conf https://dn42.burble.com/roa/dn42_roa_bird2_4.conf && /usr/sbin/birdc configure/etc/bird/peer
文件夹,在文件夹中生成一个配置文件vim jvav.conf
,jvav.conf
是可以更改其他名字,只要是.conf文件格式就行。
- 写入配置
以下是我的信息,仅供参考。您可以复制代码,但请将我的信息全部修改为你的信息。
下面是文件各项的含义1
2
3protocol bgp jvav-sea from dnpeers {
neighbor fe80::1350 % 'Jvav-sea' as 4242421350;
} jvav-sea
名字、注释fe80::1350 % 'Jvav-sea'
对方的IPv4或者IPv6 ULA或者能联系上对方的地址(参考第5点) % 跟对方连通的隧道接口名称(可参考部署流程第4点的命名)4242421350
对方的ASN
如果需要v4和v6分开,需要在配置里面复制粘贴多4行代码并填写不同的IP地址
9.确认配置,检查是否连通。
- 输入命令
birdc c
,确认配置生效。1
2
3
4[root@idc-do-sea1 ~]# birdc c
BIRD 2.13.1 ready.
Reading configuration from /etc/bird.conf
Reconfigured - 检查bgp是否已经Established
1
2
3
4
5
6
7
8
9
10
11[root@idc-do-sea1 ~]# birdc s p
BIRD 2.13.1 ready.
Name Proto Table State Since Info
device1 Device --- up 2023-09-13
static1 Static dn42_roa up 2023-09-13
static2 Static dn42_roa_v6 up 2023-09-13
kernel1 Kernel master6 up 2023-09-13
kernel2 Kernel master4 up 2023-09-13
static3 Static dn42_roa up 2023-09-13
static4 Static dn42_roa_v6 up 2023-09-13
jvav-sea BGP --- up 2023-09-13 Established - 检查是否已接收到路由
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61[root@virmach-us-lax:~# birdc show protocols all kiyomiBGP21
BIRD 2.0.7 ready.
Name Proto Table State Since Info
kiyomiBGP21 BGP --- up 2023-11-20 Established
BGP state: Established
Neighbor address: 172.20.39.81
Neighbor AS: 4213500001
Local AS: 4213500002
Neighbor ID: 172.20.39.81
Local capabilities
Multiprotocol
AF announced: ipv4 ipv6
Route refresh
Extended next hop
IPv6 nexthop: ipv4
Extended message
Graceful restart
4-octet AS numbers
Enhanced refresh
Long-lived graceful restart
Neighbor capabilities
Multiprotocol
AF announced: ipv4 ipv6
Route refresh
Extended next hop
IPv6 nexthop: ipv4
Extended message
Graceful restart
4-octet AS numbers
Enhanced refresh
Long-lived graceful restart
Session: external AS4
Source address: 172.20.39.82
Hold timer: 215.321/240
Keepalive timer: 48.309/80
Channel ipv4
State: UP
Table: master4
Preference: 100
Input filter: ACCEPT
Output filter: ACCEPT
Routes: 681 imported, 281 exported, 406 preferred
Route change stats: received rejected filtered ignored accepted
Import updates: 47569 0 0 1035 46534
Import withdraws: 599 0 --- 30 569
Export updates: 46247 28850 0 --- 17397
Export withdraws: 367 --- --- --- 10088
BGP Next hop: 172.20.39.82
Channel ipv6
State: UP
Table: master6
Preference: 100
Input filter: ACCEPT
Output filter: ACCEPT
Routes: 777 imported, 256 exported, 521 preferred
Route change stats: received rejected filtered ignored accepted
Import updates: 71424 0 0 352 71072
Import withdraws: 1314 0 --- 40 1274
Export updates: 64724 44695 0 --- 20029
Export withdraws: 840 --- --- --- 10992
BGP Next hop: 172.20.39.82 - 使用ping和traceroute检查连通性
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18root@china-telecom-gz2:~# ping 172.20.0.53
PING 172.20.0.53 (172.20.0.53): 56 data bytes
64 bytes from 172.20.0.53: seq=0 ttl=59 time=459.521 ms
64 bytes from 172.20.0.53: seq=1 ttl=59 time=460.121 ms
64 bytes from 172.20.0.53: seq=2 ttl=59 time=460.459 ms
64 bytes from 172.20.0.53: seq=3 ttl=59 time=466.418 ms
--- 172.20.0.53 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 459.521/461.629/466.418 ms
root@china-telecom-gz2:~# traceroute 172.20.0.53
traceroute to 172.20.0.53 (172.20.0.53), 30 hops max, 46 byte packets
1 172.23.91.121 (172.23.91.121) 28.834 ms 27.571 ms 27.694 ms
2 172.21.100.188 (172.21.100.188) 37.925 ms 38.138 ms 38.160 ms
3 172.21.100.200 (172.21.100.200) 66.407 ms 65.627 ms 66.379 ms
4 172.21.100.192 (172.21.100.192) 218.353 ms 218.831 ms 218.893 ms
5 172.20.14.42 (172.20.14.42) 459.677 ms 463.262 ms 457.824 ms
6 172.20.0.53 (172.20.0.53) 452.830 ms 460.043 ms 458.010 ms
- 至此DN42整体流程已经完成,如果后续需要peer更多玩家,只需要重复wireguard(第5点)和bird2(第8点之后)的配置创建即可。
2023.09.27 更新中
特别鸣谢
感谢Lan Tian大佬的文章,让我在探索DN42的路上少了很多麻烦,也让我在写这篇文章的时候多了很多指引和思路 DN42 实验网络介绍及注册教程(2022-12 更新)