menu 派兹的小站
more_vert

最近回复

网站统计

其它

大型的去中心化网络-DN42
2019-09-28 | 技术分享 | 4 条评论 | 407 次阅读 | 1254字

去中心化网络 42(decentralized network 42,简称为dn42),是一个去中心化、端到端加密的网络,它通过使用 VPN 和软件/硬件的边界网关协议进行构建。

欢迎大家和我 PYPeer ~ 详情请访问 https://dn42.blw.moe

简介

dn422.png

简单来说,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
discr:              XXXXXXXX
auth:               pgp-fingerprint XXXXXXXXXXXX
admin-c:            PAIZI-DN42
tech-c:             PAIZI-DN42
mnt-by:             BLING-MNT
source:             DN42

其中,mntnermnt-by 两个字段填写你在目录中创建的对象名,admin-ctech-c 分别是管理员和维护者的对象,两者可以统一,将在下文中创建,格式是 你想起的名字-DN42discr 字段为 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-ctech-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 的名称, desce 字段填写 AS 的描述,admin-ctech-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-ctech-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/27origin 字段填写上文中申请的 AS 号,mnt-by 字段填写上文所创建的 MNT 对象。

6. 申请 IPv6 地址

申请IPv6地址的方法和IPv4十分相似,只是IPv6的地址需要完全随机生成,而不是自己选择。

访问 https://simpledns.com/private-ipv6 ,可以生成一个随机的IPv6 IP段。

/data/inetnum6 目录下创建文件,文件名是你找到的 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-ctech-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::/48origin 字段填写上文中申请的 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

文章目录

标签: 网络, 去中心化, BGP, Anycast

已有 4 条评论

    Xinger
    October 17th, 2019 at 09:46 pm

    来康康

      派兹
      派兹 博主
      October 17th, 2019 at 09:48 pm

      海星

    repostone
    September 30th, 2019 at 03:16 pm

    太复杂咯。

      派兹
      派兹 博主
      September 30th, 2019 at 03:18 pm

      ASN和IP段的注册略复杂,Peer的操作和公网BGP是一样的

添加新评论

arrow_forward 下一篇
没有了
© 2019 派兹的小站. Powered by Typecho & MDr.
:D 获取中...
本站已运行 .
brightness_4