<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>WireGuard on Sisy's Blog</title><link>https://blog.sisy.cc/tags/wireguard/</link><description>Recent content in WireGuard on Sisy's Blog</description><generator>Hugo -- gohugo.io</generator><language>zh</language><lastBuildDate>Sun, 22 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.sisy.cc/tags/wireguard/index.xml" rel="self" type="application/rss+xml"/><item><title>从零开始接入 DN42 网络 - 1: 注册与身份认证</title><link>https://blog.sisy.cc/p/%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8B%E6%8E%A5%E5%85%A5-dn42-%E7%BD%91%E7%BB%9C-1-%E6%B3%A8%E5%86%8C%E4%B8%8E%E8%BA%AB%E4%BB%BD%E8%AE%A4%E8%AF%81/</link><pubDate>Sun, 22 Mar 2026 00:00:00 +0000</pubDate><guid>https://blog.sisy.cc/p/%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8B%E6%8E%A5%E5%85%A5-dn42-%E7%BD%91%E7%BB%9C-1-%E6%B3%A8%E5%86%8C%E4%B8%8E%E8%BA%AB%E4%BB%BD%E8%AE%A4%E8%AF%81/</guid><description>&lt;img src="https://blog.sisy.cc/p/%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8B%E6%8E%A5%E5%85%A5-dn42-%E7%BD%91%E7%BB%9C-1-%E6%B3%A8%E5%86%8C%E4%B8%8E%E8%BA%AB%E4%BB%BD%E8%AE%A4%E8%AF%81/img/cover.png" alt="Featured image of post 从零开始接入 DN42 网络 - 1: 注册与身份认证" /&gt;&lt;h2 id="前言"&gt;前言
&lt;/h2&gt;&lt;p&gt;一开始听说 BGP 还真不是从大黑书里，而是 MoonWX 玩 DN42 的时候一直给我安利。这下不得不玩一玩了。简单了解下来，DN42 确实是一个很适合学习真正的公网环境是如何运行的&lt;a class="link" href="https://zh.wikipedia.org/wiki/%e8%a6%86%e7%9b%96%e7%bd%91%e7%bb%9c" target="_blank" rel="noopener"
 &gt;叠加网络&lt;/a&gt;。DN42 趣味在于调试的过程，不过接入这一块基本上也就是按照教程走，顺带在接入过程中学习一些网络知识，除了对等连接 (Peer) 这一步需要费些功夫配置。&lt;/p&gt;
&lt;p&gt;本文大量参考了 DN42 的官方文档和一些社区资源，尤其是 &lt;a class="link" href="https://dn42.dev/wiki/Main_Page" target="_blank" rel="noopener"
 &gt;DN42 Wiki&lt;/a&gt; 和&lt;a class="link" href="https://lantian.pub/article/modify-website/dn42-experimental-network-2020.lantian/" target="_blank" rel="noopener"
 &gt;蓝天大佬的博客文章&lt;/a&gt;。&lt;/p&gt;
&lt;h2 id="大致思路"&gt;大致思路
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;要接入一个网络，首先你需要在网络内有一个“身份”，包含一个 ASN（自治系统编号）、一个 IPv4 地址段（也可包含 IPv6 地址段）、该 ASN 的管理者、能够证明身份的通信凭证（auth key 之类）、联系方式等。&lt;/li&gt;
&lt;li&gt;以上身份中的大多数内容是由自己来选择和定义的，但是需要先提交申请，并被批准，整个网络才会认可你的身份。&lt;/li&gt;
&lt;li&gt;在 DN42 中，没有真正意义上的“接入点”，你可以在任何地方通过 VPN（如 WireGuard）连接到 DN42 网络中的其他节点来实现接入。这一步即是寻找其他节点并建立对等连接（Peer），需要配置好隧道软件 (VPN) 和 BGP 软件相关的设置。&lt;/li&gt;
&lt;li&gt;同时找很多个人 Peer，这可以增加你网络的稳定性，避免某个节点临时故障导致你和 DN42 完全失联。并且，多 Peer 还能够提高其他节点的访问速度，提高网络的冗余性和整体性能。&lt;/li&gt;
&lt;li&gt;后续的性能优化和安全配置等。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="注册"&gt;注册
&lt;/h2&gt;&lt;p&gt;注册的过程其实就是向 DN42 的身份信息 git 仓库提交 PR 的过程，各个信息配置文件的格式和内容都有严格的要求，被批准合并后就算拥有了自己管辖的 ASN 和 IP 地址段之类的了。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;首先去 &lt;a class="link" href="https://git.dn42.dev" target="_blank" rel="noopener"
 &gt;https://git.dn42.dev&lt;/a&gt; 注册一个账户，这是 DN42 通过 Gitea 提供的模板自部署的 DevOps 平台，类似于 GitHub。&lt;/li&gt;
&lt;li&gt;所有 DN42 成员的账户信息就存放在仓库 &lt;a class="link" href="https://git.dn42.dev/dn42/registry" target="_blank" rel="noopener"
 &gt;dn42/registry&lt;/a&gt; 里。为了 PR，先 fork 一份到自己的账户。&lt;/li&gt;
&lt;li&gt;Clone 已经 fork 的仓库到本地。&lt;/li&gt;
&lt;li&gt;接下来就是创建并编辑各个自己所属的配置文件，提交 commit 后创建 PR 了。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;需要注意 ASN 和 IP 地址段需要自己挑选空缺的，而且 IPv6 地址极不推荐自己定义地址段前缀，而是通过蓝天大佬提到的随机生成前缀的工具来生成，以符合 RFC4193 中对 IPv6 唯一本地地址的要求。下面列举所有初次注册时必须提交的 8 个文件（注意根据配置不同，可能还需要第 9 个文件 &lt;code&gt;data/dns/[昵称].dn42&lt;/code&gt;）：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;data/mntner/[昵称]-MNT&lt;/code&gt;：代表你的账户，用于验证后续操作&lt;/li&gt;
&lt;li&gt;&lt;code&gt;data/person/[昵称]-DN42&lt;/code&gt;：代表你个人的信息，包含昵称、邮箱等&lt;/li&gt;
&lt;li&gt;&lt;code&gt;data/aut-num/[你的ASN]&lt;/code&gt;：代表你想申请的 ASN 号，包含 ASN 号、AS 简介、管理者、联系方式等&lt;/li&gt;
&lt;li&gt;&lt;code&gt;data/inetnum/[地址段前缀]_[地址块大小]&lt;/code&gt;：代表你想申请的 IPv4 地址段，包含地址段前缀、地址块大小、管理者、联系方式等&lt;/li&gt;
&lt;li&gt;&lt;code&gt;data/route/[地址段前缀]_[地址块大小]&lt;/code&gt;：IPv4 地址段的路由信息，包含地址段前缀、地址块大小、AS 路由（即授权哪个 AS 使用这个地址段）等&lt;/li&gt;
&lt;li&gt;&lt;code&gt;data/inet6num/[地址段前缀]_[地址块大小]&lt;/code&gt;：代表你想申请的 IPv6 地址段（本文件是可选的，且如果不添加 IPv6 地址段，后续 &lt;code&gt;data/route6&lt;/code&gt; 中的文件也可以不添加）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;data/route6/[地址段前缀]_[地址块大小]&lt;/code&gt;：IPv6 地址段的路由信息&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;各个配置文件的内容和其解释可以直接参考蓝天大佬的博客的&lt;a class="link" href="https://lantian.pub/article/modify-website/dn42-experimental-network-2020.lantian/#%e6%b3%a8%e5%86%8c%e8%bf%87%e7%a8%8b" target="_blank" rel="noopener"
 &gt;注册过程部分&lt;/a&gt;。描述和原理他已经讲的很清楚了，这里不作赘述。另外，一个好的学习方法是直接参考其他已经成功 merge 的 PR 或参考仓库中已经较为成熟的配置文件来写自己的部分。&lt;/p&gt;
&lt;p&gt;这里补充一些蓝天大佬没提到的东西，以及一些需要注意的细节：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提交 commit 所使用的签名密钥必须要包含在 &lt;code&gt;data/mntner/[昵称]-MNT&lt;/code&gt; 文件中的 &lt;code&gt;auth&lt;/code&gt; 字段中。该字段的内容是用来验证后续操作的凭证，所以本次 PR 中的 commit 需要使用该密钥进行签名，使自动化验证工具能够确认你的身份拥有对该 ASN 和 IP 地址段的管理权限，并批准你的 PR。&lt;/li&gt;
&lt;li&gt;寻找空闲的 IPv4 地址段时，蓝天提到了两个可用的网址，但是 &lt;a class="link" href="https://dn42.us/peers/free" target="_blank" rel="noopener"
 &gt;https://dn42.us/peers/free&lt;/a&gt; 最后一次更新为 2025 年 10 月末，已经没有什么参考价值了。&lt;/li&gt;
&lt;li&gt;对于 IPv4，DN42 一般建议申请的合适的地址块大小为 /27（即包含 32 个地址的块）&lt;/li&gt;
&lt;li&gt;对于 IPv6，建议申请 /48 的地址段（即包含 65536 个地址的块）&lt;/li&gt;
&lt;li&gt;v4 和 v6 的 &lt;code&gt;inetnum&lt;/code&gt; (&lt;code&gt;inet6num&lt;/code&gt;) 文件中所配置的 &lt;code&gt;nserver&lt;/code&gt; 为反向 DNS 服务器，如果配置了，那么还需要在 &lt;code&gt;data/dns&lt;/code&gt; 目录下添加一个对应的文件，内容包含反向 DNS 服务器的 IP 地址和主机名等信息。&lt;/li&gt;
&lt;li&gt;一些文件的 &lt;code&gt;remarks&lt;/code&gt; 字段可以添加一些比较美观的备注信息，增加一些个性化的内容，当然这不是必须的。以下展示我从 MoonWX 那里抄来的一个示例 &lt;code&gt;remarks&lt;/code&gt; 字段：&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img alt="remarks of my AS: 2426" class="gallery-image" data-flex-basis="426px" data-flex-grow="177" height="298" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.sisy.cc/p/%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8B%E6%8E%A5%E5%85%A5-dn42-%E7%BD%91%E7%BB%9C-1-%E6%B3%A8%E5%86%8C%E4%B8%8E%E8%BA%AB%E4%BB%BD%E8%AE%A4%E8%AF%81/img/data-aut-num.png" width="529"&gt;&lt;/p&gt;
&lt;p&gt;由于蓝天没有提到第 5 点中的这个 DNS 文件，以下简单给出我这个文件的示例内容：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;span class="lnt"&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-plaintext" data-lang="plaintext"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;domain: sisy.dn42
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;admin-c: SISY-DN42
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tech-c: SISY-DN42
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mnt-by: SISY-MNT
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;nserver: ns1.sisy.dn42 172.23.15.33
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;nserver: ns1.sisy.dn42 fd24:ac8e:9e04::1
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;source: DN42
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;接下来，创建一个带签名的 commit 并提交 PR。PR 的审核过程可能需要一些时间，审核人员会检查你的配置是否符合要求，并且可能会提出一些修改建议。审核通过后，你的 PR 就会被合并到主分支，你就正式成为 DN42 网络的一员了。&lt;/p&gt;
&lt;p&gt;&lt;em&gt;其实感觉这里面最花时间的还是挑选自己喜欢的 ASN 和 IPv4 地址段，，，&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;关于第一个 Peer，暂且先决定放到下一篇里来讲吧。&lt;/p&gt;</description></item></channel></rss>