去中心化网络 42(decentralized network 42,简称为dn42),是一个去中心化、端到端加密的网络,它通过使用 VPN 和软件/硬件的边界网关协议进行构建。
欢迎大家和我 PYPeer ~ 详情请访问 https://dn42.blw.moe
简介

简单来说,DN42 就是一个大型的 VPN 网络,通过各种隧道以及 BGP 协议将世界各地的用户连接在一起,在这个网络中,你可以尽情的使用 BGP,Anycast 等技术,而不会对公共互联网造成损失。
为了能将DN42与公共互联网区分开来,DN42 内部使用的资源均为保留资源,分别为:
IPv4: 172.20.0.0/14
IPv6: fd00::/8
AS号段: AS4242420000-AS4242423999
加入 DN42 网络
注册 DN42 对象
想要加入 DN42 网络,必须要注册自己的 ASN 和 IP。因为 DN42 修改了注册方式,全部改由 Git 注册,所以需要有少量的 Git 知识才能继续。
Git 仓库地址: https://git.dn42.us/dn42/registry
先使用 git clone
指令将仓库 Clone 到本地,之后按照以下步骤操作:
1. 创建 Maintainer
在 /data/mntner
目录下创建 MNT 对象,文件名为 你想起的名字-MNT
例如/data/mntner/BLING-MNT
(所有字母均需要大写)
内容如下
mntner: BLING-MNT
descr: XXXXXXXX
auth: pgp-fingerprint XXXXXXXXXXXX
admin-c: PAIZI-DN42
tech-c: PAIZI-DN42
mnt-by: BLING-MNT
source: DN42
其中,mntner
和 mnt-by
两个字段填写你在目录中创建的对象名,admin-c
和 tech-c
分别是管理员和维护者的对象,两者可以统一,将在下文中创建,格式是 你想起的名字-DN42
。descr
字段为 Maintainer 的简介,auth 字段为 PGP 密钥指纹,用于验证未来可能需要的各种操作,强烈推荐加入。
2. 创建 Person
在 /data/person
目录下创建 Person 对象,文件名为 你想起的名字-DN42
例如/data/person/PAIZI-DN42
内容如下
person: BlingWang
contact: xxx@xxx.xx
contact: Twitter: xxxxxx
contact: Telegram: xxxxxx
nic-hdl: PAIZI-DN42
mnt-by: BLING-MNT
source: DN42
其中,person
字段填写你的姓名或昵称,contact
字段填写你的联系方式,可多行,每行填入一个 Email 或其他社交媒体等联系方式。nic-hdl
字段与你设置的文件名应保持一致, mnt-by
字段填写上文所创建的 MNT 对象。
3. 创建Organisation(可选)
提示:Organisation为组织信息,如果你想以个人身份加入 DN42,则不需要进行这一步。
在 /data/organisation
目录下创建 Organisation 对象,文件名为 ORG-你想起的名字
例如/data/organisation/ORG-BLINGNETWORK
内容如下
organisation: ORG-BLINGNETWORK
org-name: xxxxxxx
e-mail: xxx@xxx.xx
www: https://xxxx.xx
admin-c: PAIZI-DN42
tech-c: PAIZI-DN42
mnt-by: BLING-MNT
source: DN42
其中,organisation
字段填写创建的文件名,org-name
字段填写你的组织名称,email
字段填写组织的 Email, www
字段填写组织的网站,admin-c
和 tech-c
分别是管理员和维护者的对象,可以统一填写上文创建的 Person 对象, mnt-by
字段填写上文所创建的 MNT 对象。
4. 创建 AS 号
在 /data/aut-num
目录下创建文件,文件名是你的 AS 号,例如 AS4242420233
AS 号可能会出现重复的情况,可以在 http://ix.ucis.nl/dn42/as.php 查询已注册的号码,防止撞车。
内容如下
aut-num: AS4242420212
as-name: BLING-AS
descr: XXXXXXXXXXXXXX
admin-c: PAIZI-DN42
tech-c: PAIZI-DN42
mnt-by: BLING-MNT
source: DN42
其中,aut-num
字段填写你文件名所填写的 AS 号,as-name
字段填写 AS 的名称, descr
字段填写 AS 的描述,admin-c
和 tech-c
分别是管理员和维护者的对象,可以统一填写上文创建的 Person 对象, mnt-by
字段填写上文所创建的 MNT 对象。
5. 申请 IPv4 地址
DN42 默认分配/27的 IPv4,对一般用户来说/28已经非常够用,建议不要申请太多不需要的IP,避免浪费。
可以在 https://dn42.us/peers/free 中找到可用的 IPv4 地址段
在 /data/inetnum
目录下创建文件,文件名是你找到的 IP 段,例如 172.20.20.0_27
内容如下
inetnum: 172.20.20.0 - 172.20.20.31
netname: XXXXXXX
descr: XXXXXXX
country: CN
admin-c: PAIZI-DN42
tech-c: PAIZI-DN42
mnt-by: BLING-MNT
status: ASSIGNED
cidr: 172.20.20.0/27
source: DN42
其中,inetnum
字段为你的IP段展开后的IP区间,netname
为IP段的名称,descr
字段为IP段的简介,country
字段为 ISO 3166-1 国家代号,admin-c
和 tech-c
分别是管理员和维护者的对象,可以统一填写上文创建的 Person 对象, mnt-by
字段填写上文所创建的 MNT 对象,cidr
字段填写IP段的CIDR写法,如 172.20.20.0_27
写作 172.20.20.0/27
。
然后在 /data/route
目录下创建文件,文件名仍然是你找到的 IP 段,例如 172.20.20.0_27
内容如下
route: 172.20.20.0/27
origin: AS4242420212
mnt-by: BLING-MNT
source: DN42
其中,route
字段填写 IP 段的 CIDR 写法,如 172.20.20.0/27
,origin
字段填写上文中申请的 AS 号,mnt-by
字段填写上文所创建的 MNT 对象。
6. 申请 IPv6 地址
申请IPv6地址的方法和IPv4十分相似,只是IPv6的地址需要完全随机生成,而不是自己选择。
访问 https://simpledns.com/private-ipv6 ,可以生成一个随机的IPv6 IP段。
在 /data/inet6num
目录下创建文件,文件名是你找到的 IP 段,例如 fd0c:775d:80f5::_48
内容如下
inet6num: fd0c:775d:80f5:0000:0000:0000:0000:0000 - fd0c:775d:80f5:ffff:ffff:ffff:ffff:ffff
netname: XXXXXXX
descr: XXXXXXX
country: CN
admin-c: PAIZI-DN42
tech-c: PAIZI-DN42
mnt-by: BLING-MNT
status: ASSIGNED
cidr: fd0c:775d:80f5::/48
source: DN42
其中,inet6num
字段为你的IP段展开后的IP区间,netname
为IP段的名称,descr
字段为IP段的简介,country
字段为 ISO 3166-1 国家代号,admin-c
和 tech-c
分别是管理员和维护者的对象,可以统一填写上文创建的 Person 对象, mnt-by
字段填写上文所创建的 MNT 对象,cidr
字段填写IP段的CIDR写法,如 fd0c:775d:80f5::_48
写作 fd0c:775d:80f5::/48
。
然后在 /data/route6
目录下创建文件,文件名仍然是你找到的 IP 段,例如 fd0c:775d:80f5::_48
内容如下
route: fd0c:775d:80f5::/48
origin: AS4242420212
mnt-by: BLING-MNT
source: DN42
其中,route
字段填写 IP 段的 CIDR 写法,如 fd0c:775d:80f5::/48
,origin
字段填写上文中申请的 AS 号,mnt-by
字段填写上文所创建的 MNT 对象。
创建完所有的文件后便可以进行 Commit 操作,注意 Commit 的时候要使用上文所填写的PGP密钥进行签名
git commit -S -m 'Example Commit'
git push
成功 Push 之后提交 Pull Request,DN42 管理员将在 24h 内将你的信息加入数据库,届时就可以和其他用户 Peer 了。
通过隧道与其他用户连接
TODO
这步应该没啥可以讲的吧,通过 OpenVPN,Wireguard,IPsec 等工具和其他用户建立隧道,成功互联即可。
使用 Bird 创建 BGP 宣告
TODO
发表评论