.redirects.gollum
... ...
@@ -1,4 +0,0 @@
1
----
2
-services.md: Buzzster Cerificate Authority.md
3
-Buzzster Cerificate Authority.md: Buzzster Trust Services.md
4
-Buzzster Trust Services.md: Buzzster-Trust-Services.md
Interconnections.md
... ...
@@ -0,0 +1,9 @@
1
+**This page lists the external Overlay Networks DN42 is connected to**
2
+
3
+| Network | IPv4 address space | IPv6 address space | TLDs | Remarks |
4
+|:-------------------------------------------------------|:-------------------|:-------------------|:-----|:--------|
5
+| [NeoNetwork](https://github.com/NeoCloud/NeoNetwork) | `10.127.0.0/16` | `fd10:127::/32` | `.neo` | |
6
+| [ICVPN](https://github.com/freifunk/icvpn) | `10.0.0.0/8` | `fd00::/8` | see [ICVPN-Meta](https://github.com/freifunk/icvpn-meta/) |InterCity VPN - many [freifunk](https://freifunk.net) communities interconnect here |
7
+| [ChaosVPN](https://wiki.hamburg.ccc.de/ChaosVPN) | `10.4.0.0/16`<br>`10.32.0.0/16`<br>`10.100.0.0/14`<br>`10.104.0.0/14`<br>`172.31.0.0/16` | - | `.hack` | Few active hosts |
8
+| [CRXN](https://crxn.de/docs/) | - | `fd00::/8` | `.crxn` | |
9
+
Links.md
... ...
@@ -1,5 +1,7 @@
1 1
This is a small list of links. Some of them are informative, some educational, some funny and some entertaining. You know a link you want to share? Then edit the page and add it!
2 2
3
+[List of other Overlay Networks](/Other)
4
+
3 5
Books:
4 6
- [Computer Networks -Tanenbaum](https://github.com/gsahinpi/acm361/raw/master/Computer%20Networks%20-%20A%20Tanenbaum%20-%205th%20edition.pdf)
5 7
Policies.md
... ...
@@ -0,0 +1,52 @@
1
+# Policies
2
+
3
+## Network / Port scans
4
+
5
+A network scan involves examining hosts in a network. The general aim is to find information such as open ports, software versions, and vulnerabilities. Depending on how the scan is performed, many packets are sent to the individual hosts at short intervals.
6
+
7
+### Rules
8
+
9
+There are no technically enforceable rules for port scanning (i.e., rules that apply only to port scanning; general restriction rules such as rate limits can of course be set), but that does not mean that you should just go ahead and do it - depending on how it is done, it can be perceived as very intrusive. Therefore, the following rules of politeness have become established over time:
10
+
11
+1. Announce the network scan in advance on the mailing list.
12
+2. Provide the option to opt out.
13
+
14
+### Opt out
15
+
16
+Unfortunately, there is currently no standard way to signal that a network should not be scanned. Several proposals have been discussed in the past - communication via BGP, via the registry, or via the mailing list.
17
+
18
+Another option would be to signal opt-outs via the wiki:
19
+
20
+| Maintainer | Network | Opt-out? |
21
+| --- | --- | --- |
22
+| `EXAMPLE-MNT` | 172.0.0.1/24 | Yes |
23
+
24
+
25
+## Registry cleanup process
26
+This process is used to remove inactive objects based on MRT data and the git commit history.
27
+The process is to be executed on a regular basis (yearly).
28
+
29
+A maintainer is classified as "inactive" if the following conditions have been fulfilled:
30
+1. All of the ASNs the maintainer has been directly or indirectly associated with (in any way and by following all references, whether through mnt-by, admin-c, tech-c, etc. or through an ORG) have not been observed originating any prefix in the global routing table at any point within the last three years. (Determined by analyzing the daily MRT RIB dumps provided by the DN42 Global Route collector.)
31
+2. The maintainer has not edited any of the ASNs they are associated with in the registry within the last three years. (Determined by analyzing the git commit history.)
32
+
33
+Maintainers that are not affiliated with an ASN (whether directly or indirectly or through other maintainers) are also considered inactive regardless of whether they fulfill the above conditions.
34
+
35
+### Process
36
+
37
+Using **registry_wizard (written for v0.4.12)**:
38
+
39
+1. Download the MRT files from the Global Route Collector (GRC):
40
+`wget -r -np -nH --cut-dirs=1 -A "*.mrt.bz2" --reject "*:*" http://collector.dn42/`
41
+2. Generate a list of active ASNs based on MRT data:
42
+`./registry_wizard /path/to/registry mrt_activity parse /path/to/mrt/files --cutoff-time <value> --list > active_list.txt`
43
+3. Based on the list of active ASNs and through referencing the registry git commit log, generate a list of inactive ASNs:
44
+`./registry_wizard /path/to/registry mrt_activity active_asn_to_inactive --list_file /path/to/active_list.txt --cutoff-time <value> > inactive_list.txt`
45
+4. Generate the removal commands to remove inactive objects based on the previous list:
46
+`./registry_wizard /path/to/registry remove aut-num --list_file /path/to/inactive_list.txt --enable_subgraph_check`
47
+
48
+ASNs can be excluded from removal by removing them from the list produced in step 3.
49
+
50
+Manual review of a few resources (primarily those affiliated with "DN42-MNT") will be required as they cannot be removed in an automated way (for example, resources associated with an inactive maintainer that used to host the DN42 anycast DNS will be affiliated with DN42-MNT and will require manual removal).
51
+To identify the exact conflicts leading to the manual review requirement the following command can be used:
52
+`./registry_wizard /path/to/registry graph path mntner YAMAKAYA-MNT mntner DN42-MNT` (To list conflicts between YAMAKAYA-MNT and DN42-MNT)
_Sidebar.md
... ...
@@ -3,12 +3,15 @@
3 3
* [Registry Authentication](/howto/Registry-Authentication)
4 4
* [Address Space](/howto/Address-Space)
5 5
* [BGP communities](/howto/BGP-communities)
6
+ * [Interconnections](/internal/Interconnections)
7
+ * [Policies](/Policies)
6 8
* [FAQ](/FAQ)
7 9
* [Links](/Links)
8 10
9 11
* How-To
10 12
* [Wireguard](/howto/wireguard)
11 13
* [Openvpn](/howto/openvpn)
14
+ * [Universal Network Requirements](/howto/networksettings)
12 15
* [IPsec With Public Keys](/howto/IPsec-with-PublicKeys)
13 16
* [Tinc](/howto/tinc)
14 17
* [GRE on FreeBSD](/howto/GRE-on-FreeBSD)
... ...
@@ -22,7 +25,6 @@
22 25
* [Mikrotik RouterOS](/howto/mikrotik)
23 26
* [EdgeRouter](/howto/EdgeOS-Config)
24 27
* [Static routes on Windows](/howto/Static-routes-on-Windows)
25
- * [Universal Network Requirements](/howto/networksettings)
26 28
* [VyOS](/howto/vyos1.4.x)
27 29
* [NixOS](/howto/nixos)
28 30
* [GeoFeed](/howto/GeoFeed)
... ...
@@ -30,21 +32,19 @@
30 32
* Services
31 33
* [IRC](/services/IRC)
32 34
* [Whois registry](/services/Whois)
33
- * [DNS](/services/DNS)
35
+ * [DNS](/services/DNS/Overview)
34 36
* [RPKI](/services/RPKI)
35
- * [IX Collection](/services/IX-Collection)
37
+ * [IX Collection](/services/exchanges/IX-Collection)
36 38
* [Public DNS](/services/Clearnet-Domains)
37 39
* [Looking Glasses](/services/Looking-Glasses)
40
+ * [Pingables](/services/Pingables)
38 41
* [Automatic Peering](/services/Automatic-Peering)
39
- * [Repository Mirrors](/services/Repository-Mirrors)
40 42
* [Distributed Wiki](/services/Distributed-Wiki)
41
- * [Certificate Authority](/services/Certificate-Authority)
43
+ * [Certificate Authority](/services/ca/Certificate-Authority)
42 44
* [Route Collector](/services/Route-Collector)
43
- * [Registry](/services/Registry)
44 45
45 46
* Internal
46 47
* [Internal services](/internal/Internal-Services)
47
- * [Interconnections](/internal/Interconnections)
48 48
* [APIs](/internal/APIs)
49 49
* [Show and Tell](/internal/ShowAndTell)
50 50
* [Historical services](/internal/Historical-Services)
contact.md
... ...
@@ -9,13 +9,10 @@ If you would like to contact an individual network operator, you will find conta
9 9
* is at: dn42 /at/ groups.io,
10 10
* send a mail to dn42+subscribe /at/ groups.io to subscribe
11 11
* has [archive](https://groups.io/g/dn42)
12
-* can be accessed via [NNTP](/services/News) as well. The group is alt.net.dn42.users
13 12
14 13
## IRC
15 14
16
-Channel #dn42 in [hackint](http://www.hackint.eu/)
17
-
18
-See [IRC](/services/IRC) too.
15
+See [IRC](/services/IRC).
19 16
20 17
## Telegram
21 18
howto/networksettings.md
... ...
@@ -1,3 +1,5 @@
1
+## Important rules for Linux
2
+
1 3
The first rule of dn42: Always disable `rp_filter`.
2 4
3 5
The second rule of dn42: Always disable `rp_filter`.
... ...
@@ -120,4 +122,4 @@ ip6tables -t mangle -A OUTPUT -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-m
120 122
121 123
- **Inadequate source IP filtering**: Services with public internet access require careful source IP filtering. For example, a DNS server in DN42 might receive requests with spoofed source IPs from inside DN42 that appear to come from public internet addresses. Without proper filtering, your server could respond to these spoofed requests, potentially participating in reflection attacks or exposing internal services to the public internet.
122 124
123
-Happy Routing!
... ...
\ No newline at end of file
0
+Happy Routing!
internal/E-Mail-Providers.md
... ...
@@ -0,0 +1,25 @@
1
+If you have an E-Mail service and would like to test it's functionality, send an email to [[email protected]](mailto:[email protected]). You will get a response usually within a few hours.
2
+
3
+**X Mail by Bingxin.**
4
+* X Mail <https://mail.x.dn42>
5
+ * Free, easy to sign up, and unlimited internal email system.
6
+ * Use the /email command on Telegram @baka_lg_bot to register an account.
7
+ * Or, Register at <https://mail.x.dn42/email/>
8
+ * Having issues with registration? Send an email to [[email protected]](mailto:[email protected]) or [[email protected]](mailto:[email protected]) for assistance.
9
+
10
+**bMail by Buzzster.**
11
+* bMail <https://mail.bmail.dn42>
12
+ * Free, easy and unlimited internal email system.
13
+ * Register at <https://accounts.buzzster.dn42/register>
14
+
15
+**Free E-Mail Addresses for DN42 Users.**
16
+* DN42 Mail, <https://dmail.dn42>
17
+ * Free, easy to sign up, unlimited internal emailing. Hosted by zane_reick
18
+ * Register at <https://dmail.dn42/register/register.php>
19
+
20
+### Simplelogin server:
21
+* a selfhosted [Simplelogin](https://simplelogin.io/) server for dn42.cc
22
+* create aliases that forward to your real e-mail
23
+* signup at <https://simplelogin.dn42/auth/register> with a clearnet e-mail address (dn42 mail addresses are for some reason not supported by simplelogin)
24
+ * also available via <https://sl.dn42.cc/> (except signup)
25
+* for "lifetime premium" (more than 5 aliases + custom domains), if you want aliases for \<anything>@\<your_mntner>.dn42.cc or experience deliverability problems please send a mail to [[email protected]](mailto:[email protected]) or [[email protected]](mailto:[email protected])
internal/Historical-Services.md
... ...
@@ -98,7 +98,7 @@ There is a search engine at [buzzster.dn42](http://buzzster.dn42) that can also
98 98
| <http://seafile.dn42> | | | Opensource Dropbox, yay! |
99 99
100 100
### Tahoe LAFS
101
-Some people runs [Tahoe LAFS](/services/Tahoe-LAFS) nodes to provide a secure decentralized crypted file storage but in dn42.
101
+Some people ran introducer nodes to provide a secure decentralized encrypted file storage but in dn42.
102 102
103 103
### ipfs
104 104
bootstrap peers
internal/Ideas.md
... ...
@@ -7,16 +7,12 @@
7 7
- it should be difficult to setup on the Internet (for technical or legal reasons)
8 8
- it should interest people that are likely to know dn42 (hackerspaces, etc)
9 9
10
-Any idea, apart from pr0n? Multicasting video flux?
11
-
12 10
Ideas for stuff that are technically difficult on the Internet:
13
-
14
- - multicast routing (well, it doesn't work in dn42 either)
11
+ - multicast routing
15 12
- something that depends on the network infrastructure or topology (e.g. a game where you have to announce things with BGP)
16 13
- CloudStack Implementation to test fail-over to different locations
17 14
- Open Plex Media Server - Anyone within dn42 would have unauthenticated access to the media.
18
- - We need to branch out to events etc... have talks, streams and increase our media presence.
19
-
15
+ - We need to branch out to events etc... have talks, streams and increase our media presence.
20 16
21 17
---
22 18
internal/Interconnections.md
... ...
@@ -1,8 +0,0 @@
1
-**This page lists the external Overlay Networks DN42 is connected to**
2
-
3
-| Network | IPv4 address space | IPv6 address space | TLDs | Remarks |
4
-|:-------------------------------------------------------|:-------------------|:-------------------|:-----|:--------|
5
-| [NeoNetwork](https://github.com/NeoCloud/NeoNetwork) | `10.127.0.0/16` | `fd10:127::/32` | `.neo` | |
6
-| [ICVPN](https://github.com/freifunk/icvpn) | `10.0.0.0/8` | `fd00::/8` | see [ICVPN-Meta](https://github.com/freifunk/icvpn-meta/) |InterCity VPN - many [freifunk](https://freifunk.net) communities interconnect here |
7
-| [ChaosVPN](https://wiki.hamburg.ccc.de/ChaosVPN) | `10.4.0.0/16`<br>`10.32.0.0/16`<br>`10.100.0.0/14`<br>`10.104.0.0/14`<br>`172.31.0.0/16` | - | `.hack` | Few active hosts |
8
-| [CRXN](https://crxn.de/docs/) | - | `fd00::/8` | `.crxn` | |
internal/Internal-Services.md
... ...
@@ -1,7 +1,6 @@
1 1
# Internal services
2 2
3
-You are asked to show some creativity in terms of network usage and content. ;)
4
-
3
+You are asked to show some creativity in terms of network usage and content ([ideas](/internal/Ideas)). ;)
5 4
6 5
## Search engines & Discovery
7 6
... ...
@@ -14,10 +13,7 @@ You are asked to show some creativity in terms of network usage and content. ;)
14 13
15 14
## Certificate Authority
16 15
17
-Signed by the main DN42 CA (established 2016):
18
-* xuu is maintaining a [certificate authority](/services/Certificate-Authority) for internal services.
19
-* Burble maintains an [ACME server](https://burble.dn42/services/acme/) (with accompanying CA), compatible with any LetsEncrypt client like Certbot, Dehydrated or Caddy.
20
-* Kioubit maintains a [certificate authority](https://dn42.g-load.eu/about/certificate-authority/) with certificates obtainable via a simple script or completely [using only the browser](https://dn42.g-load.eu/about/certificate-authority/oneclick/).
16
+See this [page](/services/ca/Certificate-Authority) for the main certificate authority.
21 17
22 18
## Network-related
23 19
... ...
@@ -92,10 +88,6 @@ See [Looking Glasses](/services/Looking-Glasses).
92 88
| <https://flaps.mashiro.dn42/> | AS4242420214 | |
93 89
94 90
95
-### IX Services
96
-
97
-See [IX Collection](/services/IX-Collection/).
98
-
99 91
### ASN Authentication Solution
100 92
101 93
Authenticate your users by having them verify their ASN ownership with following services using their registry-provided methods in an automated way. Some examples of this are the automatic peering system for the [Kioubit Network](https://dn42.g-load.eu) and [iEdon-Net](https://iedon.net).
... ...
@@ -108,10 +100,12 @@ Authenticate your users by having them verify their ASN ownership with following
108 100
109 101
## IRC
110 102
103
+See the [primary IRC page](/services/IRC).
104
+
105
+Other servers:
106
+
111 107
| Hostname / IP | SSL | Remarks |
112 108
| :-------------------- | :-- | :------------------------------------------------------------------------------------------------------------------ |
113
-| irc.hackint.dn42 | Yes | DN42 |
114
-| irc.hackint.hack/dn42 | Yes | ChaosVPN |
115 109
| irc.dn42 | Yes | Internal IRC |
116 110
| irc.ty3r0x.dn42 | Yes | BonoboNET (ty3r0x.bnet) |
117 111
| irc.catgirls.dn42 | Yes | Karx IRC, clearnet karx.xyz/6697, dn42 v6 only |
... ...
@@ -157,7 +151,7 @@ Authenticate your users by having them verify their ASN ownership with following
157 151
## File Sharing
158 152
159 153
### Repository Mirrors
160
-See [Repository Mirrors](/services/Repository-Mirrors).
154
+See [Repository Mirrors](/internal/Repository-Mirrors).
161 155
162 156
### FTP / HTTP
163 157
... ...
@@ -195,6 +189,10 @@ See [Repository Mirrors](/services/Repository-Mirrors).
195 189
196 190
- dht.leziblog.dn42:6881
197 191
192
+## Tor network
193
+
194
+See [Tor](/internal/Tor).
195
+
198 196
## VPN
199 197
200 198
DN42 Network Access over Automatic Wireguard VPN Service (IPv6 only, fd00::/8)
... ...
@@ -273,6 +271,11 @@ Test out your skills with online challenges
273 271
| <http://kioubit.dn42/challenge/ch1/> | Kioubit.dn42 challenge 1 |
274 272
| <http://kioubit.dn42/challenge/ch2/> | Kioubit.dn42 challenge 2 |
275 273
274
+
275
+## Virtual machines
276
+
277
+Virtual machine providers are listed [here](/internal/Virtual-Machines).
278
+
276 279
## Shell
277 280
278 281
Providers of shell access:
... ...
@@ -329,7 +332,8 @@ See also the [burble.dn42 website](https://dn42.burble.com/services/shell/) for
329 332
330 333
## E-Mail
331 334
332
-There is a list of E-Mail providers [here](/services/E-Mail-Providers)
335
+There is a list of E-Mail providers [here](/internal/E-Mail-Providers)
336
+
333 337
334 338
## Misc
335 339
internal/NetworkScans.md
... ...
@@ -1,20 +0,0 @@
1
-# Network / Port scans
2
-
3
-A network scan involves examining hosts in a network. The general aim is to find information such as open ports, software versions, and vulnerabilities. Depending on how the scan is performed, many packets are sent to the individual hosts at short intervals.
4
-
5
-## Rules
6
-
7
-There are no technically enforceable rules for port scanning (i.e., rules that apply only to port scanning; general restriction rules such as rate limits can of course be set), but that does not mean that you should just go ahead and do it - depending on how it is done, it can be perceived as very intrusive. Therefore, the following rules of politeness have become established over time:
8
-
9
-1. Announce the network scan in advance on the mailing list.
10
-2. Provide the option to opt out.
11
-
12
-## Opt out
13
-
14
-Unfortunately, there is currently no standard way to signal that a network should not be scanned. Several proposals have been discussed in the past - communication via BGP, via the registry, or via the mailing list.
15
-
16
-Another option would be to signal opt-outs via the wiki:
17
-
18
-| Maintainer | Network | Opt-out? |
19
-| --- | --- | --- |
20
-| `EXAMPLE-MNT` | 172.0.0.1/24 | Yes |
internal/Repository-Mirrors.md
... ...
@@ -0,0 +1,68 @@
1
+# Repository Mirrors
2
+
3
+There are some mirrors available in DN42. All mirrors are subdomains of "mirror.dn42". DNS Round-Robin is set up for Load Balancing.
4
+
5
+## mirror.ano-org.dn42
6
+
7
+Proxy to multiple repositories:
8
+
9
+* <http://mirror.ano-org.dn42/debian>: deb.debian.org/debian
10
+* <http://mirror.ano-org.dn42/debsec>: security.debian.org/debian-security
11
+* <http://mirror.ano-org.dn42/ubuntu>: archive.ubuntu.com/ubuntu
12
+* <http://mirror.ano-org.dn42/ubsec>: security.ubuntu.com/ubuntu
13
+* <http://mirror.ano-org.dn42/proxmox>: download.proxmox.com/debian
14
+* <http://mirror.ano-org.dn42/grafana>: packages.grafana.com/oss/deb
15
+* <http://mirror.ano-org.dn42/rpi>: archive.raspberrypi.org/debian
16
+
17
+Other repos can be added on request, contact glueckself@hackint on IRC or send a mail to <[email protected]>
18
+
19
+## Ubuntu
20
+**<http://mirror.dn42/ubuntu>**
21
+
22
+Hosted by:
23
+* mephisto
24
+
25
+
26
+## mirror.yandex.ru proxy
27
+**<http://172.23.158.41/>**
28
+**<http://[fd91:9191:9191:3::1]/>**
29
+
30
+Hosted by:
31
+* ne-vlezay80
32
+
33
+## mirrors.nia.dn42 (IPv6 Only)
34
+
35
+[eweOS](https://os.ewe.moe/download):
36
+* <http://mirrors.nia.dn42/eweos/>: Official Mirror in DN42
37
+* <http://mirrors.nia.dn42/eweos-images/>: Official Mirror in DN42
38
+
39
+## mirror.z.dn42
40
+
41
+Not hosting repositories itself, it collects other mirrors
42
+
43
+* Dynamic page: **<http://mirror.z.dn42/>**
44
+* Static page: **<http://mirror.z.dn42/_/>**
45
+
46
+## mirrors.leziblog.dn42
47
+
48
+Notes:
49
+- Local repository, hosted by [LeZi](mailto:[email protected])
50
+- Synchronize with the upstream every day at 00:00 UTC.
51
+- Supports `https`, `rsync`
52
+ - https: `https://mirrors.leziblog.dn42`
53
+ - rsync: `rsync://rsync.mirrors.leziblog.dn42`
54
+
55
+Ubuntu:
56
+- <http://mirrors.leziblog.dn42/ubuntu/>: archive.ubuntu.com/ubuntu
57
+- <http://mirrors.leziblog.dn42/ubuntu-ports/>: ports.ubuntu.com
58
+
59
+OpenWrt:
60
+- <http://mirrors.leziblog.dn42/openwrt/>: downloads.openwrt.org
61
+
62
+Ubuntu-image:
63
+- 20.04.6
64
+ - [magnet:?xt=urn:btih:83df9f532bed288518d884fe63363e8f5b2286e2](magnet:?xt=urn:btih:83df9f532bed288518d884fe63363e8f5b2286e2&dn=ubuntu-20.04.6-live-server-amd64&tr=udp%3A%2F%2Ftracker.leziblog.dn42%3A11451&tr=https%3A%2F%2Ftracker.leziblog.dn42%2Fannounce&tr=http%3A%2F%2Ftracker.leziblog.dn42%2Fannounce)
65
+- 22.04.5
66
+ - [magnet:?xt=urn:btih:8df707795d20b9d8021241d56c6f8282929c8b8d](magnet:?xt=urn:btih:8df707795d20b9d8021241d56c6f8282929c8b8d&dn=ubuntu-22.04.5-live-server-amd64&tr=udp%3A%2F%2Ftracker.leziblog.dn42%3A11451&tr=https%3A%2F%2Ftracker.leziblog.dn42%2Fannounce&tr=http%3A%2F%2Ftracker.leziblog.dn42%2Fannounce)
67
+- 24.04.3
68
+ - [magnet:?xt=urn:btih:5fd2dd3688fdb31fe554b15ed65228f3db29a9f9](magnet:?xt=urn:btih:5fd2dd3688fdb31fe554b15ed65228f3db29a9f9&dn=ubuntu-24.04.3-live-server-amd64&tr=udp%3A%2F%2Ftracker.leziblog.dn42%3A11451&tr=https%3A%2F%2Ftracker.leziblog.dn42%2Fannounce&tr=http%3A%2F%2Ftracker.leziblog.dn42%2Fannounce)
... ...
\ No newline at end of file
internal/Tor.md
... ...
@@ -1,4 +1,4 @@
1
-[Tor](https://torproject.org/) ([dn42 mirror](http://tor.e-utp.dn42/)) is free software and an open network that helps you defend against traffic analysis, a form of network surveillance that threatens personal freedom and privacy, confidential business activities and relationships, and state security.
1
+[Tor](https://torproject.org/) is free software and an open network that helps you defend against traffic analysis, a form of network surveillance that threatens personal freedom and privacy, confidential business activities and relationships, and state security.
2 2
3 3
# Tor Bridges
4 4
internal/Virtual-Machines.md
... ...
@@ -0,0 +1,10 @@
1
+# Virtual Machines
2
+
3
+## burble.dn42
4
+
5
+If you have a DN42 project but do not have the resources to host it yourself, the burble.dn42 network may be able to provide hosting for you. Contact burble on IRC or via email to discuss.
6
+
7
+## LGP Corp
8
+LGP Corp will make available virtual machines at IXP frnte for all interested parties. The administrator can be contacted at toinux in IRC.
9
+
10
+
perchnet.md
... ...
@@ -1,37 +0,0 @@
1
-# Welcome to perchnet (AS4242422825)
2
-
3
-## Introduction
4
-perchnet is a network on dn42. The goal of perchnet is to facilitate learning about and experimentation with various networking technologies, and linking up multiple sites in the "hybrid" and "multivendor" cloud computing configurations.
5
-
6
-
7
-
8
-## Background
9
-perchnet is still being designed and deployed. Presently we consist of two physical nodes at _bri_'s residence in New York City that provide a core router and various services, and we're in the process of onboarding a virtual server graciously donated by [Evolution Host](https://evolution-host.com).
10
-
11
-_bri_ enjoys hacking together complex systems out of weird, secondhand, obsolete hardware. As such, their on-site residence nodes are:
12
-
13
-- macpro "home private cloud"
14
- - Heavily upgraded Apple "Mac Pro (early 2009)" (MacPro4,1)
15
- - Customized firmware
16
- - Proxmox 7 "testing"
17
- - 2x Xeon X5675 (12 cores / 24 threads)
18
- - 128 GB DDR3
19
- - 512 GB NVMe SSD
20
- - 2 TB NVMe SSD
21
- - 2 TB SATA SSD
22
- - 2x 120 GB SATA SSD
23
- - 2 TB SATA HDD
24
- - 1 TB SATA HDD
25
- - Radeon RX580
26
-- minipve "home virtual router"
27
- - Apple "Mac Mini (2014)"
28
- - Proxmox 7
29
- - Intel Core i5-4278U (2 cores / 4 threads)
30
- - 16 GB DDR4
31
- - 128 GB SSD
32
- - 1 TB HDD
33
-
34
-Routing software in use currently primarily consists of a custom build of VyOS 1.4-rolling and OpenWRT.
35
-
36
-
37
-Note: "perchnet" is officially spelled in all lowercase, but due to constraints it may be written as all uppercase ("PERCHNET") instead. "Perchnet" is not to be used whenever possible. This is all due to an odd idiocyncractic quirk of the network administrator, and should probably not be questioned for the sake of maintaining one's sanity. Nobody will be chastised for using title case, but it will make _bri_ frown.
... ...
\ No newline at end of file
playground.md
... ...
@@ -1,3 +0,0 @@
1
-# Playground
2
-
3
-test what will happen
services/Automatic-CA.md
... ...
@@ -1,239 +0,0 @@
1
-DN42 ACME CA
2
-==================
3
-
4
-Certificates can be automatically generated with the [ACME-CA](https://burble.dn42/services/acme/) using [acme.sh](https://github.com/acmesh-official/acme.sh) or [lego](https://github.com/go-acme/lego) or [Caddy](https://caddyserver.com/). More information can be found on [https://burble.dn42/services/acme/](https://burble.dn42/services/acme/)
5
-
6
-DN42 Self-Serve CA
7
-==================
8
-
9
-This client is used for automating the process of requesting TLS certificates. (Available via: [dn42](https://ca.dn42/ca-client), [iana](https://ca.dn42.us/ca-client), [git]([email protected]:dn42/ca-client))
10
-
11
-
12
-## VALIDATION PROCESS
13
-
14
-The process validates ownership by verifying control of both a users MNT object in the registry and the authoritative DNS server.
15
-The following steps take place in creating a signed certificate.
16
-
17
-*User Flow*
18
-
19
-1. User generates a 2048+ bit rsa key and CSR for their MNT object.
20
-2. User generates a sha256 hash of the rsa public key (commonly known as a [public keypin][keypin]) and adds it as a remark in their MNT
21
-3. User submits the csr to the CA to validate and sign.
22
-4. CA checks for the keypin in their MNT object (if it does not find it in the local copy of the [monotone repo][ca-mtn] it will check against io.nixnodes.dn42)
23
-5. (optional) CA revokes prior certificate as superseded.
24
-6. CA signs and returns the user certificate.
25
-
26
-*Server Flow*
27
-
28
-1. User generates a 2048+ bit rsa key and CSR for the dns CN. Also including any SAN domains.
29
-2. User generates a sha256 hash of the rsa public key (commonly known as a [public keypin][keypin]) and adds it as a txt record in their DNS.
30
-3. User uses the user certificate to authenticate and submits the csr to the CA to validate and sign.
31
-4. CA checks for the user keypin in their MNT object (if it does not find it in the local copy of the [monotone repo][ca-mtn] it will check against io.nixnodes.dn42)
32
-5. CA checks the dns records for the CN and each SAN for the tls keypin.
33
-6. (optional) CA revokes prior certificate as superseded.
34
-7. CA signs and returns the tls certificate.
35
-
36
-*User Renewals*
37
-
38
-User certificates are signed for 180 days. To renew follow the steps above starting from number 3.
39
-
40
-*Server renewals*
41
-
42
-Server certificates are signed for 45 days. To renew follow the steps above starting from number 3.
43
-
44
-[keypin]: <https://developer.mozilla.org/en-US/docs/Web/Security/Public_Key_Pinning>
45
-[ca-mtn]: <https://ca.dn42/reg/mntner/>
46
-
47
-*Certificate Revocations*
48
-
49
-1. User uses the user certificate to authenticate and submits the serial and revoke reason to CA.
50
-2. CA checks user keypin in their MNT object (if it does not find it in the local copy of the [monotone repo][ca-mtn] it will check against io.nixnodes.dn42)
51
-3. CA checks that owner in certificate matches.
52
-4. CA revokes certificate and updates revocation list.
53
-
54
-## INSTALL
55
-
56
-get the script here:
57
-
58
-```sh
59
-curl https://ca.dn42/ca.dn42 > ca.dn42; chmod +x ca.dn42
60
-```
61
-
62
-available via git: [email protected]:dn42/ca-client
63
-
64
-
65
-## KNOWN ISSUES
66
-
67
-### openssl prior to 1.0.2 returns "SSL certificate problem: permitted subtree violation"
68
-
69
-The way openssl validated name constraints prevented it from accepting dns names that started with a dot.
70
-Because the name constraint is "DNS:.dn42" it fails to validate.
71
-
72
-[Read more on this mailing list thread][libssl-1]
73
-
74
-
75
-[libssl-1]: <https://groups.google.com/forum/#!topic/mailing.openssl.dev/drG3U-S4iaE>
76
-
77
-
78
-### X.509 nameConstraints on certificates not supported on OS X
79
-
80
-Browsers and clients that rely on Apple's [Secure Transport][osx-1] library does not support X.509's nameConstraints.
81
-
82
-Read more on this [stack exchange post][osx-2]
83
-
84
-
85
-[osx-1]: <https://developer.apple.com/library/mac/documentation/Security/Reference/secureTransportRef/>
86
-[osx-2]: <http://security.stackexchange.com/a/97133>
87
-
88
-
89
-## How to Run
90
-
91
-```
92
-Usage: # OWNER is your MNT handle.
93
- ./ca.dn42 user-gen OWNER EMAIL # Output to OWNER.csr and OWNER.key
94
- ./ca.dn42 user-sig OWNER # Output to OWNER.crt and OWNER.p12
95
- ./ca.dn42 tls-gen DNS OWNER EMAIL [SAN] # Output to OWNER_DNS.csr and OWNER.key
96
- ./ca.dn42 tls-sig DNS OWNER # Output to OWNER_DNS.crt and OWNER_DNS.p12
97
- ./ca.dn42 revoke OWNER CERTFILE [REASON]
98
-
99
-
100
-Revoke Reasons: unspecified, keyCompromise, affiliationChanged,
101
- superseded, cessationOfOperation, certificateHold, removeFromCRL
102
-
103
-Environtment Options:
104
- DN42CA_PKCS12 = 1 # Generate pkcs12 file for certificate.
105
-```
106
-
107
-## Example
108
-
109
-Generate the user key
110
-
111
-```sh
112
-$ ./ca.dn42 user-gen XUU-MNT [email protected]
113
-Generating a 2048 bit RSA private key
114
-...............................+++
115
-.........................+++
116
-writing new private key to 'XUU-MNT.key'
117
------
118
-=
119
-= You need to have this pin added to your mnt object before proceeding to the next step.
120
-=
121
-|MNT Key Pin| remarks: pin-sha256:HdqCid0sedWXX3Q0uG98rYjJyTNOzaT13WfWpr1GvIw=
122
-```
123
-
124
-### Sign the user key
125
-
126
-```sh
127
-$ ./ca.dn42 user-sign XUU-MNT [email protected]
128
-== USER CERT ==
129
- C:XD
130
- O:dn42
131
- OU:dn42 Certificate Authority
132
- CN:XUU-MNT
133
- emailAddress:[email protected]
134
- owner:XUU-MNT
135
- pin-sha256:HdqCid0sedWXX3Q0uG98rYjJyTNOzaT13WfWpr1GvIw=
136
-OK https://ca.dn42/crt/XUU-MNT.crt
137
-Enter Export Password:
138
-Verifying - Enter Export Password:
139
-```
140
-
141
-### Generate the server key
142
-
143
-```sh
144
-$ ./ca.dn42 tls-gen ca.dn42 XUU-MNT [email protected] DNS:ca.dn42
145
-
146
-Generating a 2048 bit RSA private key
147
-...........................................+++
148
-.......................+++
149
-writing new private key to 'XUU-MNT_ca.dn42.key'
150
------
151
-writing RSA key
152
-=
153
-= |DNS Key Pin| You need to have this pin added to your dns records before proceeding to the next step.
154
-=
155
-_dn42_tlsverify.ca.dn42. IN TXT XUU-MNT:pin-sha256:Qu/X5GNqOo05TdL7oexkamE34OUuDE60T+f0xc60UPQ=
156
-```
157
-
158
-After you set this TXT-Record for your domain, you can verify it with the following command (by replacing the domain with your own):
159
-
160
-```sh
161
-$ dig +short TXT _dn42_tlsverify.ca.dn42.
162
-"XUU-MNT:pin-sha256:Qu/X5GNqOo05TdL7oexkamE34OUuDE60T+f0xc60UPQ="
163
-```
164
-
165
-### Sign the server key
166
-
167
-```sh
168
-$ ./ca.dn42 tls-sign ca.dn42 XUU-MNT
169
-== USER CERT ==
170
- C:XD
171
- O:dn42
172
- OU:dn42 Certificate Authority
173
- CN:XUU-MNT
174
- emailAddress:[email protected]
175
- owner:XUU-MNT
176
- pin-sha256:HdqCid0sedWXX3Q0uG98rYjJyTNOzaT13WfWpr1GvIw=
177
-== DNS CSR ==
178
- C:XD
179
- O:dn42
180
- OU:dn42 Certificate Authority
181
- CN:ca.dn42
182
- emailAddress:[email protected]
183
- owner:XUU-MNT
184
- pin-sha256:Qu/X5GNqOo05TdL7oexkamE34OUuDE60T+f0xc60UPQ=
185
-== DNS Tests ==
186
- CN Record: ca.dn42 PASSED
187
- SAN Record: ca.dn42 PASSED
188
-OK https://ca.dn42/crt/XUU-MNT_ca.dn42.crt
189
-Enter Export Password: ****
190
-Verifying - Enter Export Password: ****
191
-```
192
-
193
-The generated certificate will be valid for 3 months, to renew it simply run ```./ca.dn42 tls-sign ca.dn42 XUU-MNT``` again. This could be also automated in cron:
194
-
195
-```sh
196
-0 0 1 * * /etc/ssl/dn42/ca.dn42 tls-sign wiki.dn42 MIC92-MNT
197
-```
198
-
199
-or with a systemd timer:
200
-
201
-```conf
202
-# update-dn42-ca.timer
203
-[Timer]
204
-OnBootSec=1h
205
-OnUnitActiveSec=1w
206
-Persistent=yes
207
-
208
-[Install]
209
-WantedBy=timers.target
210
-```
211
-
212
-```conf
213
-[Service]
214
-Type=oneshot
215
-WorkingDirectory=/etc/ssl/dn42
216
-ExecStart=/etc/ssl/dn42/ca.dn42 tls-sign wiki.dn42 MIC92-MNT
217
-# accept multiple ExecStart lines for other certificates
218
-# ExecStart=/etc/ssl/dn42/ca.dn42 tls-sign foobar.dn42 MIC92-MNT
219
-ExecStart=/usr/bin/nginx -s reload
220
-```
221
-
222
-### Revoke a certificate.
223
-
224
-```sh
225
-$ ./ca.dn42 revoke XUU-MNT XUU-MNT.crt
226
-== USER CERT ==
227
- C:XD
228
- O:dn42
229
- OU:dn42 Certificate Authority
230
- CN:XUU-MNT
231
- emailAddress:[email protected]
232
- owner:XUU-MNT
233
- pin-sha256:HdqCid0sedWXX3Q0uG98rYjJyTNOzaT13WfWpr1GvIw=
234
-== REVOKE CERT ==
235
-OK
236
-```
237
-
238
-### Certificate transparency
239
-All issued certificates will be logged to [xuu's mattermost instance](https://teams.dn42/dn42/channels/tls-certificates).
services/Certificate-Authority.md
... ...
@@ -1,185 +0,0 @@
1
-# SSL Certificate Authority
2
-
3
-internal.dn42 is signed by an internally maintained CA that is only allowed to sign *.dn42 domains.
4
-If you would like to have a certificate signed by this CA there is [an automated process to do so](/services/Automatic-CA). The CA is maintained by [email protected].
5
-
6
-If you are required to specify a license to clarify redistribution, then it [can be considered](https://groups.io/g/dn42/message/844) as [CC0](https://creativecommons.org/public-domain/cc0/).
7
-
8
-The CA certificate ([dn42](https://ca.dn42/crt/root-ca.crt), [iana](https://ca.dn42.us/crt/root-ca.crt)):
9
-
10
-```
11
-Certificate:
12
- Data:
13
- Version: 3 (0x2)
14
- Serial Number: 137808117760 (0x2016010000)
15
- Signature Algorithm: sha256WithRSAEncryption
16
- Issuer: C=XD, O=dn42, OU=dn42 Certificate Authority, CN=dn42 Root Authority CA
17
- Validity
18
- Not Before: Jan 16 00:12:04 2016 GMT
19
- Not After : Dec 31 23:59:59 2030 GMT
20
- Subject: C=XD, O=dn42, OU=dn42 Certificate Authority, CN=dn42 Root Authority CA
21
- Subject Public Key Info:
22
- Public Key Algorithm: rsaEncryption
23
- Public-Key: (2048 bit)
24
- Modulus:
25
- 00:c1:19:10:de:01:86:11:f1:82:0c:b0:d4:e5:ff:
26
- 9a:c8:e3:aa:f4:00:08:82:c0:cf:7f:05:7a:21:97:
27
- c1:b5:8b:a3:d1:54:ee:fa:04:0f:77:d5:5c:98:4b:
28
- d9:88:18:c1:17:10:92:e5:24:fa:ef:61:eb:5d:7b:
29
- 11:e5:be:ba:89:f2:60:c9:3b:82:05:3a:74:54:60:
30
- 23:66:1a:d8:cd:28:7b:f1:ea:55:25:9a:8c:04:a0:
31
- ff:9d:48:54:4c:9d:bc:2d:a0:df:71:ae:64:47:0d:
32
- e7:75:05:f4:c5:02:2a:d2:0c:be:a3:63:54:62:2b:
33
- ad:29:eb:6a:08:a4:5e:a8:eb:f1:52:14:4e:d1:5d:
34
- 41:2f:d3:19:ba:e4:82:36:7a:d1:a3:f2:84:f6:07:
35
- b2:f6:0c:30:db:db:76:ee:e9:14:05:c7:8f:75:b7:
36
- 3f:d5:d5:35:56:d0:92:44:df:26:1e:00:fa:ae:cb:
37
- 7a:c9:50:67:5d:69:f8:f9:fd:25:a7:1d:db:40:b1:
38
- 42:bc:45:57:e1:c9:1c:42:ba:69:80:1e:ea:25:99:
39
- 12:9f:6f:23:a3:d2:2e:4a:cd:15:e4:7c:49:f9:d1:
40
- c0:f0:19:0c:15:50:ce:a6:51:bb:aa:16:b2:82:ec:
41
- f4:61:44:8c:1c:dd:65:60:04:77:b0:4d:99:67:17:
42
- fb:09
43
- Exponent: 65537 (0x10001)
44
- X509v3 extensions:
45
- X509v3 Key Usage: critical
46
- Certificate Sign, CRL Sign
47
- X509v3 Basic Constraints: critical
48
- CA:TRUE
49
- X509v3 Subject Key Identifier:
50
- 54:76:88:B2:C0:B5:30:D0:FC:4F:C9:6D:3B:F9:8C:55:11:AC:15:15
51
- X509v3 Authority Key Identifier:
52
- keyid:54:76:88:B2:C0:B5:30:D0:FC:4F:C9:6D:3B:F9:8C:55:11:AC:15:15
53
-
54
- X509v3 Name Constraints:
55
- Permitted:
56
- DNS:.dn42
57
- IP:172.20.0.0/255.252.0.0
58
- IP:FD42:0:0:0:0:0:0:0/FFFF:0:0:0:0:0:0:0
59
-
60
- Signature Algorithm: sha256WithRSAEncryption
61
- 5c:a4:3b:41:a0:81:69:e2:71:99:4d:75:4b:5a:20:0d:2a:d9:
62
- ec:ea:bc:8d:4f:b0:6c:f3:2e:41:1a:a0:75:f3:de:7e:3a:e0:
63
- a7:b9:db:cd:f5:16:e4:6a:cb:e7:cc:2a:8f:ee:7f:14:0a:a5:
64
- b5:f9:66:48:81:e5:68:1e:0c:a6:a3:3c:a7:2b:e3:95:cf:e3:
65
- 63:15:0d:16:09:63:d9:66:31:3b:42:2e:7c:1a:e5:28:8e:5e:
66
- 3d:9e:28:99:48:e9:47:86:11:e2:04:29:60:2b:96:95:99:ae:
67
- 3f:ab:ff:3f:45:ab:7e:07:45:4e:4d:0b:18:40:3d:3b:02:9c:
68
- 4e:a9:0f:a5:c2:3f:4a:30:77:ae:66:5c:b3:8d:b2:41:6b:e2:
69
- 98:01:7d:e0:6b:52:70:4d:3d:b8:a9:48:f5:02:d2:d9:40:66:
70
- b6:5e:44:25:11:55:ac:31:02:d7:67:72:6a:6a:bc:74:34:5f:
71
- 75:dc:9a:4f:83:28:40:e0:2a:dc:3f:41:43:5a:47:07:2b:b7:
72
- a7:3f:d0:15:a2:42:d7:30:22:f2:f6:e4:b4:f6:3b:38:ca:6b:
73
- 4c:e7:3c:a4:70:cb:de:af:0a:14:ff:23:25:ca:04:cd:9e:49:
74
- c3:4b:e4:0a:b5:0b:84:b5:ef:b4:5b:63:07:47:63:cd:5c:50:
75
- 0b:42:0a:a9
76
------BEGIN CERTIFICATE-----
77
-MIID8DCCAtigAwIBAgIFIBYBAAAwDQYJKoZIhvcNAQELBQAwYjELMAkGA1UEBhMC
78
-WEQxDTALBgNVBAoMBGRuNDIxIzAhBgNVBAsMGmRuNDIgQ2VydGlmaWNhdGUgQXV0
79
-aG9yaXR5MR8wHQYDVQQDDBZkbjQyIFJvb3QgQXV0aG9yaXR5IENBMCAXDTE2MDEx
80
-NjAwMTIwNFoYDzIwMzAxMjMxMjM1OTU5WjBiMQswCQYDVQQGEwJYRDENMAsGA1UE
81
-CgwEZG40MjEjMCEGA1UECwwaZG40MiBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxHzAd
82
-BgNVBAMMFmRuNDIgUm9vdCBBdXRob3JpdHkgQ0EwggEiMA0GCSqGSIb3DQEBAQUA
83
-A4IBDwAwggEKAoIBAQDBGRDeAYYR8YIMsNTl/5rI46r0AAiCwM9/BXohl8G1i6PR
84
-VO76BA931VyYS9mIGMEXEJLlJPrvYetdexHlvrqJ8mDJO4IFOnRUYCNmGtjNKHvx
85
-6lUlmowEoP+dSFRMnbwtoN9xrmRHDed1BfTFAirSDL6jY1RiK60p62oIpF6o6/FS
86
-FE7RXUEv0xm65II2etGj8oT2B7L2DDDb23bu6RQFx491tz/V1TVW0JJE3yYeAPqu
87
-y3rJUGddafj5/SWnHdtAsUK8RVfhyRxCummAHuolmRKfbyOj0i5KzRXkfEn50cDw
88
-GQwVUM6mUbuqFrKC7PRhRIwc3WVgBHewTZlnF/sJAgMBAAGjgaowgacwDgYDVR0P
89
-AQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFFR2iLLAtTDQ/E/J
90
-bTv5jFURrBUVMB8GA1UdIwQYMBaAFFR2iLLAtTDQ/E/JbTv5jFURrBUVMEQGA1Ud
91
-HgQ9MDugOTAHggUuZG40MjAKhwisFAAA//wAADAihyD9QgAAAAAAAAAAAAAAAAAA
92
-//8AAAAAAAAAAAAAAAAAADANBgkqhkiG9w0BAQsFAAOCAQEAXKQ7QaCBaeJxmU11
93
-S1ogDSrZ7Oq8jU+wbPMuQRqgdfPefjrgp7nbzfUW5GrL58wqj+5/FAqltflmSIHl
94
-aB4MpqM8pyvjlc/jYxUNFglj2WYxO0IufBrlKI5ePZ4omUjpR4YR4gQpYCuWlZmu
95
-P6v/P0WrfgdFTk0LGEA9OwKcTqkPpcI/SjB3rmZcs42yQWvimAF94GtScE09uKlI
96
-9QLS2UBmtl5EJRFVrDEC12dyamq8dDRfddyaT4MoQOAq3D9BQ1pHByu3pz/QFaJC
97
-1zAi8vbktPY7OMprTOc8pHDL3q8KFP8jJcoEzZ5Jw0vkCrULhLXvtFtjB0djzVxQ
98
-C0IKqQ==
99
------END CERTIFICATE-----
100
-```
101
-
102
-
103
-## Testing constraints
104
-
105
-The name constraints can be verified for example by using openssl:
106
-```sh
107
-openssl x509 -in dn42.crt -text -noout
108
-```
109
-which will show among other things:
110
-```
111
- X509v3 Name Constraints:
112
- Permitted:
113
- DNS:.dn42
114
-```
115
-
116
-## Importing the certificate
117
-
118
-- cacert have a comprehensive FAQ on how to import your own root certificates in [browsers](http://wiki.cacert.org/FAQ/BrowserClients) and [other software](http://wiki.cacert.org/FAQ/ImportRootCert)
119
-
120
-### Archlinux
121
-
122
-Install `ca-certificates-dn42` from [AUR](https://aur.archlinux.org/packages/ca-certificates-dn42/)
123
-
124
-### Debian/Ubuntu
125
-
126
-#### Unofficial Debian Package
127
-
128
-```bash
129
-wget https://ca.dn42.us/ca-dn42_20161122.0_all.deb
130
-# If you're on a dn42-only network:
131
-# wget --no-check-certificate https://ca.dn42/ca-dn42_20161122.0_all.deb
132
-sudo dpkg -i ca-dn42_20161122.0_all.deb
133
-sudo dpkg-reconfigure ca-certificates
134
-```
135
-
136
-You will be asked which certificates you would like to enabled. By default, the dn42 root certifcate (dn42/root-ca.crt) is not enabled, be sure to enable it. This package is waiting for inclusion in Debian (Debian bug [#845351](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=845351)).
137
-
138
-#### Manual Installation
139
-
140
-```bash
141
-$ mkdir /usr/share/ca-certificates/extra
142
-$ cat > /usr/share/ca-certificates/extra/dn42.crt <<EOF
143
------BEGIN CERTIFICATE-----
144
-MIID8DCCAtigAwIBAgIFIBYBAAAwDQYJKoZIhvcNAQELBQAwYjELMAkGA1UEBhMC
145
-WEQxDTALBgNVBAoMBGRuNDIxIzAhBgNVBAsMGmRuNDIgQ2VydGlmaWNhdGUgQXV0
146
-aG9yaXR5MR8wHQYDVQQDDBZkbjQyIFJvb3QgQXV0aG9yaXR5IENBMCAXDTE2MDEx
147
-NjAwMTIwNFoYDzIwMzAxMjMxMjM1OTU5WjBiMQswCQYDVQQGEwJYRDENMAsGA1UE
148
-CgwEZG40MjEjMCEGA1UECwwaZG40MiBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxHzAd
149
-BgNVBAMMFmRuNDIgUm9vdCBBdXRob3JpdHkgQ0EwggEiMA0GCSqGSIb3DQEBAQUA
150
-A4IBDwAwggEKAoIBAQDBGRDeAYYR8YIMsNTl/5rI46r0AAiCwM9/BXohl8G1i6PR
151
-VO76BA931VyYS9mIGMEXEJLlJPrvYetdexHlvrqJ8mDJO4IFOnRUYCNmGtjNKHvx
152
-6lUlmowEoP+dSFRMnbwtoN9xrmRHDed1BfTFAirSDL6jY1RiK60p62oIpF6o6/FS
153
-FE7RXUEv0xm65II2etGj8oT2B7L2DDDb23bu6RQFx491tz/V1TVW0JJE3yYeAPqu
154
-y3rJUGddafj5/SWnHdtAsUK8RVfhyRxCummAHuolmRKfbyOj0i5KzRXkfEn50cDw
155
-GQwVUM6mUbuqFrKC7PRhRIwc3WVgBHewTZlnF/sJAgMBAAGjgaowgacwDgYDVR0P
156
-AQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFFR2iLLAtTDQ/E/J
157
-bTv5jFURrBUVMB8GA1UdIwQYMBaAFFR2iLLAtTDQ/E/JbTv5jFURrBUVMEQGA1Ud
158
-HgQ9MDugOTAHggUuZG40MjAKhwisFAAA//wAADAihyD9QgAAAAAAAAAAAAAAAAAA
159
-//8AAAAAAAAAAAAAAAAAADANBgkqhkiG9w0BAQsFAAOCAQEAXKQ7QaCBaeJxmU11
160
-S1ogDSrZ7Oq8jU+wbPMuQRqgdfPefjrgp7nbzfUW5GrL58wqj+5/FAqltflmSIHl
161
-aB4MpqM8pyvjlc/jYxUNFglj2WYxO0IufBrlKI5ePZ4omUjpR4YR4gQpYCuWlZmu
162
-P6v/P0WrfgdFTk0LGEA9OwKcTqkPpcI/SjB3rmZcs42yQWvimAF94GtScE09uKlI
163
-9QLS2UBmtl5EJRFVrDEC12dyamq8dDRfddyaT4MoQOAq3D9BQ1pHByu3pz/QFaJC
164
-1zAi8vbktPY7OMprTOc8pHDL3q8KFP8jJcoEzZ5Jw0vkCrULhLXvtFtjB0djzVxQ
165
-C0IKqQ==
166
------END CERTIFICATE-----
167
-EOF
168
-$ echo "extra/dn42.crt" >> /etc/ca-certificates.conf
169
-$ update-ca-certificates
170
-```
171
-
172
-### AlmaLinux/RockyLinux/Probably anything RHEL
173
-
174
-```bash
175
-$ /etc/pki/ca-trust/source/anchors/dn42.crt <<EOF
176
------BEGIN CERTIFICATE-----
177
-...
178
------END CERTIFICATE-----
179
-EOF
180
-$ update-ca-trust
181
-```
182
-
183
-## PKI Store
184
-
185
-All issued keys and crl information are posted at: <https://ca.dn42/>
services/DNS.md
... ...
@@ -1,73 +0,0 @@
1
-# DN42 DNS
2
-
3
-This page covers guidance and examples on using DNS within DN42.
4
-
5
-## Quick Start
6
-
7
-It is recommended to run your own DNS resolver as this provides you with the most security and privacy.
8
-However, to get started, or if running your own resolver isn't desirable an anycast service
9
-is available. The anycast service supports DNSSEC and will resolve public DNS names together with all the
10
-relevant DN42 and affiliated networks' names.
11
-
12
-### Using the DNS Anycast Service
13
-
14
-The DNS anycast service is provided by multiple operators, with each operator contributing to one of the two separate
15
-anycast services. By configuring both services, users get additional resiliency from having two, independent, resolvers.
16
-
17
-| Name | IPv4 | IPv6 |
18
-|---|---|---|
19
-| a0.recursive-servers.dn42 | 172.20.0.53 | fd42:d42:d42:54::1 |
20
-| a3.recursive-servers.dn42 | 172.23.0.53 | fd42:d42:d42:53::1 |
21
-
22
-To configure the service, ping both sets of addresses then set your primary nameserver to the lowest latency
23
-service and configure the other service as the secondary or backup nameserver.
24
-
25
-Example resolv.conf, preferring a0.recursive-servers.dn42 and IPv4:
26
-
27
-```conf
28
-nameserver 172.20.0.53
29
-nameserver 172.23.0.53
30
-nameserver fd42:d42:d42:54::1
31
-nameserver fd42:d42:d42:53::1
32
-search dn42
33
-```
34
-
35
-Example resolv.conf, preferring a3.recursive-servers.dn42 and IPv6:
36
-
37
-```conf
38
-nameserver fd42:d42:d42:53::1
39
-nameserver fd42:d42:d42:54::1
40
-nameserver 172.23.0.53
41
-nameserver 172.20.0.53
42
-option inet6 # Linux/glibc
43
-family inet6 inet4 # BSD
44
-search dn42
45
-```
46
-
47
-## Advanced Configuration
48
-
49
-There are multiple top level domains (TLDs) associated with DN42, its affiliated networks and for reverse DNS that must
50
-be configured in order to run your own resolver. The registry is the authoritative source of active TLDs, but see also
51
-this page [dns/External-DNS](/services/dns/External-DNS) in the wiki.
52
-
53
-### Split horizon DNS
54
-
55
-In this configuration, you run your own, caching resolver but forward DN42 related queries (with recursion bit set)
56
-to the anycast service. Example configurations for different recursor implementations are included in the [dns/Configuration](/services/dns/Configuration) page.
57
-
58
-### Full recursion
59
-
60
-Authoritative DNS for DN42 is provided by the *.delegation-servers.dn42 servers, see the DNS architecture here
61
-[New DNS](/services/New-DNS) Delegations servers have full support for DNSSEC. Example configuration unbound implementations are included in the [dns/Configuration](/services/dns/Configuration#resolver-setup) page.
62
-
63
-## Additional client configuration
64
-
65
-- **Firefox**: Set `browser.fixup.domainsuffixwhitelist.dn42` to `true` in `about:config` to prevent Firefox from confusing dn42 domains with search queries.
66
-
67
-## Further Information
68
-
69
-* [dns/Configuration](/services/dns/Configuration) - Forwarder/Resolver configuration examples
70
-* [New DNS](/services/New-DNS) - current architecture
71
-* [dns/External-DNS](/services/dns/External-DNS) - external DNS zones from interconnected networks
72
-* [Old Hierarchical DNS](/services/Old-Hierarchical-DNS) - deprecated
73
-* [Original DNS (deprecated)](/services/Original-DNS-(deprecated)) - deprecated
services/E-Mail-Providers.md
... ...
@@ -1,25 +0,0 @@
1
-If you have an E-Mail service and would like to test it's functionality, send an email to [[email protected]](mailto:[email protected]). You will get a response usually within a few hours.
2
-
3
-**X Mail by Bingxin.**
4
-* X Mail <https://mail.x.dn42>
5
- * Free, easy to sign up, and unlimited internal email system.
6
- * Use the /email command on Telegram @baka_lg_bot to register an account.
7
- * Or, Register at <https://mail.x.dn42/email/>
8
- * Having issues with registration? Send an email to [[email protected]](mailto:[email protected]) or [[email protected]](mailto:[email protected]) for assistance.
9
-
10
-**bMail by Buzzster.**
11
-* bMail <https://mail.bmail.dn42>
12
- * Free, easy and unlimited internal email system.
13
- * Register at <https://accounts.buzzster.dn42/register>
14
-
15
-**Free E-Mail Addresses for DN42 Users.**
16
-* DN42 Mail, <https://dmail.dn42>
17
- * Free, easy to sign up, unlimited internal emailing. Hosted by zane_reick
18
- * Register at <https://dmail.dn42/register/register.php>
19
-
20
-### Simplelogin server:
21
-* a selfhosted [Simplelogin](https://simplelogin.io/) server for dn42.cc
22
-* create aliases that forward to your real e-mail
23
-* signup at <https://simplelogin.dn42/auth/register> with a clearnet e-mail address (dn42 mail addresses are for some reason not supported by simplelogin)
24
- * also available via <https://sl.dn42.cc/> (except signup)
25
-* for "lifetime premium" (more than 5 aliases + custom domains), if you want aliases for \<anything>@\<your_mntner>.dn42.cc or experience deliverability problems please send a mail to [[email protected]](mailto:[email protected]) or [[email protected]](mailto:[email protected])
services/Exchanges.md
... ...
@@ -1,20 +0,0 @@
1
-In the real world two organizations have to lay cables to one another when they want to peer. This is why IXPs (Internet Exchange Points) or IXes (Internet Exchanges) for short exist. Instead of laying cables to one another, organizations lay cables to an exchange instead. This allows them to peer with hundreds of other companies.
2
-
3
-Even though DN42 has 'cheap' tunnels like Wireguard, as it is a simulation of the internet it makes sense to have exchanges as a learning exercise.
4
-
5
-IXP frnte operated by LGP Corp: [IXP frnte](/services/IXP-frnte)
6
-
7
----
8
-
9
-A few people have provided exchanges previously on DN42, however they created single
10
-points of failure and are no longer operating
11
-
12
-* Amsterdam (OpenVPN) - NL Zuid (marlinc) - <https://nl-zuid.dn42/>
13
-* Los Angeles (OpenVPN) - tombii - <https://nl-zuid.dn42/>
14
-* New York (OpenVPN) - tombii - <https://nl-zuid.dn42/>
15
-* Falkenstein/Hetzner (OpenVPN) - GRMML (Nurtic-Vibe) - <https://nl-zuid.dn42/>
16
-* India (OpenVPN) - Technopoint - apply via email to [[email protected]](mailto:[email protected]) (reply within 24hours)
17
-
18
-The NL-Zuid website is also available from the public internet: <https://nl-zuid.nl>
19
-
20
-Its generally recommended to only announce prefixes from your own network and that of your transit customers.
services/IPv6-Anycast.md
... ...
@@ -1,26 +0,0 @@
1
-We provide some anycast services over IPv6.
2
-
3
-## Anycast address space
4
-
5
-**fd42:d42:d42::/48** is reserved for anycast services.
6
-
7
-Each anycast service runs on a dedicated /64 in this range. This way, nobody needs to update filters.
8
-
9
-Remember, if you announce an anycast /64, then you need to provide **all** services within this /64. It's probably simpler to only provide one service for each /64.
10
-
11
-## Anycast services
12
-
13
-| **Name** | **Service address** | **Protocol/port** | **Comment** |
14
-| ---------------------- | ------------------------- | ----------------- | ----------------------------- |
15
-| Recursive DNS resolver | `fd42:d42:d42:54::1/64` | UDP/53 | `.` and `dn42.` [Providers](/services/dns/Providing-Anycast-DNS#Persons-providing-anycast-DNS-for-IPv6) |
16
-| Whois Database | `fd42:d42:d42:43::1/64` | TCP/43 | |
17
-| TOR SOCKS5 Proxy | `fd42:d42:d42:9050::1/64` | TCP/9050 | |
18
-| internal Wiki | `fd42:d42:d42:80::1/64` | TCP/80, TCP/443 | |
19
-| myip.dn42 | `fd42:d42:d42:81::1/64` | TCP/80 | |
20
-
21
-
22
-
23
-### Future services
24
-
25
-- streaming
26
-- other kind of DNS (authoritative-only, recursive for `dn42` only)
services/IRC.md
... ...
@@ -30,7 +30,3 @@ It is reachable from within DN42, ChaosVPN and the public internet. A connection
30 30
31 31
It is reachable from the public internet at the address [irc.libera.chat](ircs://irc.libera.chat:6697). The channel is #dn42
32 32
33
-# replirc
34
-
35
-replirc does not have a channel about dn42 but it is connected to dn42 at the address [irc.replirc.dn42](ircs://irc.replirc.dn42:6697). It is also accessible via Tor, Yggdrasil or the internet.
36
-
services/IX-Collection.md
... ...
@@ -1,7 +0,0 @@
1
-|Name|Wiki Page|Related Link(s)|
2
-|:---|:---|:---|
3
-|IXP-frnte|[IXP-frnte](/services/IXP-frnte)|N/A|
4
-|mcast-ix|[mcast-ix](/services/mcast-ix)|N/A|
5
-|SERNET-IX|[SERNET-IX](/services/SERNET-IX)|[https://blog.sherpherd.net/ix.html](https://blog.sherpherd.net/ix.html)|
6
-|SerinaIX||<https://ix.dn42.serinanya.cn/>|
7
-|Nedifinita IX||https://ix.nedifinita.com/|
... ...
\ No newline at end of file
services/IXP-frnte.md
... ...
@@ -1,116 +0,0 @@
1
-The IXP frnte
2
-=============
3
-
4
-An IXP is a collection point for Internet providers. This can be physical or virtual. In a physical IXP, several Internet providers place servers in a data center and connect them to each other.
5
-
6
-In a virtual IXP, the servers are not "real". They are not physically connected with cables, but for example via a VPN.
7
-
8
-In dn42 almost all connections are virtual. One builds on the Internet and creates virtual links between the single nodes. In IXP frnte, all providers have virtual machines, which are connected to each other. Due to the large number of providers in IXP, it is possible to reach them easily and with low latency. However, the large number also leads to the fact that no direct peerings are established within an IXP, instead route servers are used. This receives and coordinates all routes of the providers and sends out appropriate routes. This way, many indirect peerings can be established.
9
-
10
-Current participants
11
---------------------
12
-
13
-| Name | AS | Route server | IRC |
14
-| --- | --- | --- | --- |
15
-| Bandura's network | 4242422923 | 4242421081 | mark22k |
16
-
17
-History and origin
18
-------------------
19
-
20
-In dn42 and in the Anonet there was the UCIS IXP for a long time. However, this is no longer actively operated.
21
-
22
-Members of the LGP Corp have now created a new IXP in dn42. This is the IXP frnte. It is located in France near Nantes and has two separate internet connections. This article describes how to enter the IXP and set up peering with the current route server.
23
-
24
-Join the IXP
25
-------------
26
-
27
-### 1\. Request the infrastructure
28
-
29
-LGP Corp provides virtual machines free of charge to any AS operator or anyone who wants to experiment with networks. There are no costs! The VM's can be configured and linked together as desired. The VM's can be connected to each other via a VLAN. Furthermore, an internet connection is available with two ISPs, depending on your choice. The virtual machine gets a public IPv6 and if necessary IPv4 over NAT to be able to access important resources like GitHub.
30
-It is best to create a diagram of your network and send it to the LGP Corp.
31
-The LGP Corp or the responsible admin for the IXP can be reached in **IRC** on hackint.org under **toinux**. Send the diagram to them and discuss further details.
32
-Furthermore, all virtual machines are put into a common VLAN. This causes that one can reach all providers at the IXP without problems.
33
-
34
-### 2\. Proxmox Login and VM Setup
35
-
36
-After that you will receive your access data for the Proxmox portal from the LGP Corp. Under which you can set up your VM's. The portal can be reached under [**https://pve.home.lgp-corp.fr/**](https://pve.home.lgp-corp.fr/). Select "Proxmox VE authentication server" as "Realm". It also offers a VNC monitor to work directly on the server. For the setup under SSH an IPv6 connectivity to the internet is required. If you only have an IPv4, you can get an IPv6 for free from Hurricane Electric at [https://tunnelbroker.net/](https://tunnelbroker.net/).
37
-
38
-### 3\. Configure VLAN
39
-
40
-An internal IPv6 Range has been requested for the IXP: `fde0:93fa:7a0:2::/64` ([fde0:93fa:7a0:2::/64 on explorer](https://explorer.dn42.dev/#/inet6num/fde0:93fa:7a0:2::_64))
41
-
42
-The following is the assignment policy:
43
-`fde0:93fa:7a0:2:0:<asn32|high16|hex>:<asn32|low16|hex>:1/64`
44
-For example, if you have the ASN 4242421080, you get the range `fde0:93fa:7a0:2:0:fcde:3558:1/64`
45
-It should be noted that only the last block may be changed. So you get a practical IPv6 range of `fde0:93fa:7a0:2:0:fcde:3558:/112`.
46
-A Ruby script to calculate the IPv6 can be found on [ixp\_frnte\_dn42\_prefix.rb on GitHub Gist](https://gist.github.com/marek22k/494cf9c4d269867f23f2c3577e1780ef).
47
-
48
-An example configuration for Debian based Linux distributions would be:
49
-
50
-```sh
51
-iface ensXX inet6 static
52
- address fde0:93fa:7a0:2:0:fcde:3558:1/64
53
-```
54
-
55
-Here `ensXX` is the dn42 VLAN interface. This can be determined by comparing the MAC address of the interface with the MAC address of the dn42 VLAN in Proxmox. The MAC address can be determined on Linux with `ip l`:
56
-
57
-```sh
58
-ensXX: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu
59
- 1500 qdisc pfifo_fast state UP mode DEFAULT group
60
- default qlen 1000
61
- link/ether MAC brd ff:ff:ff:ff:ff:ff
62
-```
63
-
64
-`MAC` would be the MAC address. After that you can activate the interface with ifup or a reboot of the VM.
65
-Of course there are other configuration possibilities. This is only an example for Debian-based Linux distributions.
66
-
67
-### 4\. Connect to the Route Server
68
-
69
-There can be several Route Servers (RS) on one IXP. However, on the IXP frnte there is currently only one, which is operated by jlu5 (operator of the highdef network).
70
-IPv6: fde0:93fa:7a0:2:0:fcde:3559:1
71
-ASN: 4242421081
72
-
73
-You can now enter this configuration into your routing daemon and it will connect to the RS. You should keep in mind that the RS itself does not forward any traffic, but is only responsible for the coordination. Therefore the AS path must not necessarily start with the AS of the RS.
74
-
75
-An example configuration for bird2 would be the following:
76
-
77
-```conf
78
-protocol bgp ixp_rs from dnpeers {
79
- neighbor fde0:93fa:7a0:2:0:fcde:3559:1 as 4242421081;
80
-
81
- enable extended messages on;
82
- direct;
83
- enforce first as off;
84
-
85
- ipv4 {
86
- extended next hop;
87
- };
88
-}
89
-```
90
-
91
-**What does this configuration do?**
92
-
93
-First we create a new BGP session (`protocol bgp`). This is based on the dnpeers template which can be found in the standard Bird2 configuration in the [wiki](/howto/Bird2). We name this session "ixp\_rs". However, this is only an internal name and can be replaced with another one.
94
-
95
-After that we determine with whom we want to have the session. This would be the RS. Therefore we put IPv6 address and ASN there.
96
-
97
-Furthermore, we allow larger BGP messages. Thus, instead of 4096 bytes, a whole 65535 bytes are transmitted in one message. This is especially useful because an RS has to announce a lot of routes.
98
-
99
-With `direct` we indicate that the RS is directly connected to our server and no routing via third parties has to be performed. In our case, the RS is connected to us via the dn42 VLAN.
100
-
101
-The next line has the effect that the ASN of the RS does not necessarily have to be the next hop for routing. This is important because we do not route the traffic via the RS, but via the respective peers. These have an ASN that differs from the ASN of the RS.
102
-
103
-Since the dn42 VLAN _only_ supports IPv6, any IPv4 traffic must also go over IPv6. If you do not have or do not want to use IPv4, you can ignore this part of the configuration.
104
-
105
-Finally we save the bird2 configuration and load the new configuration with `birdc configure`.
106
-
107
-### 5\. Check if it works
108
-
109
-There are now a few things to check:
110
-Once you can see if the BGP session is esablished. In Bird you can do this with `birdc show protocols all ixp_rs`.
111
-Furthermore, you can display different routes (in case of bird with `birdc show route for [ip address]`) or perform a traceroute.
112
-One can also try to ping the IP of some at the IXP. From the latency you can also see if everything is working:
113
-
114
-* Bandura's pingable:
115
- * `172.22.149.224`
116
- * `fd04:234e:fc31::`
services/New-DNS.md
... ...
@@ -1,52 +0,0 @@
1
-After frequent issues with the [Old Hierarchical DNS](/services/Old-Hierarchical-DNS) system in early 2018, work has started to build a new and more reliable DNS system. The main goals are:
2
-* Reliability and Consistency to avoid debugging very obscure issues that are also hard to reproduce.
3
-* Low maintenance burden on operators.
4
-* Proper DNSSEC support for everything.
5
-
6
-# End Users
7
-It is **strongly recommended** to run your own resolver for security and privacy reasons. Setting it up and maintaining it should be easy, see [services/dns/Configuration](/services/dns/Configuration).
8
-
9
-If running your own resolver is not possible or desirable, you can choose one or more instances from [dns/recursive-servers.dn42 in the registry](https://git.dn42.dev/dn42/registry/src/master/data/dns/recursive-servers.dn42). Please make sure you fully understand the consequences and fully trust these operators.
10
-
11
-You can also use the globally anycasted a.recursive-servers.dn42 but you won't have any control over which instance you get. This is a **very bad idea** from a security standpoint.
12
-
13
-# Instances
14
-The new DNS system has two different components:
15
-* *.recursive-servers.dn42 and local resolvers responsible for handling queries from clients, validating DNSSEC and directing the queries at clearnet/dn42/ICVPN.
16
-* *.delegation-servers.dn42 and *.master.delegation-servers.dn42 are a normal master-slave setup for providing the few official infrastructural zones.
17
-
18
-## *.recursive-servers.dn42
19
-These are simple resolvers capable of resolving dn42 domains. Every operator gets a single letter name pointing to addresses assigned from their own address space and is strongly encouraged to use anycasting across multiple nodes to improve reliability. There is also the global anycast a.recursive-servers.dn42 which includes some/all other instances. Whether an *.recursive-servers.dn42 can resolve clearnet queries or not is decided by its operator but all a.recursive-servers.dn42 instances MUST resolve clearnet queries correctly. It is explicitly not supported to use clearnet nservers for dn42 zones and dn42 nservers for clearnet zones.
20
-
21
-## *.delegation-servers.dn42
22
-These are simple authoritative servers for the dn42 zone, rDNS and a few DNS infrastructure zones. Every operator gets a single letter name pointing to addresses assigned from their own address space and is strongly encouraged to use anycasting across multiple nodes to improve reliability. There is no anycast instance because that would make debugging much harder and *.recursive-servers.dn42 instances should do loadbalancing/failover across all instances listed in the registry.
23
-
24
-## *.master.delegation-servers.dn42
25
-These instances do not serve any clients. They poll the registry regularly and rebuild and resign (DNSSEC) the zones as needed. If any zone changes, all *.delegation-servers.dn42 instances are notified ([RFC1996](https://tools.ietf.org/html/rfc1996)) which then load the new zone data over AXFR ([RFC5936](https://tools.ietf.org/html/rfc5936)). The pool of masters is intentionally kept very small because of its much higher coordination needs and also the lacking support of a multi-master mode in many authoritative server implementations. The masters are only reachable over dedicated IPv6 assignments which are set up in a way that any master operator can hijack the address of a problematic master without having to wait for its operator to fix something.
26
-
27
-# Running your own instances
28
-* If you want to run your own instances, make sure you are subscribed to the [mailinglist](/contact). It is also strongly recommended to join #dn42-dns@hackint. All changes are announced to the mailinglist but IRC makes debugging sessions much easier.
29
-* Choose the implementation(s) you want to use. It should support at least AXFR+NOTIFY (*.delegation-servers.dn42) or DNSSEC (*.recursive-servers.dn42).
30
-* Check if [TODO](/TODO) already has configuration snippets for your implementation.
31
- * If yes, download it from there and include it in the main configuration.
32
- * If not, then join us in #dn42-dns@hackint so we can add it together.
33
-* Verify that everything works:
34
- * For *.delegation-servers.dn42: Do an AXFR against all zones and compare with the result of an existing instance. The result should be identical.
35
- * For *.recursive-servers.dn42: Query clearnet, dn42 and ICVPN domains including rDNS. Make sure that both signed and unsigned domains work properly.
36
-* (Optional) Choose your single letter name and ask in #dn42-dns@hackint to get it added to the registry. Once added to the list, you must implement changes announced to the mailinglist within a week (faster is obviously better) or you might get removed again. We try to keep maintenance work as low as possible but we can't do it without the cooperation of all operators!
37
-
38
-# [Monitoring](https://grafana.burble.com/d/E4iCaHoWk/dn42-dns-status?orgId=1&refresh=1m)
39
-burble is providing monitoring for the new DNS system. It does simple checks on all instances every minute and also logs all changes into #dn42-dns@hackint.
40
-
41
-Also, gatuno provides another simple [dns checker for all the top level domains](http://gatuno.dn42/dns/) in the registry. If you want to check whatever a domain is resolving or not, this tool may be useful. The tool gets in sync with the registry every 12 hours. You can schedule checks for any domain.
42
-
43
-# DNSSEC
44
-There are currently two KSKs managed by BURBLE-MNT and JRB0001-MNT. They are used once per quarter to sign the DNSKEY RRset. Each master operator has one ZSK which is used to sign the zones (except for the DNSKEY RRset). This setup leads to bigger responses but allows each KSK holder to solve emergencies independently. The signatures of the DNSKEY RRset are valid until the end of the first month of the next quarter to give enough time for coordinating the next signing. All other signatures are valid for 3 days and replaced at least once per day.
45
-
46
-The set of valid KSKs can be found in the registry.
47
-
48
-# See also
49
-
50
-* [DNS Quick Start](/services/DNS)
51
-* [Old Hierarchical DNS](/services/Old-Hierarchical-DNS)
52
-* [Original DNS (deprecated)](/services/Original-DNS-(deprecated))
services/Old-Hierarchical-DNS.md
... ...
@@ -1,49 +0,0 @@
1
-This information is now **deprecated**. Please check [New DNS](/services/New-DNS) for the current architecture.
2
-
3
-***
4
-
5
-DNS in the global internet is designed as a tree starting from "." and traveling outward in layers. Currently in DN42 dns is flat. This leads to issues when trying to debug problems and makes it difficult to delegate to subnets smaller than /24. Another problem that arises is having the root dns setup as an anycast. If one of the anycast roots is having problems it creates inconsistent errors for some users. This has led to the problem of when a user has a poorly configured anycast available to create their own root anycast.
6
-
7
-The purpose of this project is to create a system of high quality dns roots. With them in place, an anycast resolver would only need to be a simple caching resolver that uses the roots to query.
8
-
9
-## Hierarchy in DN42
10
-
11
- - . (dot)
12
- - arpa
13
- - in-addr
14
- - 172
15
- - 20
16
- - 22
17
- - 23
18
- - 31
19
- - dn42
20
- - \<dn42 domain names>
21
- - hack
22
- - ffhh
23
- - \<Future Top Level Domains?>
24
- - \<ano, bit or other organisation TLDs?>
25
- - \<ICANN TLDs>
26
-
27
-Note: With this system it could be possible to merge the IANA root file.. but it would be beyond the scope of this project.
28
-
29
-## Servers
30
-
31
-For all of these servers they have a specific IP assigned, only respond to their authoritative zones, and do not allow recursion.
32
-
33
-**\<name>.root-servers.dn42** - This server is authoritative for "." (root zone). Is authorative for ICANN root as well. "172.in-addr.arpa" is delegated to ICANN, except rfc1918 zones which are delegated to dn42. The rest of rfc1918 as well as rfc4193 address space is delegated to dn42.
34
-
35
-**\<name>.zone-servers.dn42** - This server is authoritative for "dn42", "hack", .. This would be where the records for all forward dns nameservers would be. Similar to our current root setup.
36
-
37
-**\<name>.in-addr-servers.arpa** - This server is authoritative for "arpa", "in-addr", and each of the 172 zones for dn42 ip space. For non dn42 ip space NS records to the respective darknet would need to be registered.
38
-
39
-**\<name>.dn42-servers.arpa** - This server is authoritative for RFC 2317 delegations. For any inetnum object smaller than /24 and whos parent has no nameserver records, a C class parent zone is created (all its subnetworks are delegated to appropriate nameservers with CNAME)
40
-
41
-Real-time server monitor is available at <http://nixnodes.net/dn42/dnsview>
42
-
43
-## Setup
44
-
45
-Contact one of the root-servers.dn42 operators if you wish to set up a root/zone/dn42 server.
46
-
47
-You may want to set up a resolver, see link below or use 172.23.0.53 directly.
48
-
49
-Techical information available [here](https://nixnodes.net/wiki/n/DN42_DNS)
services/Original-DNS-(deprecated).md
... ...
@@ -1,46 +0,0 @@
1
-# Original DNS (deprecated)
2
-This information is now **deprecated**. Please check [New DNS](/services/New-DNS) for the current architecture.
3
-
4
-***
5
-
6
-*(tl;dr)* We have a TLD for dn42, which is `.dn42`. The anycast resolver for `.dn42` runs on `172.20.0.53` and `fd42:d42:d42:54::1`.
7
-
8
-**DNS is built from the [whois database](/services/Whois). Please edit your DNS records there.**
9
-
10
-## Using the DNS service
11
-
12
-Below are several ways to use the `dn42` DNS service, from easiest to more challenging. The recommended method is the second one.
13
-
14
-### Using the anycast resolver directly
15
-
16
-Please be aware that this method sends **all** your DNS queries (e.g. `google.com`) to a random DNS server inside dn42. The server could fake the result and point you towards the russian mafia. They probably won't, but think about what you are doing. At the end of the day, your ISP could be evil as well, so it always boils down to a question of trust.
17
-
18
-To do this, just use `172.20.0.53` or `fd42:d42:d42:54::1` as your resolver, for instance in `/etc/resolv.conf`.
19
-
20
-### Forwarding `.dn42` queries to the anycast resolver
21
-
22
-If you run your own resolver (`unbound`, `dnsmasq`, `bind`), you can configure it to forward dn42 queries to the anycast DNS resolver. See [DNS forwarder configuration](/services/dns/Configuration).
23
-
24
-### Recursive resolver
25
-
26
-You may also want to configure your resolver to recursively resolve dn42 domains. For this, you need to find authoritative DNS servers for the `dn42` zone (and for the reverse zones). See [services/dns/Recursive DNS resolver](/services/dns/Recursive-DNS-resolver).
27
-
28
-### Building the dn42 zones from the registry
29
-
30
-Finally, you may want to host your own authoritative DNS server for the `dn42` zone and the reverse zones. The zone files are built from the monotone repository: scripts are provided in the repository itself.
31
-
32
-## Register a `.dn42` domain name
33
-
34
-The root zone for `dn42.` is built from the [whois registry](/services/Whois). If you want to register a domain name, you need to add it to the registry (of course, you also need one or two authoritative nameservers).
35
-
36
-## DNS services for other networks
37
-
38
-Other networks are interconnected with dn42 (ChaosVPN, Freifunk, etc). Some of them also provide DNS service, you can configure your resolver to use it. See [External DNS](/services/dns/External-DNS).
39
-
40
-## Providing DNS services
41
-
42
-See [Providing Anycast DNS](/services/dns/Providing-Anycast-DNS).
43
-
44
-## [Old Hierarchical DNS](/services/Old-Hierarchical-DNS)
45
-
46
-This is a new effort to build a DNS system that mirrors how DNS was designed to work in clearnet.
services/Registry.md
... ...
@@ -1,28 +0,0 @@
1
-# Registry cleanup process
2
-This process is used to remove inactive objects based on MRT data and the git commit history.
3
-The process is to be executed on a regular basis (yearly).
4
-
5
-A maintainer is classified as "inactive" if the following conditions have been fulfilled:
6
-1. All of the ASNs the maintainer has been directly or indirectly associated with (in any way and by following all references, whether through mnt-by, admin-c, tech-c, etc. or through an ORG) have not been observed originating any prefix in the global routing table at any point within the last three years. (Determined by analyzing the daily MRT RIB dumps provided by the DN42 Global Route collector.)
7
-2. The maintainer has not edited any of the ASNs they are associated with in the registry within the last three years. (Determined by analyzing the git commit history.)
8
-
9
-Maintainers that are not affiliated with an ASN (whether directly or indirectly or through other maintainers) are also considered inactive regardless of whether they fulfill the above conditions.
10
-
11
-## Process
12
-
13
-Using **registry_wizard (written for v0.4.12)**:
14
-
15
-1. Download the MRT files from the Global Route Collector (GRC):
16
-`wget -r -np -nH --cut-dirs=1 -A "*.mrt.bz2" --reject "*:*" http://collector.dn42/`
17
-2. Generate a list of active ASNs based on MRT data:
18
-`./registry_wizard /path/to/registry mrt_activity parse /path/to/mrt/files --cutoff-time <value> --list > active_list.txt`
19
-3. Based on the list of active ASNs and through referencing the registry git commit log, generate a list of inactive ASNs:
20
-`./registry_wizard /path/to/registry mrt_activity active_asn_to_inactive --list_file /path/to/active_list.txt --cutoff-time <value> > inactive_list.txt`
21
-4. Generate the removal commands to remove inactive objects based on the previous list:
22
-`./registry_wizard /path/to/registry remove aut-num --list_file /path/to/inactive_list.txt --enable_subgraph_check`
23
-
24
-ASNs can be excluded from removal by removing them from the list produced in step 3.
25
-
26
-Manual review of a few resources (primarily those affiliated with "DN42-MNT") will be required as they cannot be removed in an automated way (for example, resources associated with an inactive maintainer that used to host the DN42 anycast DNS will be affiliated with DN42-MNT and will require manual removal).
27
-To identify the exact conflicts leading to the manual review requirement the following command can be used:
28
-`./registry_wizard /path/to/registry graph path mntner YAMAKAYA-MNT mntner DN42-MNT` (To list conflicts between YAMAKAYA-MNT and DN42-MNT)
... ...
\ No newline at end of file
services/Repository-Mirrors.md
... ...
@@ -1,68 +0,0 @@
1
-# Repository Mirrors
2
-
3
-There are some mirrors available in DN42. All mirrors are subdomains of "mirror.dn42". DNS Round-Robin is set up for Load Balancing.
4
-
5
-## mirror.ano-org.dn42
6
-
7
-Proxy to multiple repositories:
8
-
9
-* <http://mirror.ano-org.dn42/debian>: deb.debian.org/debian
10
-* <http://mirror.ano-org.dn42/debsec>: security.debian.org/debian-security
11
-* <http://mirror.ano-org.dn42/ubuntu>: archive.ubuntu.com/ubuntu
12
-* <http://mirror.ano-org.dn42/ubsec>: security.ubuntu.com/ubuntu
13
-* <http://mirror.ano-org.dn42/proxmox>: download.proxmox.com/debian
14
-* <http://mirror.ano-org.dn42/grafana>: packages.grafana.com/oss/deb
15
-* <http://mirror.ano-org.dn42/rpi>: archive.raspberrypi.org/debian
16
-
17
-Other repos can be added on request, contact glueckself@hackint on IRC or send a mail to <[email protected]>
18
-
19
-## Ubuntu
20
-**<http://mirror.dn42/ubuntu>**
21
-
22
-Hosted by:
23
-* mephisto
24
-
25
-
26
-## mirror.yandex.ru proxy
27
-**<http://172.23.158.41/>**
28
-**<http://[fd91:9191:9191:3::1]/>**
29
-
30
-Hosted by:
31
-* ne-vlezay80
32
-
33
-## mirrors.nia.dn42 (IPv6 Only)
34
-
35
-[eweOS](https://os.ewe.moe/download):
36
-* <http://mirrors.nia.dn42/eweos/>: Official Mirror in DN42
37
-* <http://mirrors.nia.dn42/eweos-images/>: Official Mirror in DN42
38
-
39
-## mirror.z.dn42
40
-
41
-Not hosting repositories itself, it collects other mirrors
42
-
43
-* Dynamic page: **<http://mirror.z.dn42/>**
44
-* Static page: **<http://mirror.z.dn42/_/>**
45
-
46
-## mirrors.leziblog.dn42
47
-
48
-Notes:
49
-- Local repository, hosted by [LeZi](mailto:[email protected])
50
-- Synchronize with the upstream every day at 00:00 UTC.
51
-- Supports `https`, `rsync`
52
- - https: `https://mirrors.leziblog.dn42`
53
- - rsync: `rsync://rsync.mirrors.leziblog.dn42`
54
-
55
-Ubuntu:
56
-- <http://mirrors.leziblog.dn42/ubuntu/>: archive.ubuntu.com/ubuntu
57
-- <http://mirrors.leziblog.dn42/ubuntu-ports/>: ports.ubuntu.com
58
-
59
-OpenWrt:
60
-- <http://mirrors.leziblog.dn42/openwrt/>: downloads.openwrt.org
61
-
62
-Ubuntu-image:
63
-- 20.04.6
64
- - [magnet:?xt=urn:btih:83df9f532bed288518d884fe63363e8f5b2286e2](magnet:?xt=urn:btih:83df9f532bed288518d884fe63363e8f5b2286e2&dn=ubuntu-20.04.6-live-server-amd64&tr=udp%3A%2F%2Ftracker.leziblog.dn42%3A11451&tr=https%3A%2F%2Ftracker.leziblog.dn42%2Fannounce&tr=http%3A%2F%2Ftracker.leziblog.dn42%2Fannounce)
65
-- 22.04.5
66
- - [magnet:?xt=urn:btih:8df707795d20b9d8021241d56c6f8282929c8b8d](magnet:?xt=urn:btih:8df707795d20b9d8021241d56c6f8282929c8b8d&dn=ubuntu-22.04.5-live-server-amd64&tr=udp%3A%2F%2Ftracker.leziblog.dn42%3A11451&tr=https%3A%2F%2Ftracker.leziblog.dn42%2Fannounce&tr=http%3A%2F%2Ftracker.leziblog.dn42%2Fannounce)
67
-- 24.04.3
68
- - [magnet:?xt=urn:btih:5fd2dd3688fdb31fe554b15ed65228f3db29a9f9](magnet:?xt=urn:btih:5fd2dd3688fdb31fe554b15ed65228f3db29a9f9&dn=ubuntu-24.04.3-live-server-amd64&tr=udp%3A%2F%2Ftracker.leziblog.dn42%3A11451&tr=https%3A%2F%2Ftracker.leziblog.dn42%2Fannounce&tr=http%3A%2F%2Ftracker.leziblog.dn42%2Fannounce)
... ...
\ No newline at end of file
services/Route-Beacon.md
... ...
@@ -1,4 +0,0 @@
1
-There is a route beacon periodically advertising and withdrawing the prefixes `172.21.100.24/29` and `fd40:e3b7:1d77:1234::/64`. These are the only prefixes of as4242421933.
2
-The schedule is the following: the prefixes are announced in every even (cest) hour in between minutes 1-10, and withdrawn when the clock is outside of the above mentioned period.
3
-The main purpose of the whole experiment is to be able to spot the ghosting implementations.
4
-The current state could be monitored on the prometheus or nrpe endpoint at test.nop.dn42 or one can query the last recorded ghosting state by telnetting the same endpoint and issuing commands from the banner.
services/SERNET-IX.md
... ...
@@ -1 +0,0 @@
1
-Placeholder.
... ...
\ No newline at end of file
services/Statistics.md
... ...
@@ -1,115 +0,0 @@
1
-# Statistics
2
-
3
-
4
-## IRC
5
-
6
-Channel statistics for #dn42@hackint are available at: <https://dev.0l.dn42/stats/>.
7
-
8
-## Scripts
9
-
10
-### Number of prefixes for collectd
11
-
12
-#### collectd.conf
13
-
14
-```conf
15
-LoadPlugin exec
16
-<Plugin exec>
17
- Exec nobody "/etc/collectd/bgp_prefixes-quagga.sh"
18
-</Plugin>
19
-```
20
-
21
-collectd refuses to exec scripts as root. On Debian vtysh is compiled with PAM support: adding nobody to the quaggavty group suffices.
22
-
23
-#### bgp_prefixes-quagga.sh
24
-
25
-```sh
26
-#!/bin/bash
27
-
28
-INTERVAL=10
29
-HOSTNAME=dn42.hq.c3d2.de
30
-
31
-while true; do
32
-n4=$(vtysh -d bgpd -c "show ip bgp"|grep Total|sed -e 's/Total number of prefixes //')
33
-n6=$(vtysh -d bgpd -c "show ipv6 bgp"|grep Total|sed -e 's/Total number of prefixes //')
34
-
35
-echo "PUTVAL $HOSTNAME/quagga-bgpd/routes-IPv4 interval=$INTERVAL N:$n4"
36
-echo "PUTVAL $HOSTNAME/quagga-bgpd/routes-IPv6 interval=$INTERVAL N:$n6"
37
-
38
-sleep $INTERVAL
39
-done
40
-```
41
-
42
-#### Number of prefixes per neighbour for bird
43
-
44
-```sh
45
-#!/bin/sh
46
-#
47
-# Collectd script for collecting the number of routes going through each
48
-# BGP neighour. Works for bird.
49
-#
50
-# See https://dn42.net/Services-Statistics
51
-
52
-INTERVAL=60
53
-HOSTNAME=mydn42router
54
-[ -n "$COLLECTD_HOSTNAME" ] && HOSTNAME="$COLLECTD_HOSTNAME"
55
-
56
-while true
57
-do
58
- birdc 'show protocols "*"' | grep ' BGP' | cut -d ' ' -f 1 | while read neighbour
59
- do
60
- nbroutes=$(birdc "show route protocol $neighbour primary count" | grep -v 'BIRD' | cut -d ' ' -f 1)
61
- echo "PUTVAL $HOSTNAME/bird-bgpd/routes-$neighbour interval=$INTERVAL N:$nbroutes"
62
- done
63
- # FIXME: we probably count non-BGP routes here
64
- totalroutes=$(birdc "show route primary count" | grep -v 'BIRD' | cut -d ' ' -f 1)
65
- echo "PUTVAL $HOSTNAME/bird-bgpd/routes-all interval=$INTERVAL N:$totalroutes"
66
- sleep $INTERVAL
67
-done
68
-```
69
-
70
-### munin plugin
71
-* add the following to /etc/munin/plugin-conf.d/munin-node
72
-
73
-```
74
-[quagga_bgp]
75
-user root
76
-```
77
-
78
-* place the script as quagga_bgp in /etc/munin/plugins
79
-
80
-```sh
81
-#!/bin/sh
82
-#
83
-#
84
-# Munin Plugin to show quagga bgp4 routes
85
-
86
-# Standard Config Section Begin ##
87
- if [ "$1" = "autoconf" ]; then
88
- echo yes
89
- exit 0
90
- fi
91
-
92
- if [ "$1" = "config" ]; then
93
-
94
- echo 'graph_title Quagga BGP4 Routes'
95
- echo 'graph_args --base 1000 -l 0'
96
- echo 'graph_scale yes'
97
- echo 'graph_vlabel Received routes via BGP4'
98
- echo 'graph_category Network'
99
- echo 'bgproutes.label Routes'
100
- echo 'graph_info Route information provided by quagga daemon via vtysh'
101
- exit 0
102
- fi
103
-# Standard Config Section End ####
104
-
105
-# Measure Section Begin ##########
106
- data=($(vtysh -c "show ip bgp"|grep Total|cut -d" " -f5))
107
-
108
- if [ "$data" = "" ]; then
109
- echo bgproutes.value 0
110
- else
111
- echo bgproutes.value $data
112
- fi
113
-# Measure Section ##########
114
-```
115
-* restart munin-node
services/Tahoe-LAFS.md
... ...
@@ -1,33 +0,0 @@
1
-# Tahoe LAFS
2
-
3
-## The idea
4
-Tahoe-LAFS provides a distributed, reliable and crypted file system.
5
-
6
-## How?
7
-Some people run Tahoe-LAFS nodes, providing space. With clients files can be published and received to the cloud. Everything will be encrypted on client side and keep redundant in the cloud.
8
-
9
-## Benefit
10
-Default you need only 3 of 10 parts of a file to reconstruct it. So a downtime of a tahoe node doesn't means data loss.
11
-
12
-Because of the encryption an owner of a node don't know anything about the stored content.
13
-
14
-## Usage
15
-To provide storage to the cloud you have to run a node.
16
-
17
-## Install and configuration
18
-To run a node you have to install tahoe-lafs at least in version 1.10.2. You can get source code from <https://tahoe-lafs.org/source/tahoe-lafs/releases/allmydata-tahoe-1.10.2.zip>, if the version of the package in the distribution not at least 1.10. Then you have to extract it and install with `python2 setup.py build && sudo python2 setup.py install`.
19
-
20
-Before the first start you have to create a node with `bin/tahoe create-node` or a client (doesn't provide storage) with `bin/tahoe create-client`. This will create the folder .tahoe in your home dir. In the file .tahoe/tahoe.cfg you have to enter on `introducer.furl` the link to our introducer node (UPDATED):
21
-
22
-```
23
-introducer.furl = pb://[email protected]:44412/kmvmrcforeeet7isgq7ftuymywqp3obb
24
-helper.furl = pb://[email protected]:44412/iiiopiclr2gszw2fmckbx3eob6krxk7x
25
-```
26
-
27
-With `bin/tahoe start` you start your local node.
28
-
29
-## Client
30
-You can reach the local node via web browser at [http://localhost:3456](http://localhost:3456).
31
-
32
-## Further informations
33
-Look at <https://tahoe-lafs.org> for further information.
services/Virtual-Machines.md
... ...
@@ -1,22 +0,0 @@
1
-# Virtual Machines
2
-
3
-Previously, some DN42 users had provided VMs to the community, but it is not known if any of these are currently active any more. The list of old providers is below the break.
4
-
5
-## burble.dn42
6
-
7
-If you have a DN42 project but do not have the resources to host it yourself, the burble.dn42 network may be able to provide hosting for you. Contact burble on IRC or via email to discuss.
8
-
9
-## LGP Corp
10
-LGP Corp will make available virtual machines at IXP frnte for all interested parties. The administrator can be contacted at toinux in IRC.
11
-
12
----
13
-
14
-### Old Providers:
15
-
16
-| Person | RAM | HDD | Net | CPU | Description | No. Available
17
-|:------------- |:------ |:--------- |:---------- |:---------- |:-------------------------- |:--------------------------|
18
-| RyanH | 384 MB | 5 GB | dn42 only | 1x 2.4Ghz | LXC in Manchester |12|
19
-| florianb | 384 MB | 5 GB | dn42 only | 1x 2.2Ghz | OpenVZ in Germany, good peers | always enough
20
-| nellicus | 384 MB | 5 - 10 GB | dn42 only | 1x 2.6Ghz | Xen/KVM Washington, DC USA | 0
21
-|Basil | 256 MB | 20 GB | dn42, NAT v4, /64 v6 | 1x 3.4Ghz | KVM, Gravelines, France | Always enough
22
-| KaiRaphixx (AS4242422506) | 512 MB - 4096 MB | 20 GB SSD / 50 GB HDD | dn42, NAT v4 (only Internet-Connection, No Port-Forwarding) | 1x - 2x 3.5 Ghz | KVM, Falkenstein, Germany | Always enough
services/Whois.md
... ...
@@ -59,45 +59,11 @@ The service is provided by [dn42regsrv](https://git.burble.com/burble.dn42/dn42r
59 59
60 60
See the page on [Registry Authentication](/howto/Registry-Authentication)
61 61
62
-# DNS interface
63
-
64
-There is also a DNS-based interface to query AS information from the registry. The DNS zone is `asn.dn42`.
65
-Mirrors are hosted at `asn.grmml.dn42` and `asn.lorkep.dn42`.
66
-
67
-Example:
68
-
69
-```sh
70
-$ dig +short AS4242420000.asn.dn42 TXT
71
-"4242420000 | DN42 | dn42 | | PYROPETER-AS PyroPeters AS"
72
-```
73
-
74
-The Python code for generating the zone from the registry is available on the monotone repository.
75
-
76
-An alternative version to query the registry is it `ip.catgirls.dn42` (IPv6 only) (Source code <https://git.catgirls.systems/famfo/ipinfo>). Note: if there is no `route`/`route6` object for the `inetnum`/`inet6num`, the ip address will not be found.
77
-
78
-This can be used together with `mtr` using the `--ipinfo_provider4` and `--ipinfo_provider6` flags (mtr has to be built from source for that, there hasn't been a release in a while).
79
-
80
-Example:
81
-```sh
82
-$ dig +short TXT as4242421411.ip.catgirls.dn42
83
-"4242421411 | C4TG1RL5-MNT | 172.20.0.81/32 | 172.23.196.32/27 | 172.20.0.80/32 | fd42:d42:d42:2080::/64 | fd42:deca:fbad::/48 | fd42:d42:d42:81::/64"
84
-$ dig +short TXT 32.196.23.172.ip.catgirls.dn42
85
-"4242421411 | C4TG1RL5-MNT | 172.20.0.81/32 | 172.23.196.32/27 | 172.20.0.80/32 | fd42:d42:d42:2080::/64 | fd42:deca:fbad::/48 | fd42:d42:d42:81::/64"
86
-$ dig +short TXT 1.d.a.b.f.a.c.e.d.2.4.d.f.ip.catgirls.dn42
87
-"4242421411 | C4TG1RL5-MNT | 172.20.0.81/32 | 172.23.196.32/27 | 172.20.0.80/32 | fd42:d42:d42:2080::/64 | fd42:deca:fbad::/48 | fd42:d42:d42:81::/64"
88
-```
89
-
90
-The idea comes from the guys at cymru.com, who provide this service for the Internet (e.g. `AS1.asn.cymru.com`), see <https://www.team-cymru.org/Services/ip-to-asn.html#dns>
91
-
92
-# Software
93
-
94
- * [lglass](/howto/lglass) is a python implementation for working with the registry. It features a whois server, tools to manipulate the data (DNS zone generation, etc).
95
- * [whois42d](https://git.dn42.dev/registry/whois42d) written in golang, lightweight/fast, whois server with support for all registry objects, type filtering and systemd socket activation.
96
- * [who42rs](https://git.dn42.dev/C4TG1RL5/who42rs) a reimplementation of whois42d written in Rust
97
-
98 62
# Whois daemons
99 63
100
-We have anycast IPv4 and IPv6, both reachable under whois.dn42. IPs are 172.22.0.43 respective fd42:d42:d42:43::1. Please consider joining these anycast adresses when you set up your server. Updates every 1 hour would be nice for a start.
64
+**We have anycast IPv4 and IPv6, both reachable under whois.dn42. IPs are 172.22.0.43 respective fd42:d42:d42:43::1.**
65
+
66
+Please consider joining these anycast adresses when you set up your server. Updates every 1 hour would be nice for a start.
101 67
102 68
| **person** | **dns** | **ip** |
103 69
|-------------|---------------------------|-----------------|
... ...
@@ -111,7 +77,7 @@ We have anycast IPv4 and IPv6, both reachable under whois.dn42. IPs are 172.22.0
111 77
| Bandura | whois.bandura.dn42 | 172.22.149.225 / fd04:234e:fc31::1 (may change in the future) |
112 78
| SUNNET | whois.sun.dn42 | 172.21.100.134 / fdc8:dc88:ee11:128::134 |
113 79
114
-## Down?
80
+## Down
115 81
116 82
| **person** | **dns** | **ip** |
117 83
|------------|---------------------------|-----------------|
... ...
@@ -158,6 +124,29 @@ sudo gem install netaddr
158 124
cd whoisd/ruby
159 125
sudo ruby whoisd.rb nobody
160 126
```
161
-## Whois restful API
162
-Note: this service is in beta testing, use at your own risk.
163
-<https://whois.rest.dn42/>
127
+
128
+# DNS interface
129
+
130
+There is also a DNS-based interface to query AS information from the registry.
131
+It is `ip.catgirls.dn42` (IPv6 only) (Source code <https://git.catgirls.systems/famfo/ipinfo>). Note: if there is no `route`/`route6` object for the `inetnum`/`inet6num`, the ip address will not be found.
132
+
133
+This can be used together with `mtr` using the `--ipinfo_provider4` and `--ipinfo_provider6` flags (mtr has to be built from source for that, there hasn't been a release in a while).
134
+
135
+Example:
136
+```sh
137
+$ dig +short TXT as4242421411.ip.catgirls.dn42
138
+"4242421411 | C4TG1RL5-MNT | 172.20.0.81/32 | 172.23.196.32/27 | 172.20.0.80/32 | fd42:d42:d42:2080::/64 | fd42:deca:fbad::/48 | fd42:d42:d42:81::/64"
139
+$ dig +short TXT 32.196.23.172.ip.catgirls.dn42
140
+"4242421411 | C4TG1RL5-MNT | 172.20.0.81/32 | 172.23.196.32/27 | 172.20.0.80/32 | fd42:d42:d42:2080::/64 | fd42:deca:fbad::/48 | fd42:d42:d42:81::/64"
141
+$ dig +short TXT 1.d.a.b.f.a.c.e.d.2.4.d.f.ip.catgirls.dn42
142
+"4242421411 | C4TG1RL5-MNT | 172.20.0.81/32 | 172.23.196.32/27 | 172.20.0.80/32 | fd42:d42:d42:2080::/64 | fd42:deca:fbad::/48 | fd42:d42:d42:81::/64"
143
+```
144
+
145
+The idea comes from the guys at cymru.com, who provide this service for the Internet (e.g. `AS1.asn.cymru.com`), see <https://www.team-cymru.org/Services/ip-to-asn.html#dns>
146
+
147
+# Software
148
+
149
+ * [lglass](/howto/lglass) is a python implementation for working with the registry. It features a whois server, tools to manipulate the data (DNS zone generation, etc).
150
+ * [whois42d](https://git.dn42.dev/registry/whois42d) written in golang, lightweight/fast, whois server with support for all registry objects, type filtering and systemd socket activation.
151
+ * [who42rs](https://git.dn42.dev/C4TG1RL5/who42rs) a reimplementation of whois42d written in Rust
152
+
services/ca/Automatic-CA.md
... ...
@@ -0,0 +1,234 @@
1
+DN42 Self-Serve CA
2
+==================
3
+
4
+This client is used for automating the process of requesting TLS certificates. (Available via: [dn42](https://ca.dn42/ca-client), [iana](https://ca.dn42.us/ca-client), [git]([email protected]:dn42/ca-client))
5
+
6
+
7
+## VALIDATION PROCESS
8
+
9
+The process validates ownership by verifying control of both a users MNT object in the registry and the authoritative DNS server.
10
+The following steps take place in creating a signed certificate.
11
+
12
+*User Flow*
13
+
14
+1. User generates a 2048+ bit rsa key and CSR for their MNT object.
15
+2. User generates a sha256 hash of the rsa public key (commonly known as a [public keypin][keypin]) and adds it as a remark in their MNT
16
+3. User submits the csr to the CA to validate and sign.
17
+4. CA checks for the keypin in their MNT object (if it does not find it in the local copy of the [monotone repo][ca-mtn] it will check against io.nixnodes.dn42)
18
+5. (optional) CA revokes prior certificate as superseded.
19
+6. CA signs and returns the user certificate.
20
+
21
+*Server Flow*
22
+
23
+1. User generates a 2048+ bit rsa key and CSR for the dns CN. Also including any SAN domains.
24
+2. User generates a sha256 hash of the rsa public key (commonly known as a [public keypin][keypin]) and adds it as a txt record in their DNS.
25
+3. User uses the user certificate to authenticate and submits the csr to the CA to validate and sign.
26
+4. CA checks for the user keypin in their MNT object (if it does not find it in the local copy of the [monotone repo][ca-mtn] it will check against io.nixnodes.dn42)
27
+5. CA checks the dns records for the CN and each SAN for the tls keypin.
28
+6. (optional) CA revokes prior certificate as superseded.
29
+7. CA signs and returns the tls certificate.
30
+
31
+*User Renewals*
32
+
33
+User certificates are signed for 180 days. To renew follow the steps above starting from number 3.
34
+
35
+*Server renewals*
36
+
37
+Server certificates are signed for 45 days. To renew follow the steps above starting from number 3.
38
+
39
+[keypin]: <https://developer.mozilla.org/en-US/docs/Web/Security/Public_Key_Pinning>
40
+[ca-mtn]: <https://ca.dn42/reg/mntner/>
41
+
42
+*Certificate Revocations*
43
+
44
+1. User uses the user certificate to authenticate and submits the serial and revoke reason to CA.
45
+2. CA checks user keypin in their MNT object (if it does not find it in the local copy of the [monotone repo][ca-mtn] it will check against io.nixnodes.dn42)
46
+3. CA checks that owner in certificate matches.
47
+4. CA revokes certificate and updates revocation list.
48
+
49
+## INSTALL
50
+
51
+get the script here:
52
+
53
+```sh
54
+curl https://ca.dn42/ca.dn42 > ca.dn42; chmod +x ca.dn42
55
+```
56
+
57
+available via git: [email protected]:dn42/ca-client
58
+
59
+
60
+## KNOWN ISSUES
61
+
62
+### openssl prior to 1.0.2 returns "SSL certificate problem: permitted subtree violation"
63
+
64
+The way openssl validated name constraints prevented it from accepting dns names that started with a dot.
65
+Because the name constraint is "DNS:.dn42" it fails to validate.
66
+
67
+[Read more on this mailing list thread][libssl-1]
68
+
69
+
70
+[libssl-1]: <https://groups.google.com/forum/#!topic/mailing.openssl.dev/drG3U-S4iaE>
71
+
72
+
73
+### X.509 nameConstraints on certificates not supported on OS X
74
+
75
+Browsers and clients that rely on Apple's [Secure Transport][osx-1] library does not support X.509's nameConstraints.
76
+
77
+Read more on this [stack exchange post][osx-2]
78
+
79
+
80
+[osx-1]: <https://developer.apple.com/library/mac/documentation/Security/Reference/secureTransportRef/>
81
+[osx-2]: <http://security.stackexchange.com/a/97133>
82
+
83
+
84
+## How to Run
85
+
86
+```
87
+Usage: # OWNER is your MNT handle.
88
+ ./ca.dn42 user-gen OWNER EMAIL # Output to OWNER.csr and OWNER.key
89
+ ./ca.dn42 user-sig OWNER # Output to OWNER.crt and OWNER.p12
90
+ ./ca.dn42 tls-gen DNS OWNER EMAIL [SAN] # Output to OWNER_DNS.csr and OWNER.key
91
+ ./ca.dn42 tls-sig DNS OWNER # Output to OWNER_DNS.crt and OWNER_DNS.p12
92
+ ./ca.dn42 revoke OWNER CERTFILE [REASON]
93
+
94
+
95
+Revoke Reasons: unspecified, keyCompromise, affiliationChanged,
96
+ superseded, cessationOfOperation, certificateHold, removeFromCRL
97
+
98
+Environtment Options:
99
+ DN42CA_PKCS12 = 1 # Generate pkcs12 file for certificate.
100
+```
101
+
102
+## Example
103
+
104
+Generate the user key
105
+
106
+```sh
107
+$ ./ca.dn42 user-gen XUU-MNT [email protected]
108
+Generating a 2048 bit RSA private key
109
+...............................+++
110
+.........................+++
111
+writing new private key to 'XUU-MNT.key'
112
+-----
113
+=
114
+= You need to have this pin added to your mnt object before proceeding to the next step.
115
+=
116
+|MNT Key Pin| remarks: pin-sha256:HdqCid0sedWXX3Q0uG98rYjJyTNOzaT13WfWpr1GvIw=
117
+```
118
+
119
+### Sign the user key
120
+
121
+```sh
122
+$ ./ca.dn42 user-sign XUU-MNT [email protected]
123
+== USER CERT ==
124
+ C:XD
125
+ O:dn42
126
+ OU:dn42 Certificate Authority
127
+ CN:XUU-MNT
128
+ emailAddress:[email protected]
129
+ owner:XUU-MNT
130
+ pin-sha256:HdqCid0sedWXX3Q0uG98rYjJyTNOzaT13WfWpr1GvIw=
131
+OK https://ca.dn42/crt/XUU-MNT.crt
132
+Enter Export Password:
133
+Verifying - Enter Export Password:
134
+```
135
+
136
+### Generate the server key
137
+
138
+```sh
139
+$ ./ca.dn42 tls-gen ca.dn42 XUU-MNT [email protected] DNS:ca.dn42
140
+
141
+Generating a 2048 bit RSA private key
142
+...........................................+++
143
+.......................+++
144
+writing new private key to 'XUU-MNT_ca.dn42.key'
145
+-----
146
+writing RSA key
147
+=
148
+= |DNS Key Pin| You need to have this pin added to your dns records before proceeding to the next step.
149
+=
150
+_dn42_tlsverify.ca.dn42. IN TXT XUU-MNT:pin-sha256:Qu/X5GNqOo05TdL7oexkamE34OUuDE60T+f0xc60UPQ=
151
+```
152
+
153
+After you set this TXT-Record for your domain, you can verify it with the following command (by replacing the domain with your own):
154
+
155
+```sh
156
+$ dig +short TXT _dn42_tlsverify.ca.dn42.
157
+"XUU-MNT:pin-sha256:Qu/X5GNqOo05TdL7oexkamE34OUuDE60T+f0xc60UPQ="
158
+```
159
+
160
+### Sign the server key
161
+
162
+```sh
163
+$ ./ca.dn42 tls-sign ca.dn42 XUU-MNT
164
+== USER CERT ==
165
+ C:XD
166
+ O:dn42
167
+ OU:dn42 Certificate Authority
168
+ CN:XUU-MNT
169
+ emailAddress:[email protected]
170
+ owner:XUU-MNT
171
+ pin-sha256:HdqCid0sedWXX3Q0uG98rYjJyTNOzaT13WfWpr1GvIw=
172
+== DNS CSR ==
173
+ C:XD
174
+ O:dn42
175
+ OU:dn42 Certificate Authority
176
+ CN:ca.dn42
177
+ emailAddress:[email protected]
178
+ owner:XUU-MNT
179
+ pin-sha256:Qu/X5GNqOo05TdL7oexkamE34OUuDE60T+f0xc60UPQ=
180
+== DNS Tests ==
181
+ CN Record: ca.dn42 PASSED
182
+ SAN Record: ca.dn42 PASSED
183
+OK https://ca.dn42/crt/XUU-MNT_ca.dn42.crt
184
+Enter Export Password: ****
185
+Verifying - Enter Export Password: ****
186
+```
187
+
188
+The generated certificate will be valid for 3 months, to renew it simply run ```./ca.dn42 tls-sign ca.dn42 XUU-MNT``` again. This could be also automated in cron:
189
+
190
+```sh
191
+0 0 1 * * /etc/ssl/dn42/ca.dn42 tls-sign wiki.dn42 MIC92-MNT
192
+```
193
+
194
+or with a systemd timer:
195
+
196
+```conf
197
+# update-dn42-ca.timer
198
+[Timer]
199
+OnBootSec=1h
200
+OnUnitActiveSec=1w
201
+Persistent=yes
202
+
203
+[Install]
204
+WantedBy=timers.target
205
+```
206
+
207
+```conf
208
+[Service]
209
+Type=oneshot
210
+WorkingDirectory=/etc/ssl/dn42
211
+ExecStart=/etc/ssl/dn42/ca.dn42 tls-sign wiki.dn42 MIC92-MNT
212
+# accept multiple ExecStart lines for other certificates
213
+# ExecStart=/etc/ssl/dn42/ca.dn42 tls-sign foobar.dn42 MIC92-MNT
214
+ExecStart=/usr/bin/nginx -s reload
215
+```
216
+
217
+### Revoke a certificate.
218
+
219
+```sh
220
+$ ./ca.dn42 revoke XUU-MNT XUU-MNT.crt
221
+== USER CERT ==
222
+ C:XD
223
+ O:dn42
224
+ OU:dn42 Certificate Authority
225
+ CN:XUU-MNT
226
+ emailAddress:[email protected]
227
+ owner:XUU-MNT
228
+ pin-sha256:HdqCid0sedWXX3Q0uG98rYjJyTNOzaT13WfWpr1GvIw=
229
+== REVOKE CERT ==
230
+OK
231
+```
232
+
233
+### Certificate transparency
234
+All issued certificates will be logged to [xuu's mattermost instance](https://teams.dn42/dn42/channels/tls-certificates).
services/ca/Certificate-Authority.md
... ...
@@ -0,0 +1,189 @@
1
+# SSL Certificate Authority
2
+
3
+internal.dn42 is signed by an internally maintained CA that is only allowed to sign *.dn42 domains. The CA is maintained by [email protected].
4
+
5
+If you are required to specify a license to clarify redistribution, then it [can be considered](https://groups.io/g/dn42/message/844) as [CC0](https://creativecommons.org/public-domain/cc0/).
6
+
7
+The CA certificate ([dn42](https://ca.dn42/crt/root-ca.crt), [iana](https://ca.dn42.us/crt/root-ca.crt)):
8
+
9
+```
10
+Certificate:
11
+ Data:
12
+ Version: 3 (0x2)
13
+ Serial Number: 137808117760 (0x2016010000)
14
+ Signature Algorithm: sha256WithRSAEncryption
15
+ Issuer: C=XD, O=dn42, OU=dn42 Certificate Authority, CN=dn42 Root Authority CA
16
+ Validity
17
+ Not Before: Jan 16 00:12:04 2016 GMT
18
+ Not After : Dec 31 23:59:59 2030 GMT
19
+ Subject: C=XD, O=dn42, OU=dn42 Certificate Authority, CN=dn42 Root Authority CA
20
+ Subject Public Key Info:
21
+ Public Key Algorithm: rsaEncryption
22
+ Public-Key: (2048 bit)
23
+ Modulus:
24
+ 00:c1:19:10:de:01:86:11:f1:82:0c:b0:d4:e5:ff:
25
+ 9a:c8:e3:aa:f4:00:08:82:c0:cf:7f:05:7a:21:97:
26
+ c1:b5:8b:a3:d1:54:ee:fa:04:0f:77:d5:5c:98:4b:
27
+ d9:88:18:c1:17:10:92:e5:24:fa:ef:61:eb:5d:7b:
28
+ 11:e5:be:ba:89:f2:60:c9:3b:82:05:3a:74:54:60:
29
+ 23:66:1a:d8:cd:28:7b:f1:ea:55:25:9a:8c:04:a0:
30
+ ff:9d:48:54:4c:9d:bc:2d:a0:df:71:ae:64:47:0d:
31
+ e7:75:05:f4:c5:02:2a:d2:0c:be:a3:63:54:62:2b:
32
+ ad:29:eb:6a:08:a4:5e:a8:eb:f1:52:14:4e:d1:5d:
33
+ 41:2f:d3:19:ba:e4:82:36:7a:d1:a3:f2:84:f6:07:
34
+ b2:f6:0c:30:db:db:76:ee:e9:14:05:c7:8f:75:b7:
35
+ 3f:d5:d5:35:56:d0:92:44:df:26:1e:00:fa:ae:cb:
36
+ 7a:c9:50:67:5d:69:f8:f9:fd:25:a7:1d:db:40:b1:
37
+ 42:bc:45:57:e1:c9:1c:42:ba:69:80:1e:ea:25:99:
38
+ 12:9f:6f:23:a3:d2:2e:4a:cd:15:e4:7c:49:f9:d1:
39
+ c0:f0:19:0c:15:50:ce:a6:51:bb:aa:16:b2:82:ec:
40
+ f4:61:44:8c:1c:dd:65:60:04:77:b0:4d:99:67:17:
41
+ fb:09
42
+ Exponent: 65537 (0x10001)
43
+ X509v3 extensions:
44
+ X509v3 Key Usage: critical
45
+ Certificate Sign, CRL Sign
46
+ X509v3 Basic Constraints: critical
47
+ CA:TRUE
48
+ X509v3 Subject Key Identifier:
49
+ 54:76:88:B2:C0:B5:30:D0:FC:4F:C9:6D:3B:F9:8C:55:11:AC:15:15
50
+ X509v3 Authority Key Identifier:
51
+ keyid:54:76:88:B2:C0:B5:30:D0:FC:4F:C9:6D:3B:F9:8C:55:11:AC:15:15
52
+
53
+ X509v3 Name Constraints:
54
+ Permitted:
55
+ DNS:.dn42
56
+ IP:172.20.0.0/255.252.0.0
57
+ IP:FD42:0:0:0:0:0:0:0/FFFF:0:0:0:0:0:0:0
58
+
59
+ Signature Algorithm: sha256WithRSAEncryption
60
+ 5c:a4:3b:41:a0:81:69:e2:71:99:4d:75:4b:5a:20:0d:2a:d9:
61
+ ec:ea:bc:8d:4f:b0:6c:f3:2e:41:1a:a0:75:f3:de:7e:3a:e0:
62
+ a7:b9:db:cd:f5:16:e4:6a:cb:e7:cc:2a:8f:ee:7f:14:0a:a5:
63
+ b5:f9:66:48:81:e5:68:1e:0c:a6:a3:3c:a7:2b:e3:95:cf:e3:
64
+ 63:15:0d:16:09:63:d9:66:31:3b:42:2e:7c:1a:e5:28:8e:5e:
65
+ 3d:9e:28:99:48:e9:47:86:11:e2:04:29:60:2b:96:95:99:ae:
66
+ 3f:ab:ff:3f:45:ab:7e:07:45:4e:4d:0b:18:40:3d:3b:02:9c:
67
+ 4e:a9:0f:a5:c2:3f:4a:30:77:ae:66:5c:b3:8d:b2:41:6b:e2:
68
+ 98:01:7d:e0:6b:52:70:4d:3d:b8:a9:48:f5:02:d2:d9:40:66:
69
+ b6:5e:44:25:11:55:ac:31:02:d7:67:72:6a:6a:bc:74:34:5f:
70
+ 75:dc:9a:4f:83:28:40:e0:2a:dc:3f:41:43:5a:47:07:2b:b7:
71
+ a7:3f:d0:15:a2:42:d7:30:22:f2:f6:e4:b4:f6:3b:38:ca:6b:
72
+ 4c:e7:3c:a4:70:cb:de:af:0a:14:ff:23:25:ca:04:cd:9e:49:
73
+ c3:4b:e4:0a:b5:0b:84:b5:ef:b4:5b:63:07:47:63:cd:5c:50:
74
+ 0b:42:0a:a9
75
+-----BEGIN CERTIFICATE-----
76
+MIID8DCCAtigAwIBAgIFIBYBAAAwDQYJKoZIhvcNAQELBQAwYjELMAkGA1UEBhMC
77
+WEQxDTALBgNVBAoMBGRuNDIxIzAhBgNVBAsMGmRuNDIgQ2VydGlmaWNhdGUgQXV0
78
+aG9yaXR5MR8wHQYDVQQDDBZkbjQyIFJvb3QgQXV0aG9yaXR5IENBMCAXDTE2MDEx
79
+NjAwMTIwNFoYDzIwMzAxMjMxMjM1OTU5WjBiMQswCQYDVQQGEwJYRDENMAsGA1UE
80
+CgwEZG40MjEjMCEGA1UECwwaZG40MiBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxHzAd
81
+BgNVBAMMFmRuNDIgUm9vdCBBdXRob3JpdHkgQ0EwggEiMA0GCSqGSIb3DQEBAQUA
82
+A4IBDwAwggEKAoIBAQDBGRDeAYYR8YIMsNTl/5rI46r0AAiCwM9/BXohl8G1i6PR
83
+VO76BA931VyYS9mIGMEXEJLlJPrvYetdexHlvrqJ8mDJO4IFOnRUYCNmGtjNKHvx
84
+6lUlmowEoP+dSFRMnbwtoN9xrmRHDed1BfTFAirSDL6jY1RiK60p62oIpF6o6/FS
85
+FE7RXUEv0xm65II2etGj8oT2B7L2DDDb23bu6RQFx491tz/V1TVW0JJE3yYeAPqu
86
+y3rJUGddafj5/SWnHdtAsUK8RVfhyRxCummAHuolmRKfbyOj0i5KzRXkfEn50cDw
87
+GQwVUM6mUbuqFrKC7PRhRIwc3WVgBHewTZlnF/sJAgMBAAGjgaowgacwDgYDVR0P
88
+AQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFFR2iLLAtTDQ/E/J
89
+bTv5jFURrBUVMB8GA1UdIwQYMBaAFFR2iLLAtTDQ/E/JbTv5jFURrBUVMEQGA1Ud
90
+HgQ9MDugOTAHggUuZG40MjAKhwisFAAA//wAADAihyD9QgAAAAAAAAAAAAAAAAAA
91
+//8AAAAAAAAAAAAAAAAAADANBgkqhkiG9w0BAQsFAAOCAQEAXKQ7QaCBaeJxmU11
92
+S1ogDSrZ7Oq8jU+wbPMuQRqgdfPefjrgp7nbzfUW5GrL58wqj+5/FAqltflmSIHl
93
+aB4MpqM8pyvjlc/jYxUNFglj2WYxO0IufBrlKI5ePZ4omUjpR4YR4gQpYCuWlZmu
94
+P6v/P0WrfgdFTk0LGEA9OwKcTqkPpcI/SjB3rmZcs42yQWvimAF94GtScE09uKlI
95
+9QLS2UBmtl5EJRFVrDEC12dyamq8dDRfddyaT4MoQOAq3D9BQ1pHByu3pz/QFaJC
96
+1zAi8vbktPY7OMprTOc8pHDL3q8KFP8jJcoEzZ5Jw0vkCrULhLXvtFtjB0djzVxQ
97
+C0IKqQ==
98
+-----END CERTIFICATE-----
99
+```
100
+
101
+
102
+## Obtaining certificates
103
+* ca.dn42 [client process](/services/ca/Automatic-CA).
104
+* Burble maintains an [ACME server](https://burble.dn42/services/acme/) (with accompanying CA), compatible with any LetsEncrypt client like Certbot, Dehydrated or Caddy.
105
+* Kioubit maintains a [certificate authority](https://dn42.g-load.eu/about/certificate-authority/) with certificates obtainable via a simple script or completely [using only the browser](https://dn42.g-load.eu/about/certificate-authority/oneclick/).
106
+
107
+## Testing constraints
108
+
109
+The name constraints can be verified for example by using openssl:
110
+```sh
111
+openssl x509 -in dn42.crt -text -noout
112
+```
113
+which will show among other things:
114
+```
115
+ X509v3 Name Constraints:
116
+ Permitted:
117
+ DNS:.dn42
118
+```
119
+
120
+## Importing the certificate
121
+
122
+- cacert have a comprehensive FAQ on how to import your own root certificates in [browsers](http://wiki.cacert.org/FAQ/BrowserClients) and [other software](http://wiki.cacert.org/FAQ/ImportRootCert)
123
+
124
+### Archlinux
125
+
126
+Install `ca-certificates-dn42` from [AUR](https://aur.archlinux.org/packages/ca-certificates-dn42/)
127
+
128
+### Debian/Ubuntu
129
+
130
+#### Unofficial Debian Package
131
+
132
+```bash
133
+wget https://ca.dn42.us/ca-dn42_20161122.0_all.deb
134
+# If you're on a dn42-only network:
135
+# wget --no-check-certificate https://ca.dn42/ca-dn42_20161122.0_all.deb
136
+sudo dpkg -i ca-dn42_20161122.0_all.deb
137
+sudo dpkg-reconfigure ca-certificates
138
+```
139
+
140
+You will be asked which certificates you would like to enabled. By default, the dn42 root certifcate (dn42/root-ca.crt) is not enabled, be sure to enable it. This package is waiting for inclusion in Debian (Debian bug [#845351](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=845351)).
141
+
142
+#### Manual Installation
143
+
144
+```bash
145
+$ mkdir /usr/share/ca-certificates/extra
146
+$ cat > /usr/share/ca-certificates/extra/dn42.crt <<EOF
147
+-----BEGIN CERTIFICATE-----
148
+MIID8DCCAtigAwIBAgIFIBYBAAAwDQYJKoZIhvcNAQELBQAwYjELMAkGA1UEBhMC
149
+WEQxDTALBgNVBAoMBGRuNDIxIzAhBgNVBAsMGmRuNDIgQ2VydGlmaWNhdGUgQXV0
150
+aG9yaXR5MR8wHQYDVQQDDBZkbjQyIFJvb3QgQXV0aG9yaXR5IENBMCAXDTE2MDEx
151
+NjAwMTIwNFoYDzIwMzAxMjMxMjM1OTU5WjBiMQswCQYDVQQGEwJYRDENMAsGA1UE
152
+CgwEZG40MjEjMCEGA1UECwwaZG40MiBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxHzAd
153
+BgNVBAMMFmRuNDIgUm9vdCBBdXRob3JpdHkgQ0EwggEiMA0GCSqGSIb3DQEBAQUA
154
+A4IBDwAwggEKAoIBAQDBGRDeAYYR8YIMsNTl/5rI46r0AAiCwM9/BXohl8G1i6PR
155
+VO76BA931VyYS9mIGMEXEJLlJPrvYetdexHlvrqJ8mDJO4IFOnRUYCNmGtjNKHvx
156
+6lUlmowEoP+dSFRMnbwtoN9xrmRHDed1BfTFAirSDL6jY1RiK60p62oIpF6o6/FS
157
+FE7RXUEv0xm65II2etGj8oT2B7L2DDDb23bu6RQFx491tz/V1TVW0JJE3yYeAPqu
158
+y3rJUGddafj5/SWnHdtAsUK8RVfhyRxCummAHuolmRKfbyOj0i5KzRXkfEn50cDw
159
+GQwVUM6mUbuqFrKC7PRhRIwc3WVgBHewTZlnF/sJAgMBAAGjgaowgacwDgYDVR0P
160
+AQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFFR2iLLAtTDQ/E/J
161
+bTv5jFURrBUVMB8GA1UdIwQYMBaAFFR2iLLAtTDQ/E/JbTv5jFURrBUVMEQGA1Ud
162
+HgQ9MDugOTAHggUuZG40MjAKhwisFAAA//wAADAihyD9QgAAAAAAAAAAAAAAAAAA
163
+//8AAAAAAAAAAAAAAAAAADANBgkqhkiG9w0BAQsFAAOCAQEAXKQ7QaCBaeJxmU11
164
+S1ogDSrZ7Oq8jU+wbPMuQRqgdfPefjrgp7nbzfUW5GrL58wqj+5/FAqltflmSIHl
165
+aB4MpqM8pyvjlc/jYxUNFglj2WYxO0IufBrlKI5ePZ4omUjpR4YR4gQpYCuWlZmu
166
+P6v/P0WrfgdFTk0LGEA9OwKcTqkPpcI/SjB3rmZcs42yQWvimAF94GtScE09uKlI
167
+9QLS2UBmtl5EJRFVrDEC12dyamq8dDRfddyaT4MoQOAq3D9BQ1pHByu3pz/QFaJC
168
+1zAi8vbktPY7OMprTOc8pHDL3q8KFP8jJcoEzZ5Jw0vkCrULhLXvtFtjB0djzVxQ
169
+C0IKqQ==
170
+-----END CERTIFICATE-----
171
+EOF
172
+$ echo "extra/dn42.crt" >> /etc/ca-certificates.conf
173
+$ update-ca-certificates
174
+```
175
+
176
+### AlmaLinux/RockyLinux/Probably anything RHEL
177
+
178
+```bash
179
+$ /etc/pki/ca-trust/source/anchors/dn42.crt <<EOF
180
+-----BEGIN CERTIFICATE-----
181
+...
182
+-----END CERTIFICATE-----
183
+EOF
184
+$ update-ca-trust
185
+```
186
+
187
+## PKI Store
188
+
189
+All issued keys and crl information are posted at: <https://ca.dn42/>
services/dns/New-DNS.md
... ...
@@ -0,0 +1,52 @@
1
+After frequent issues with the [Old Hierarchical DNS](/services/Old-Hierarchical-DNS) system in early 2018, work has started to build a new and more reliable DNS system. The main goals are:
2
+* Reliability and Consistency to avoid debugging very obscure issues that are also hard to reproduce.
3
+* Low maintenance burden on operators.
4
+* Proper DNSSEC support for everything.
5
+
6
+# End Users
7
+It is **strongly recommended** to run your own resolver for security and privacy reasons. Setting it up and maintaining it should be easy, see [services/dns/Configuration](/services/dns/Configuration).
8
+
9
+If running your own resolver is not possible or desirable, you can choose one or more instances from [dns/recursive-servers.dn42 in the registry](https://git.dn42.dev/dn42/registry/src/master/data/dns/recursive-servers.dn42). Please make sure you fully understand the consequences and fully trust these operators.
10
+
11
+You can also use the globally anycasted a.recursive-servers.dn42 but you won't have any control over which instance you get. This is a **very bad idea** from a security standpoint.
12
+
13
+# Instances
14
+The new DNS system has two different components:
15
+* *.recursive-servers.dn42 and local resolvers responsible for handling queries from clients, validating DNSSEC and directing the queries at clearnet/dn42/ICVPN.
16
+* *.delegation-servers.dn42 and *.master.delegation-servers.dn42 are a normal master-slave setup for providing the few official infrastructural zones.
17
+
18
+## *.recursive-servers.dn42
19
+These are simple resolvers capable of resolving dn42 domains. Every operator gets a single letter name pointing to addresses assigned from their own address space and is strongly encouraged to use anycasting across multiple nodes to improve reliability. There is also the global anycast a.recursive-servers.dn42 which includes some/all other instances. Whether an *.recursive-servers.dn42 can resolve clearnet queries or not is decided by its operator but all a.recursive-servers.dn42 instances MUST resolve clearnet queries correctly. It is explicitly not supported to use clearnet nservers for dn42 zones and dn42 nservers for clearnet zones.
20
+
21
+## *.delegation-servers.dn42
22
+These are simple authoritative servers for the dn42 zone, rDNS and a few DNS infrastructure zones. Every operator gets a single letter name pointing to addresses assigned from their own address space and is strongly encouraged to use anycasting across multiple nodes to improve reliability. There is no anycast instance because that would make debugging much harder and *.recursive-servers.dn42 instances should do loadbalancing/failover across all instances listed in the registry.
23
+
24
+## *.master.delegation-servers.dn42
25
+These instances do not serve any clients. They poll the registry regularly and rebuild and resign (DNSSEC) the zones as needed. If any zone changes, all *.delegation-servers.dn42 instances are notified ([RFC1996](https://tools.ietf.org/html/rfc1996)) which then load the new zone data over AXFR ([RFC5936](https://tools.ietf.org/html/rfc5936)). The pool of masters is intentionally kept very small because of its much higher coordination needs and also the lacking support of a multi-master mode in many authoritative server implementations. The masters are only reachable over dedicated IPv6 assignments which are set up in a way that any master operator can hijack the address of a problematic master without having to wait for its operator to fix something.
26
+
27
+# Running your own instances
28
+* If you want to run your own instances, make sure you are subscribed to the [mailinglist](/contact). It is also strongly recommended to join #dn42-dns@hackint. All changes are announced to the mailinglist but IRC makes debugging sessions much easier.
29
+* Choose the implementation(s) you want to use. It should support at least AXFR+NOTIFY (*.delegation-servers.dn42) or DNSSEC (*.recursive-servers.dn42).
30
+* Check if [TODO](/TODO) already has configuration snippets for your implementation.
31
+ * If yes, download it from there and include it in the main configuration.
32
+ * If not, then join us in #dn42-dns@hackint so we can add it together.
33
+* Verify that everything works:
34
+ * For *.delegation-servers.dn42: Do an AXFR against all zones and compare with the result of an existing instance. The result should be identical.
35
+ * For *.recursive-servers.dn42: Query clearnet, dn42 and ICVPN domains including rDNS. Make sure that both signed and unsigned domains work properly.
36
+* (Optional) Choose your single letter name and ask in #dn42-dns@hackint to get it added to the registry. Once added to the list, you must implement changes announced to the mailinglist within a week (faster is obviously better) or you might get removed again. We try to keep maintenance work as low as possible but we can't do it without the cooperation of all operators!
37
+
38
+# [Monitoring](https://grafana.burble.com/d/E4iCaHoWk/dn42-dns-status?orgId=1&refresh=1m)
39
+burble is providing monitoring for the new DNS system. It does simple checks on all instances every minute and also logs all changes into #dn42-dns@hackint.
40
+
41
+Also, gatuno provides another simple [dns checker for all the top level domains](http://gatuno.dn42/dns/) in the registry. If you want to check whatever a domain is resolving or not, this tool may be useful. The tool gets in sync with the registry every 12 hours. You can schedule checks for any domain.
42
+
43
+# DNSSEC
44
+There are currently two KSKs managed by BURBLE-MNT and JRB0001-MNT. They are used once per quarter to sign the DNSKEY RRset. Each master operator has one ZSK which is used to sign the zones (except for the DNSKEY RRset). This setup leads to bigger responses but allows each KSK holder to solve emergencies independently. The signatures of the DNSKEY RRset are valid until the end of the first month of the next quarter to give enough time for coordinating the next signing. All other signatures are valid for 3 days and replaced at least once per day.
45
+
46
+The set of valid KSKs can be found in the registry.
47
+
48
+# See also
49
+
50
+* [DNS Quick Start](/services/DNS)
51
+* [Old Hierarchical DNS](/services/Old-Hierarchical-DNS)
52
+* [Original DNS (deprecated)](/services/Original-DNS-(deprecated))
services/dns/Old-Hierarchical-DNS.md
... ...
@@ -0,0 +1,49 @@
1
+This information is now **deprecated**. Please check [New DNS](/services/New-DNS) for the current architecture.
2
+
3
+***
4
+
5
+DNS in the global internet is designed as a tree starting from "." and traveling outward in layers. Currently in DN42 dns is flat. This leads to issues when trying to debug problems and makes it difficult to delegate to subnets smaller than /24. Another problem that arises is having the root dns setup as an anycast. If one of the anycast roots is having problems it creates inconsistent errors for some users. This has led to the problem of when a user has a poorly configured anycast available to create their own root anycast.
6
+
7
+The purpose of this project is to create a system of high quality dns roots. With them in place, an anycast resolver would only need to be a simple caching resolver that uses the roots to query.
8
+
9
+## Hierarchy in DN42
10
+
11
+ - . (dot)
12
+ - arpa
13
+ - in-addr
14
+ - 172
15
+ - 20
16
+ - 22
17
+ - 23
18
+ - 31
19
+ - dn42
20
+ - \<dn42 domain names>
21
+ - hack
22
+ - ffhh
23
+ - \<Future Top Level Domains?>
24
+ - \<ano, bit or other organisation TLDs?>
25
+ - \<ICANN TLDs>
26
+
27
+Note: With this system it could be possible to merge the IANA root file.. but it would be beyond the scope of this project.
28
+
29
+## Servers
30
+
31
+For all of these servers they have a specific IP assigned, only respond to their authoritative zones, and do not allow recursion.
32
+
33
+**\<name>.root-servers.dn42** - This server is authoritative for "." (root zone). Is authorative for ICANN root as well. "172.in-addr.arpa" is delegated to ICANN, except rfc1918 zones which are delegated to dn42. The rest of rfc1918 as well as rfc4193 address space is delegated to dn42.
34
+
35
+**\<name>.zone-servers.dn42** - This server is authoritative for "dn42", "hack", .. This would be where the records for all forward dns nameservers would be. Similar to our current root setup.
36
+
37
+**\<name>.in-addr-servers.arpa** - This server is authoritative for "arpa", "in-addr", and each of the 172 zones for dn42 ip space. For non dn42 ip space NS records to the respective darknet would need to be registered.
38
+
39
+**\<name>.dn42-servers.arpa** - This server is authoritative for RFC 2317 delegations. For any inetnum object smaller than /24 and whos parent has no nameserver records, a C class parent zone is created (all its subnetworks are delegated to appropriate nameservers with CNAME)
40
+
41
+Real-time server monitor is available at <http://nixnodes.net/dn42/dnsview>
42
+
43
+## Setup
44
+
45
+Contact one of the root-servers.dn42 operators if you wish to set up a root/zone/dn42 server.
46
+
47
+You may want to set up a resolver, see link below or use 172.23.0.53 directly.
48
+
49
+Techical information available [here](https://nixnodes.net/wiki/n/DN42_DNS)
services/dns/Original-DNS-(deprecated).md
... ...
@@ -0,0 +1,46 @@
1
+# Original DNS (deprecated)
2
+This information is now **deprecated**. Please check [New DNS](/services/New-DNS) for the current architecture.
3
+
4
+***
5
+
6
+*(tl;dr)* We have a TLD for dn42, which is `.dn42`. The anycast resolver for `.dn42` runs on `172.20.0.53` and `fd42:d42:d42:54::1`.
7
+
8
+**DNS is built from the [whois database](/services/Whois). Please edit your DNS records there.**
9
+
10
+## Using the DNS service
11
+
12
+Below are several ways to use the `dn42` DNS service, from easiest to more challenging. The recommended method is the second one.
13
+
14
+### Using the anycast resolver directly
15
+
16
+Please be aware that this method sends **all** your DNS queries (e.g. `google.com`) to a random DNS server inside dn42. The server could fake the result and point you towards the russian mafia. They probably won't, but think about what you are doing. At the end of the day, your ISP could be evil as well, so it always boils down to a question of trust.
17
+
18
+To do this, just use `172.20.0.53` or `fd42:d42:d42:54::1` as your resolver, for instance in `/etc/resolv.conf`.
19
+
20
+### Forwarding `.dn42` queries to the anycast resolver
21
+
22
+If you run your own resolver (`unbound`, `dnsmasq`, `bind`), you can configure it to forward dn42 queries to the anycast DNS resolver. See [DNS forwarder configuration](/services/dns/Configuration).
23
+
24
+### Recursive resolver
25
+
26
+You may also want to configure your resolver to recursively resolve dn42 domains. For this, you need to find authoritative DNS servers for the `dn42` zone (and for the reverse zones). See [services/dns/Recursive DNS resolver](/services/dns/Recursive-DNS-resolver).
27
+
28
+### Building the dn42 zones from the registry
29
+
30
+Finally, you may want to host your own authoritative DNS server for the `dn42` zone and the reverse zones. The zone files are built from the monotone repository: scripts are provided in the repository itself.
31
+
32
+## Register a `.dn42` domain name
33
+
34
+The root zone for `dn42.` is built from the [whois registry](/services/Whois). If you want to register a domain name, you need to add it to the registry (of course, you also need one or two authoritative nameservers).
35
+
36
+## DNS services for other networks
37
+
38
+Other networks are interconnected with dn42 (ChaosVPN, Freifunk, etc). Some of them also provide DNS service, you can configure your resolver to use it. See [External DNS](/services/dns/External-DNS).
39
+
40
+## Providing DNS services
41
+
42
+See [Providing Anycast DNS](/services/dns/Providing-Anycast-DNS).
43
+
44
+## [Old Hierarchical DNS](/services/Old-Hierarchical-DNS)
45
+
46
+This is a new effort to build a DNS system that mirrors how DNS was designed to work in clearnet.
services/dns/Overview.md
... ...
@@ -0,0 +1,73 @@
1
+# DN42 DNS
2
+
3
+This page covers guidance and examples on using DNS within DN42.
4
+
5
+## Quick Start
6
+
7
+It is recommended to run your own DNS resolver as this provides you with the most security and privacy.
8
+However, to get started, or if running your own resolver isn't desirable an anycast service
9
+is available. The anycast service supports DNSSEC and will resolve public DNS names together with all the
10
+relevant DN42 and affiliated networks' names.
11
+
12
+### Using the DNS Anycast Service
13
+
14
+The DNS anycast service is provided by multiple operators, with each operator contributing to one of the two separate
15
+anycast services. By configuring both services, users get additional resiliency from having two, independent, resolvers.
16
+
17
+| Name | IPv4 | IPv6 |
18
+|---|---|---|
19
+| a0.recursive-servers.dn42 | 172.20.0.53 | fd42:d42:d42:54::1 |
20
+| a3.recursive-servers.dn42 | 172.23.0.53 | fd42:d42:d42:53::1 |
21
+
22
+To configure the service, ping both sets of addresses then set your primary nameserver to the lowest latency
23
+service and configure the other service as the secondary or backup nameserver.
24
+
25
+Example resolv.conf, preferring a0.recursive-servers.dn42 and IPv4:
26
+
27
+```conf
28
+nameserver 172.20.0.53
29
+nameserver 172.23.0.53
30
+nameserver fd42:d42:d42:54::1
31
+nameserver fd42:d42:d42:53::1
32
+search dn42
33
+```
34
+
35
+Example resolv.conf, preferring a3.recursive-servers.dn42 and IPv6:
36
+
37
+```conf
38
+nameserver fd42:d42:d42:53::1
39
+nameserver fd42:d42:d42:54::1
40
+nameserver 172.23.0.53
41
+nameserver 172.20.0.53
42
+option inet6 # Linux/glibc
43
+family inet6 inet4 # BSD
44
+search dn42
45
+```
46
+
47
+## Advanced Configuration
48
+
49
+There are multiple top level domains (TLDs) associated with DN42, its affiliated networks and for reverse DNS that must
50
+be configured in order to run your own resolver. The registry is the authoritative source of active TLDs, but see also
51
+this page [dns/External-DNS](/services/dns/External-DNS) in the wiki.
52
+
53
+### Split horizon DNS
54
+
55
+In this configuration, you run your own, caching resolver but forward DN42 related queries (with recursion bit set)
56
+to the anycast service. Example configurations for different recursor implementations are included in the [dns/Configuration](/services/dns/Configuration) page.
57
+
58
+### Full recursion
59
+
60
+Authoritative DNS for DN42 is provided by the *.delegation-servers.dn42 servers, see the DNS architecture here
61
+[New DNS](/services/dns/New-DNS) Delegations servers have full support for DNSSEC. Example configuration unbound implementations are included in the [dns/Configuration](/services/dns/Configuration#resolver-setup) page.
62
+
63
+## Additional client configuration
64
+
65
+- **Firefox**: Set `browser.fixup.domainsuffixwhitelist.dn42` to `true` in `about:config` to prevent Firefox from confusing dn42 domains with search queries.
66
+
67
+## Further Information
68
+
69
+* [dns/Configuration](/services/dns/Configuration) - Forwarder/Resolver configuration examples
70
+* [New DNS](/services/dns/New-DNS) - current architecture
71
+* [dns/External-DNS](/services/dns/External-DNS) - external DNS zones from interconnected networks
72
+* [Old Hierarchical DNS](/services/dns/Old-Hierarchical-DNS) - deprecated
73
+* [Original DNS (deprecated)](/services/dns/Original-DNS-(deprecated)) - deprecated
services/exchanges/IX-Collection.md
... ...
@@ -0,0 +1,7 @@
1
+|Name|Related Link(s)|
2
+|:---|:--------------|
3
+|IXP-frnte|[IXP-frnte](/services/exchanges/IXP-frnte)|
4
+|mcast-ix|[mcast-ix](/services/exchanges/mcast-ix)|
5
+|SERNET-IX|[SERNET-IX](/services/exchanges/SERNET-IX), [https://blog.sherpherd.net/ix.html](https://blog.sherpherd.net/ix.html)|
6
+|SerinaIX|<https://ix.dn42.serinanya.cn/>|
7
+|Nedifinita IX|https://ix.nedifinita.com/|
services/exchanges/IXP-frnte.md
... ...
@@ -0,0 +1,116 @@
1
+The IXP frnte
2
+=============
3
+
4
+An IXP is a collection point for Internet providers. This can be physical or virtual. In a physical IXP, several Internet providers place servers in a data center and connect them to each other.
5
+
6
+In a virtual IXP, the servers are not "real". They are not physically connected with cables, but for example via a VPN.
7
+
8
+In dn42 almost all connections are virtual. One builds on the Internet and creates virtual links between the single nodes. In IXP frnte, all providers have virtual machines, which are connected to each other. Due to the large number of providers in IXP, it is possible to reach them easily and with low latency. However, the large number also leads to the fact that no direct peerings are established within an IXP, instead route servers are used. This receives and coordinates all routes of the providers and sends out appropriate routes. This way, many indirect peerings can be established.
9
+
10
+Current participants
11
+--------------------
12
+
13
+| Name | AS | Route server | IRC |
14
+| --- | --- | --- | --- |
15
+| Bandura's network | 4242422923 | 4242421081 | mark22k |
16
+
17
+History and origin
18
+------------------
19
+
20
+In dn42 and in the Anonet there was the UCIS IXP for a long time. However, this is no longer actively operated.
21
+
22
+Members of the LGP Corp have now created a new IXP in dn42. This is the IXP frnte. It is located in France near Nantes and has two separate internet connections. This article describes how to enter the IXP and set up peering with the current route server.
23
+
24
+Join the IXP
25
+------------
26
+
27
+### 1\. Request the infrastructure
28
+
29
+LGP Corp provides virtual machines free of charge to any AS operator or anyone who wants to experiment with networks. There are no costs! The VM's can be configured and linked together as desired. The VM's can be connected to each other via a VLAN. Furthermore, an internet connection is available with two ISPs, depending on your choice. The virtual machine gets a public IPv6 and if necessary IPv4 over NAT to be able to access important resources like GitHub.
30
+It is best to create a diagram of your network and send it to the LGP Corp.
31
+The LGP Corp or the responsible admin for the IXP can be reached in **IRC** on hackint.org under **toinux**. Send the diagram to them and discuss further details.
32
+Furthermore, all virtual machines are put into a common VLAN. This causes that one can reach all providers at the IXP without problems.
33
+
34
+### 2\. Proxmox Login and VM Setup
35
+
36
+After that you will receive your access data for the Proxmox portal from the LGP Corp. Under which you can set up your VM's. The portal can be reached under [**https://pve.home.lgp-corp.fr/**](https://pve.home.lgp-corp.fr/). Select "Proxmox VE authentication server" as "Realm". It also offers a VNC monitor to work directly on the server. For the setup under SSH an IPv6 connectivity to the internet is required. If you only have an IPv4, you can get an IPv6 for free from Hurricane Electric at [https://tunnelbroker.net/](https://tunnelbroker.net/).
37
+
38
+### 3\. Configure VLAN
39
+
40
+An internal IPv6 Range has been requested for the IXP: `fde0:93fa:7a0:2::/64` ([fde0:93fa:7a0:2::/64 on explorer](https://explorer.dn42.dev/#/inet6num/fde0:93fa:7a0:2::_64))
41
+
42
+The following is the assignment policy:
43
+`fde0:93fa:7a0:2:0:<asn32|high16|hex>:<asn32|low16|hex>:1/64`
44
+For example, if you have the ASN 4242421080, you get the range `fde0:93fa:7a0:2:0:fcde:3558:1/64`
45
+It should be noted that only the last block may be changed. So you get a practical IPv6 range of `fde0:93fa:7a0:2:0:fcde:3558:/112`.
46
+A Ruby script to calculate the IPv6 can be found on [ixp\_frnte\_dn42\_prefix.rb on GitHub Gist](https://gist.github.com/marek22k/494cf9c4d269867f23f2c3577e1780ef).
47
+
48
+An example configuration for Debian based Linux distributions would be:
49
+
50
+```sh
51
+iface ensXX inet6 static
52
+ address fde0:93fa:7a0:2:0:fcde:3558:1/64
53
+```
54
+
55
+Here `ensXX` is the dn42 VLAN interface. This can be determined by comparing the MAC address of the interface with the MAC address of the dn42 VLAN in Proxmox. The MAC address can be determined on Linux with `ip l`:
56
+
57
+```sh
58
+ensXX: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu
59
+ 1500 qdisc pfifo_fast state UP mode DEFAULT group
60
+ default qlen 1000
61
+ link/ether MAC brd ff:ff:ff:ff:ff:ff
62
+```
63
+
64
+`MAC` would be the MAC address. After that you can activate the interface with ifup or a reboot of the VM.
65
+Of course there are other configuration possibilities. This is only an example for Debian-based Linux distributions.
66
+
67
+### 4\. Connect to the Route Server
68
+
69
+There can be several Route Servers (RS) on one IXP. However, on the IXP frnte there is currently only one, which is operated by jlu5 (operator of the highdef network).
70
+IPv6: fde0:93fa:7a0:2:0:fcde:3559:1
71
+ASN: 4242421081
72
+
73
+You can now enter this configuration into your routing daemon and it will connect to the RS. You should keep in mind that the RS itself does not forward any traffic, but is only responsible for the coordination. Therefore the AS path must not necessarily start with the AS of the RS.
74
+
75
+An example configuration for bird2 would be the following:
76
+
77
+```conf
78
+protocol bgp ixp_rs from dnpeers {
79
+ neighbor fde0:93fa:7a0:2:0:fcde:3559:1 as 4242421081;
80
+
81
+ enable extended messages on;
82
+ direct;
83
+ enforce first as off;
84
+
85
+ ipv4 {
86
+ extended next hop;
87
+ };
88
+}
89
+```
90
+
91
+**What does this configuration do?**
92
+
93
+First we create a new BGP session (`protocol bgp`). This is based on the dnpeers template which can be found in the standard Bird2 configuration in the [wiki](/howto/Bird2). We name this session "ixp\_rs". However, this is only an internal name and can be replaced with another one.
94
+
95
+After that we determine with whom we want to have the session. This would be the RS. Therefore we put IPv6 address and ASN there.
96
+
97
+Furthermore, we allow larger BGP messages. Thus, instead of 4096 bytes, a whole 65535 bytes are transmitted in one message. This is especially useful because an RS has to announce a lot of routes.
98
+
99
+With `direct` we indicate that the RS is directly connected to our server and no routing via third parties has to be performed. In our case, the RS is connected to us via the dn42 VLAN.
100
+
101
+The next line has the effect that the ASN of the RS does not necessarily have to be the next hop for routing. This is important because we do not route the traffic via the RS, but via the respective peers. These have an ASN that differs from the ASN of the RS.
102
+
103
+Since the dn42 VLAN _only_ supports IPv6, any IPv4 traffic must also go over IPv6. If you do not have or do not want to use IPv4, you can ignore this part of the configuration.
104
+
105
+Finally we save the bird2 configuration and load the new configuration with `birdc configure`.
106
+
107
+### 5\. Check if it works
108
+
109
+There are now a few things to check:
110
+Once you can see if the BGP session is esablished. In Bird you can do this with `birdc show protocols all ixp_rs`.
111
+Furthermore, you can display different routes (in case of bird with `birdc show route for [ip address]`) or perform a traceroute.
112
+One can also try to ping the IP of some at the IXP. From the latency you can also see if everything is working:
113
+
114
+* Bandura's pingable:
115
+ * `172.22.149.224`
116
+ * `fd04:234e:fc31::`
services/exchanges/SERNET-IX.md
... ...
@@ -0,0 +1 @@
1
+Placeholder.
... ...
\ No newline at end of file
services/exchanges/mcast-ix.md
... ...
@@ -0,0 +1,122 @@
1
+we're planning to have a mcast-ix.dn42 somewhere in the cloud at #dn42 for years now...
2
+
3
+now we have a pull req with cosmetical issues only: <https://git.dn42.dev/dn42/registry/pulls/2575>
4
+
5
+the main goal is to have a shared lan where ases can peer to each other with the following conditions:
6
+* pure ethernet
7
+* low latency between the vms
8
+* native support for jumbo frames
9
+* possibility to private vlans between participants with the same conditions
10
+
11
+how to participate:
12
+
13
+all you have to do is prepare a qcow2 or vmdk image and upload it to somewhere and ping nop-mnt (mc36 @ irc) with the url... i'll wget it once then boot up your vm connected to the switchport... you'll have raw dn42 reachability there and pat-ed clearnet to continue your installation or upgrades or to connect to the rest of your infra...
14
+
15
+alternatively you can try remotely the ix by preparing the vm image and giving it a vnic pointing to a remote switch participating in the ix already. "-netdev socket,id=a1,udp=vpn.nop.hu:998,localaddr=:1234 -device virtio-net-pci,netdev=a1,mac=as:df:as:df:as:df" 4 example nop-mnt's vpls instance running in a very different datacenter where the real ix located, plus your networking delays to that datacenter, is the sum packet loss, delay, etc... its just about to try out the ix before participating...
16
+
17
+once finalized, only one thing to look for twice, the "console=ttyS0,115200n8" be present as a kernel parameter... plus that your only vnic at the real dc will be the above mentioned vpls instance, but now, with a much less delay/jitter/packetlosss.... if you need vnc access instead, just ask for it during the bringup phase....
18
+
19
+if you need a private peering here between you and an other participant, just ask for a private ethernet connection...
20
+
21
+consider enabling lldp on your interfaces because it helps speed up things on the switch moreover if you'll have more interfaces there then will help you too...
22
+
23
+also consider enabling pim sparse mode on the ix and then you can have the rtp://[email protected]:1234/ stream
24
+
25
+last but not least, always save your configs! there will be a daily recurring power cut sheduled to 21:00pm cest +-1minutes to have the infrastructure auto-upgraded...
26
+
27
+
28
+
29
+the whole idea is to consider the following hypervisor configuration:
30
+
31
+```
32
+dn42ix#show startup-config vdc
33
+vdc definition vm-bri
34
+ connect ethernet2825 vm-switch
35
+ cpu host
36
+ image /rtr/ix/bri.img
37
+ memory 1024
38
+ nic virtio-net-pci
39
+ mac cafe.beef.b00b
40
+ exit
41
+vdc definition vm-clearnet
42
+ local ethernet66602
43
+ local ethernet66603
44
+ connect ethernet66601 vm-switch
45
+ exit
46
+vdc definition vm-jlu5
47
+ connect ethernet1080 vm-switch
48
+ cpu host
49
+ image /rtr/ix/jlu5.img
50
+ cdrom /rtr/ix/jlu5.iso
51
+ memory 1024
52
+ exit
53
+vdc definition vm-lare
54
+ connect ethernet3035 vm-switch
55
+ cpu host
56
+ image /rtr/ix/lare.img
57
+ memory 1024
58
+ exit
59
+vdc definition vm-nop
60
+ connect ethernet1955 vm-switch
61
+ exit
62
+vdc definition vm-routeserver
63
+ exit
64
+vdc definition vm-switch
65
+ connect ethernet1080 vm-jlu5
66
+ connect ethernet1955 vm-nop
67
+ connect ethernet2825 vm-bri
68
+ connect ethernet3035 vm-lare
69
+ connect ethernet66601 vm-clearnet
70
+ exit
71
+
72
+dn42ix#
73
+```
74
+
75
+now you can have drop-in replacement vm-s to experiment with like whats it looks a like if the ix is provisioned on a juniper vsrx3 shitload or a cisco nxosv or plain freerouter in software mode or in p4dpdk mode....
76
+
77
+then publishing a small report on r/networking on behalf of #dn42 measurements
78
+
79
+and probably doing even more crazyer projects/experiment if we settle to have a proper dn42 ix finally with low latency shared vlan between the vms...
80
+
81
+like a real ix...
82
+
83
+static addressing plan, there is a randomized dhcp and slaac on the subnet but consider picking up a static ip and pere with that:
84
+
85
+
86
+
87
+| nick/mnter | asn* | your-ipv4-fixed-ip | your-ipv6-fixed-ip | your-ipv6-linklocal | public lg |
88
+|:---------------|:-----|:-------------------|:--------------------------------------|:-------------------------|:----------------------------------------------------------|
89
+| sw1-mcastix | 1951 | N/A | N/A | N/A | TBD: SOON |
90
+| rs1-mcastix | 1951 | 172.23.124.126/27 | fde0:93fa:7a0:c1ca::179/64 | fe80::200:bff:fead:beef | TBD: SOON |
91
+| rtr1-badcorp | 1952 | 172.23.124.97/27 | fde0:93fa:7a0:c1ca::666/64 | fe80::260:54ff:fe33:2178 | TBD: SOON |
92
+| rtr1-nop | 1955 | 172.23.124.122/27 | fde0:93fa:7a0:c1ca::1955/64 | fe80::200:ccff:fe1e:c0de | telnet sandbox.freertr.org |
93
+| rtr1-catgirls | 1411 | 172.23.124.101/27 | fde0:93fa:7a0:c1ca:581a:fc3f:a2d0:828c/64 | fe80::1411:5 | TBD: SOON |
94
+| rtr1-catgirls2 | 1411 | TBD | TBD | TBD | TBD: SOON |
95
+| rtr1-lare | 3035 | 172.23.124.114/27 | fde0:93fa:7a0:c1ca:0:42:4242:3035/64 | fe80::21f:45ff:fe11:7356 | clearnet: <https://lg.lare.cc/> dn42: <https://lg.lare.dn42/> |
96
+| rtr1-bri | 2825 | TBD | TBD | TBD | TBD |
97
+| rtr1-jlu5 | 1080 | TBD | TBD | TBD | TBD |
98
+| rtr1-fl | 1975 | TBD | TBD | TBD | TBD |
99
+
100
+
101
+
102
+
103
+TBD: add yourself please here while keeping some ordering
104
+
105
+*: so your as number xxxx shortened here, the rigthmost part after the 424242xxxx.... this also will be your ethernetXXXX and so on so just remember this by heart XD
106
+
107
+
108
+| function | console |
109
+|:----------------|:---------------------------|
110
+| switch | telnet ix.nop.dn42 20001 |
111
+| route server 1 | telnet ix.nop.dn42 20002 |
112
+| bad-corp-rtr1 | telnet ix.nop.dn42 20003 |
113
+
114
+
115
+public mrt dumps and config archive of the infra at <http://ix.nop.dn42/> here
116
+
117
+
118
+
119
+it'll be shitload in the beginning but hopefully it could improve the common knowledge....
120
+
121
+
122
+please consider joining #dn42-ix#2 to speed up sorting out potential issues, etc
services/mcast-ix.md
... ...
@@ -1,122 +0,0 @@
1
-we're planning to have a mcast-ix.dn42 somewhere in the cloud at #dn42 for years now...
2
-
3
-now we have a pull req with cosmetical issues only: <https://git.dn42.dev/dn42/registry/pulls/2575>
4
-
5
-the main goal is to have a shared lan where ases can peer to each other with the following conditions:
6
-* pure ethernet
7
-* low latency between the vms
8
-* native support for jumbo frames
9
-* possibility to private vlans between participants with the same conditions
10
-
11
-how to participate:
12
-
13
-all you have to do is prepare a qcow2 or vmdk image and upload it to somewhere and ping nop-mnt (mc36 @ irc) with the url... i'll wget it once then boot up your vm connected to the switchport... you'll have raw dn42 reachability there and pat-ed clearnet to continue your installation or upgrades or to connect to the rest of your infra...
14
-
15
-alternatively you can try remotely the ix by preparing the vm image and giving it a vnic pointing to a remote switch participating in the ix already. "-netdev socket,id=a1,udp=vpn.nop.hu:998,localaddr=:1234 -device virtio-net-pci,netdev=a1,mac=as:df:as:df:as:df" 4 example nop-mnt's vpls instance running in a very different datacenter where the real ix located, plus your networking delays to that datacenter, is the sum packet loss, delay, etc... its just about to try out the ix before participating...
16
-
17
-once finalized, only one thing to look for twice, the "console=ttyS0,115200n8" be present as a kernel parameter... plus that your only vnic at the real dc will be the above mentioned vpls instance, but now, with a much less delay/jitter/packetlosss.... if you need vnc access instead, just ask for it during the bringup phase....
18
-
19
-if you need a private peering here between you and an other participant, just ask for a private ethernet connection...
20
-
21
-consider enabling lldp on your interfaces because it helps speed up things on the switch moreover if you'll have more interfaces there then will help you too...
22
-
23
-also consider enabling pim sparse mode on the ix and then you can have the rtp://[email protected]:1234/ stream
24
-
25
-last but not least, always save your configs! there will be a daily recurring power cut sheduled to 21:00pm cest +-1minutes to have the infrastructure auto-upgraded...
26
-
27
-
28
-
29
-the whole idea is to consider the following hypervisor configuration:
30
-
31
-```
32
-dn42ix#show startup-config vdc
33
-vdc definition vm-bri
34
- connect ethernet2825 vm-switch
35
- cpu host
36
- image /rtr/ix/bri.img
37
- memory 1024
38
- nic virtio-net-pci
39
- mac cafe.beef.b00b
40
- exit
41
-vdc definition vm-clearnet
42
- local ethernet66602
43
- local ethernet66603
44
- connect ethernet66601 vm-switch
45
- exit
46
-vdc definition vm-jlu5
47
- connect ethernet1080 vm-switch
48
- cpu host
49
- image /rtr/ix/jlu5.img
50
- cdrom /rtr/ix/jlu5.iso
51
- memory 1024
52
- exit
53
-vdc definition vm-lare
54
- connect ethernet3035 vm-switch
55
- cpu host
56
- image /rtr/ix/lare.img
57
- memory 1024
58
- exit
59
-vdc definition vm-nop
60
- connect ethernet1955 vm-switch
61
- exit
62
-vdc definition vm-routeserver
63
- exit
64
-vdc definition vm-switch
65
- connect ethernet1080 vm-jlu5
66
- connect ethernet1955 vm-nop
67
- connect ethernet2825 vm-bri
68
- connect ethernet3035 vm-lare
69
- connect ethernet66601 vm-clearnet
70
- exit
71
-
72
-dn42ix#
73
-```
74
-
75
-now you can have drop-in replacement vm-s to experiment with like whats it looks a like if the ix is provisioned on a juniper vsrx3 shitload or a cisco nxosv or plain freerouter in software mode or in p4dpdk mode....
76
-
77
-then publishing a small report on r/networking on behalf of #dn42 measurements
78
-
79
-and probably doing even more crazyer projects/experiment if we settle to have a proper dn42 ix finally with low latency shared vlan between the vms...
80
-
81
-like a real ix...
82
-
83
-static addressing plan, there is a randomized dhcp and slaac on the subnet but consider picking up a static ip and pere with that:
84
-
85
-
86
-
87
-| nick/mnter | asn* | your-ipv4-fixed-ip | your-ipv6-fixed-ip | your-ipv6-linklocal | public lg |
88
-|:---------------|:-----|:-------------------|:--------------------------------------|:-------------------------|:----------------------------------------------------------|
89
-| sw1-mcastix | 1951 | N/A | N/A | N/A | TBD: SOON |
90
-| rs1-mcastix | 1951 | 172.23.124.126/27 | fde0:93fa:7a0:c1ca::179/64 | fe80::200:bff:fead:beef | TBD: SOON |
91
-| rtr1-badcorp | 1952 | 172.23.124.97/27 | fde0:93fa:7a0:c1ca::666/64 | fe80::260:54ff:fe33:2178 | TBD: SOON |
92
-| rtr1-nop | 1955 | 172.23.124.122/27 | fde0:93fa:7a0:c1ca::1955/64 | fe80::200:ccff:fe1e:c0de | telnet sandbox.freertr.org |
93
-| rtr1-catgirls | 1411 | 172.23.124.101/27 | fde0:93fa:7a0:c1ca:581a:fc3f:a2d0:828c/64 | fe80::1411:5 | TBD: SOON |
94
-| rtr1-catgirls2 | 1411 | TBD | TBD | TBD | TBD: SOON |
95
-| rtr1-lare | 3035 | 172.23.124.114/27 | fde0:93fa:7a0:c1ca:0:42:4242:3035/64 | fe80::21f:45ff:fe11:7356 | clearnet: <https://lg.lare.cc/> dn42: <https://lg.lare.dn42/> |
96
-| rtr1-bri | 2825 | TBD | TBD | TBD | TBD |
97
-| rtr1-jlu5 | 1080 | TBD | TBD | TBD | TBD |
98
-| rtr1-fl | 1975 | TBD | TBD | TBD | TBD |
99
-
100
-
101
-
102
-
103
-TBD: add yourself please here while keeping some ordering
104
-
105
-*: so your as number xxxx shortened here, the rigthmost part after the 424242xxxx.... this also will be your ethernetXXXX and so on so just remember this by heart XD
106
-
107
-
108
-| function | console |
109
-|:----------------|:---------------------------|
110
-| switch | telnet ix.nop.dn42 20001 |
111
-| route server 1 | telnet ix.nop.dn42 20002 |
112
-| bad-corp-rtr1 | telnet ix.nop.dn42 20003 |
113
-
114
-
115
-public mrt dumps and config archive of the infra at <http://ix.nop.dn42/> here
116
-
117
-
118
-
119
-it'll be shitload in the beginning but hopefully it could improve the common knowledge....
120
-
121
-
122
-please consider joining #dn42-ix#2 to speed up sorting out potential issues, etc