I'm starting to provide Chinese / English versions of some posts, switch with the Language menu above. 我开始提供部分文章的中文、英文翻译,请使用顶部语言菜单切换。

含有标签 DN42 的文章

DN42 实验网络介绍及注册教程(2021-05-02 更新)

DN42 全称 Decentralized Network 42(42 号去中心网络),是一个大型、去中心化的 VPN 网络。但是与其它传统 VPN 不同的是,DN42 本身不提供 VPN 出口服务,即不提供规避网络审查、流媒体解锁等类似服务。相反,DN42 的目的是模拟一个互联网。它使用了大量在目前互联网骨干上应用的技术(例如 BGP 和递归 DNS),可以很好地模拟一个真实的网络环境。简而言之,DN42:不适合单纯想要保护隐私、规避网络审查的用户不适合在网内消耗大量流量,例如用于解锁流媒体服务的用户适合想要研究网络技术,练习服务器、路由器等网络设备配置,甚至后续在真实互联网建立 AS 的用户适合拥有真实 AS,但担心自己配置错误广播出错误路由、干掉半个互联网,希望有个地方测试的用户。正因为此,使用 DN42 的门槛比较高。就像在真实互联网中一样,你要扮演一个 ISP(互联网服务提供商),注册自己的个人信息,ASN 号码,IPv4 和 IPv6 的地址池,...

将 nginx 用作 DN42 WHOIS 服务器

在前一篇文章《用 nginx 建立 Gopher 网站》中我提到,用 nginx 提供 Gopher 服务只是魔改的副产物,我原本的计划是将 nginx 魔改成一个 WHOIS 服务器,用于 DN42。这篇文章将介绍详细过程。WHOIS 协议 ¶首先,我们可以找一个 WHOIS 服务器,来观察它都返回了哪些数据。以向 .pub 域名的 WHOIS 服务器查询我的域名信息为例,执行 telnet whois.nic.pub 43:# 输入下面一行并按回车lantian.pub# WHOIS 服务器返回以下信息Domain Name: lantian.pubRegistry Domain ID: c69e5ccf9d834900be26f88fddc5c9e4-DONUTSRegistrar WHOIS Server: whois.dnspod.cnRegistrar URL: https://www.dnspod.cnUpdated Date: 2021-01-07T14:09:11ZCreation Date: 2016-10-23T08:36:41ZRegistry Expiry Date: 2029-10-23T08:36:41ZRegistrar: DNSPod, Inc.# 略过部分内容# 随后 WHOIS 服务器关闭连接和 Gopher 一模一样,一问一答的协议。...
插图

如何引爆 DN42 网络(2020-08-28 更新)

DN42 是一个测试网络,所有人都在帮助所有人。即使你不小心搞砸了,也没有人会指责你。你可以在 DN42 的 IRC 频道,邮件列表或者非官方 Telegram 群组寻求帮助。由于 DN42 是一个实验用网络,其中也有很多新手、小白参与,因此时不时会有新手配置出现错误,而对整个 DN42 网络造成影响,甚至炸掉整个网络。现在,作为一名长者(x),我将教各位小白如何操作才能炸掉 DN42,以及如果你作为小白的邻居(指 Peer 关系),应该如何防止他炸到你。注意:你不应该在 DN42 网络中实际执行这些操作,你应该更加注重对破坏的防御。恶意破坏会导致你被踢出 DN42 网络。本文信息根据 Telegram 群及 IRC 中的真实惨案改编。更新记录 ¶2020-08-27:格式修改,添加完整 IRC 日志,部分内容的中文翻译,添加另一段地址掩码填错的内容,以及 ASN 少了一位的内容。2020-07-13:添加 Registry IPv6 地址段掩码填错的内容,和 Bird 不同协议左右互博的内容。2020-05-30:第一版,...

去除 OpenVPN 的 Stable-privacy IPv6 地址

在我的 VPS 上,OpenVPN 创建的 TAP 网络界面 / 虚拟网卡会带有一个随机生成的 IPv6 地址,scope 为 stable-privacy。这个地址本身是随机生成、用于防止根据 IPv6 地址追踪用户的,但在 DN42 组网时,BGP 握手可能会从这个地址发出(而非设置的 Link-local 地址),然后因为来源地址不符而握手失败。解决方法是对这些 TAP 网络界面通过 sysctl 设置,关闭可能会自动产生地址的几项。可以设置 OpenVPN 让它在创建网络界面时自动运行 sysctl:# 在 OpenVPN 的 conf 文件里加上script-security 2up "/bin/sh -c '/sbin/sysctl -w net.ipv6.conf.$dev.autoconf=0 && /sbin/sysctl -w net.ipv6.conf.$dev.accept_ra=0 && /sbin/sysctl -w net.ipv6.conf.$dev.addr_gen_mode=1'"根据你的 Linux 发行版不同,可能需要调整 /bin/sh 和 /sbin/sysctl 的路径。...

在 DN42 中使用 Docker 建立 Anycast DNS 服务

2020-03-16 提示 ¶本文中的方案已有更新版本:参见《Docker 容器共享网络命名空间,集成 Bird 实现 Anycast 高可用》。建议阅读本文的概念介绍部分及 Bird 的大致配置,配合上文的 Docker 部署方案使用。什么是 Anycast ¶互联网上常用的路由协议 BGP 是这样工作的:我在 DN42 拥有 IP 段 172.22.76.104/29。我通过 BIRD 等 BGP 软件,“宣告” 这台服务器上可以访问到 172.22.76.104/29 这个 IP 段。与我有 Peering 的其它服务器记录下这一条消息:“通过某条路径,走 1 格可以访问到 172.22.76.104/29。” 其它服务器向与它们有 Peering 的服务器继续宣告:“这台服务器距离 172.22.76.104/29 只有 1 格距离。” 以此类推,其余服务器也通过类似的流程,宣布自己与 172.22.76.104/29 有 2 格,3 格,4 格距离…… 所有服务器也都通过距离最短的路径,将数据发送到我的服务器。在这种情况中,只有一台服务器宣布自己是 172.22.76.104/29 的 “源头”。...
插图

在 Traceroute 里膜 拜大佬

2020-10-11 更新 ¶已经有了更好的配置方法,不需要启动一大堆 Docker 容器了。请参阅《优雅地在 Traceroute 里膜 拜大佬》。简介 ¶Traceroute 是常用的检查网络状况的工具之一,会显示你操作的电脑到指定服务器的网络路径上经过的每一个路由器的 IP 地址,类似于这样:可以看到后两跳的 IP 显示出了对应的域名,这个域名就是 IP 的反向解析记录。反向解析记录在 DNS 服务器中以类似 4.3.2.1.in-addr.arpa 域名的 PTR 记录形式存在。更多的信息可以参考《在 DN42 中设置 IP 反向解析》这篇文章。然而,PTR 记录并不一定要设置成实际的域名,可以设置成任意的字符串,只要 “和域名长得像” 即可。利用这一点,我们可以在一段 Traceroute 中的每一跳上写一句话,整段就组成了完整的文章,类似下图:本文均在 DN42 网络中完成,如果你已经加入了 DN42 网络,可以 ping、traceroute 通文中的 IP。但本文并不局限于 DN42,...
插图

在 DN42 中设置 IPv6 反向解析

DN42 全称 Decentralized Network 42(42 号去中心网络),是一个大型的 VPN 网络。但是与其它传统 VPN 不同的是,DN42 使用了大量在互联网骨干上应用的技术(例如 BGP),可以很好的模拟一个真实的网络环境。我在先前的一篇文章中加入了 DN42 网络,并在另一篇文章中注册了自己的域名,设置了自己的 DNS 服务器。然后,我在这一篇文章设置了 IPv4 的反向解析。当时由于 DN42 Wiki 上的信息有点问题,导致我当时认为不能设置 IPv6 反向解析,但经过我尝试后发现是可以的。因为设置的是大体相同的东西,所以本文会和之前 IPv4 的文章有比较多的内容重复(复制粘贴)。设置 IP 段的解析服务器 ¶第一步是将自己所有的 IP 段解析到自己的 DNS 服务器上,我的服务器是 ns [1-2].lantian.dn42,可以全填。在 IPv4 文中我直接用了原先的设置,但是因为我 IPv6 的 DNS 设置有问题,不得不改,因此只能发一次 Pull Request 修改 IPv6 的 DNS 服务器,...
插图

在 DN42 中设置 IP 反向解析

DN42 全称 Decentralized Network 42(42 号去中心网络),是一个大型的 VPN 网络。但是与其它传统 VPN 不同的是,DN42 使用了大量在互联网骨干上应用的技术(例如 BGP),可以很好的模拟一个真实的网络环境。我在先前的一篇文章中加入了 DN42 网络,并在另一篇文章中注册了自己的域名,设置了自己的 DNS 服务器。有了 DNS 服务器,我们就可以给自己的 IP 也设置上反向解析记录。反向解析记录的主要用途是反垃圾邮件,以及在 ping、traceroute 等网络工具中或许能好看一点。设置 IP 段的解析服务器 ¶第一步是将自己所有的 IP 段解析到自己的 DNS 服务器上,我的服务器是 ns [1-3].lantian.dn42,理论上可以全填,但是由于 DN42 现在修改配置需要发 Pull Request,流程比较长,我就保留了最初注册这个 IP 时设置的 DNS 服务器,只有 ns1.lantian.dn42。在 git clone 下 DN42 的数据文件后,在自己的 IP 段文件中添加这样一句话:nserver: ns1....
插图

在 DN42 中注册自己的域名

DN42 全称 Decentralized Network 42(42 号去中心网络),是一个大型的 VPN 网络。但是与其它传统 VPN 不同的是,DN42 使用了大量在互联网骨干上应用的技术(例如 BGP),可以很好的模拟一个真实的网络环境。我在先前的一篇文章中加入了 DN42 网络,并连接了大部分自己拥有的 VPS。(剩下几台是没有 Tun/Tap 的 OpenVZ VPS,无法加入)之前我就知道 DN42 拥有自己的域名体系,例如 DN42 的 Wiki 站(https://wiki.dn42.us/Home)就可以在 DN42 中以 https://internal.dn42 的域名访问,但是之前没有时间去完成域名注册,并且当时对 DN42 的了解还不够。这个月我完成了域名注册,就来分享一下过程。搭建权威 DNS 服务器 ¶权威 DNS 服务器,就是指管理某个域名记录的服务器。例如本站主域名 lantian.pub 的权威服务器是 lv3ns[1-4].ffdns.net,就是 CloudXNS。在互联网上注册域名时,我们可以用现成的 CloudXNS、Cloudflare 等免费 DNS 服务,但是在 DN42 中,...
插图

加入 DN42 实验网络

2020-03-16 提示 ¶本文已有更新版本:参见《DN42 实验网络介绍(2020 版)》。新版介绍中有更详细的注册申请流程,并根据 DN42 三年来的变化做出了修改。以下内容写于 2017 年,仅作存档用途。DN42 全称 Decentralized Network 42(42 号去中心网络),是一个大型的 VPN 网络。但是与其它传统 VPN 不同的是,DN42 使用了大量在互联网骨干上应用的技术(例如 BGP),可以很好的模拟一个真实的网络环境。正因为它的真实,使用 DN42 的门槛比较高。你要扮演一个 ISP(互联网服务提供商),注册一个 ASN 号码,注册 IPv4 和 IPv6 的地址池,并且使用 BGP 在自己的服务器上广播它们。你还要和其它的用户联系,和他们做 Peering(对接),一步步进入完整的 DN42 网络。DN42 在 172.20.0.0/14 和 fd00::/8 上运行,而这两个 IP 段都是分配给内网使用的。换句话说,你在 DN42 上怎么折腾,都不会影响到服务器其它的互联网连接。...