Merge pull request 'update site' (#6) from mark22k/docs:master into master
Reviewed-on: https://codeberg.org/CRXN/docs/pulls/6
71
.gitignore
vendored
Normal file
@ -0,0 +1,71 @@
|
||||
# Byte-compiled / optimized / DLL files
|
||||
__pycache__/
|
||||
*.py[cod]
|
||||
*$py.class
|
||||
|
||||
# C extensions
|
||||
*.so
|
||||
|
||||
# Distribution / packaging
|
||||
.Python
|
||||
env/
|
||||
build/
|
||||
develop-eggs/
|
||||
dist/
|
||||
downloads/
|
||||
eggs/
|
||||
.eggs/
|
||||
lib/
|
||||
lib64/
|
||||
node_modules/
|
||||
parts/
|
||||
sdist/
|
||||
var/
|
||||
package*.json
|
||||
*.egg-info/
|
||||
.installed.cfg
|
||||
*.egg
|
||||
|
||||
# PyInstaller
|
||||
# Usually these files are written by a python script from a template
|
||||
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
||||
*.manifest
|
||||
*.spec
|
||||
|
||||
# Installer logs
|
||||
pip-log.txt
|
||||
pip-delete-this-directory.txt
|
||||
|
||||
# Unit test / coverage reports
|
||||
htmlcov/
|
||||
.tox/
|
||||
.coverage
|
||||
.coverage.*
|
||||
.cache
|
||||
nosetests.xml
|
||||
coverage.xml
|
||||
*,cover
|
||||
.hypothesis/
|
||||
|
||||
# Translations
|
||||
*.mo
|
||||
|
||||
# Scrapy stuff:
|
||||
.scrapy
|
||||
|
||||
# PyBuilder
|
||||
target/
|
||||
|
||||
# IPython Notebook
|
||||
.ipynb_checkpoints
|
||||
|
||||
# pyenv
|
||||
.python-version
|
||||
|
||||
# virtualenv
|
||||
venv/
|
||||
ENV/
|
||||
|
||||
# MkDocs documentation
|
||||
site*/
|
||||
|
126
docs/additional/dns.md
Normal file
@ -0,0 +1,126 @@
|
||||
# Servers
|
||||
|
||||
HINT: This is currently a work in progress by @mark22k
|
||||
|
||||
## Rekursiv
|
||||
|
||||
| DNS | IP address |
|
||||
| --- | --- |
|
||||
| recur1.bandura.crxn | fd92:58b6:2b2::5353 |
|
||||
|
||||
## Authoritiv
|
||||
|
||||
# Resolve CRXN domains only
|
||||
|
||||
Advantage:
|
||||
- Very simple configuration
|
||||
|
||||
Disadvantage:
|
||||
- No more access to Clearnet domains
|
||||
- Dependence on one server
|
||||
|
||||
You can enter a recursive CRXN server as your DNS server in the operating system.
|
||||
|
||||
The configuration of this differs depending on the operating system. For example, in Debian without NetworkManager, you can add the following to `/etc/resolv.conf`:
|
||||
```
|
||||
nameserver fd92:58b6:2b2::5353
|
||||
```
|
||||
|
||||
# Run your own forwarder
|
||||
|
||||
Advantage:
|
||||
- Simple configuration
|
||||
|
||||
Disadvantage:
|
||||
- Dependence on one server
|
||||
|
||||
With this method, you run a small DNS server of your own, which receives and forwards requests. This is suitable for one computer or very small networks.
|
||||
|
||||
There are several software you can use for this.
|
||||
|
||||
## Coredns
|
||||
|
||||
This guide is for Debian based systems.
|
||||
First you need to download Coredns. You can find the software at https://coredns.io/. As a download package you get a compressed file. Extract it and make the file `coredns` executable and copy it into the directory `/usr/local/bin`.
|
||||
```
|
||||
$tar xvf coredns_1.10.0_linux_amd64.tgz
|
||||
$chmod +x coredns
|
||||
$sudo cp coredns /usr/local/bin/
|
||||
```
|
||||
|
||||
To start Coredns automatically you can create a Systemd unit:
|
||||
```
|
||||
$ editor /etc/systemd/system/coredns.service
|
||||
```
|
||||
|
||||
Paste the following:
|
||||
```
|
||||
[Unit]
|
||||
Description=CoreDNS DNS server
|
||||
Documentation=https://coredns.io/
|
||||
After=network.target
|
||||
After=alfis.service
|
||||
After=meshnamed.service
|
||||
|
||||
[Service]
|
||||
PermissionsStartOnly=true
|
||||
LimitNOFILE=1048576
|
||||
LimitNPROC=512
|
||||
CapabilityBoundingSet=CAP_NET_BIND_SERVICE
|
||||
AmbientCapabilities=CAP_NET_BIND_SERVICE
|
||||
NoNewPrivileges=true
|
||||
User=coredns
|
||||
ExecStart=/usr/local/bin/coredns -conf=/etc/coredns/Corefile
|
||||
ExecReload=/bin/kill -SIGUSR1 $MAINPID
|
||||
Restart=on-failure
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
```
|
||||
|
||||
After that reload systemd:
|
||||
```
|
||||
$sudo systemctl daemon-reload
|
||||
```
|
||||
|
||||
To isolate Coredns, you create a new user:
|
||||
```
|
||||
$sudo adduser --home /etc/coredns/ --disabled-password --disabled-login coredns
|
||||
```
|
||||
|
||||
After that you can create and edit the Coredns configuration file `Corefile`:
|
||||
```
|
||||
editor /etc/coredns/Corefile
|
||||
```
|
||||
|
||||
Paste the following:
|
||||
```
|
||||
crxn., d.f.ip6.arpa. {
|
||||
loop
|
||||
bind 127.0.0.1 ::1
|
||||
forward . fd92:58b6:2b2::5353
|
||||
}
|
||||
```
|
||||
Replace `fd92:58b6:2b2::5353` with your preferred recursive server.
|
||||
With `bind 127.0.0.1 ::1` you bind Coredns to your local machine only, so no one else can access it. If you want to create a network forwarder, you have to remove this line. If you want to restrict the forwarder access only to a specific network, you can use the [ACL Plugin](https://coredns.io/plugins/acl/).
|
||||
|
||||
To resolve Clearnet domains, insert the following:
|
||||
```
|
||||
. {
|
||||
loop
|
||||
bind 127.0.0.1 ::1
|
||||
forward . tls://1.1.1.1 tls://1.0.0.1 tls://2606:4700:4700::1111 tls://2606:4700:4700::1001 {
|
||||
tls_servername 1dot1dot1dot1.cloudflare-dns.com
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
6
docs/additional/index.md
Normal file
@ -0,0 +1,6 @@
|
||||
|
||||
# Additional
|
||||
|
||||
- [DNS](dns)
|
||||
- [DN42 interconnection](dn42_interconnection)
|
||||
- [OTG](otg)
|
@ -5,4 +5,4 @@ CRXN _On-the-go_ are a collection of services run by a few people on CRXN that h
|
||||
|
||||
So far we have two people offering such services:
|
||||
|
||||
1. [Deavmi's OTG](deavmi.md)
|
||||
1. [Deavmi's OTG](deavmi)
|
124
docs/dns/home.md
Normal file
@ -0,0 +1,124 @@
|
||||
# Servers
|
||||
|
||||
## Rekursiv
|
||||
|
||||
| DNS | IP address |
|
||||
| --- | --- |
|
||||
| recur1.bandura.crxn | fd92:58b6:2b2::5353 |
|
||||
|
||||
## Authoritiv
|
||||
|
||||
# Resolve CRXN domains only
|
||||
|
||||
Advantage:
|
||||
- Very simple configuration
|
||||
|
||||
Disadvantage:
|
||||
- No more access to Clearnet domains
|
||||
- Dependence on one server
|
||||
|
||||
You can enter a recursive CRXN server as your DNS server in the operating system.
|
||||
|
||||
The configuration of this differs depending on the operating system. For example, in Debian without NetworkManager, you can add the following to `/etc/resolv.conf`:
|
||||
```
|
||||
nameserver fd92:58b6:2b2::5353
|
||||
```
|
||||
|
||||
# Run your own forwarder
|
||||
|
||||
Advantage:
|
||||
- Simple configuration
|
||||
|
||||
Disadvantage:
|
||||
- Dependence on one server
|
||||
|
||||
With this method, you run a small DNS server of your own, which receives and forwards requests. This is suitable for one computer or very small networks.
|
||||
|
||||
There are several software you can use for this.
|
||||
|
||||
## Coredns
|
||||
|
||||
This guide is for Debian based systems.
|
||||
First you need to download Coredns. You can find the software at https://coredns.io/. As a download package you get a compressed file. Extract it and make the file `coredns` executable and copy it into the directory `/usr/local/bin`.
|
||||
```
|
||||
$tar xvf coredns_1.10.0_linux_amd64.tgz
|
||||
$chmod +x coredns
|
||||
$sudo cp coredns /usr/local/bin/
|
||||
```
|
||||
|
||||
To start Coredns automatically you can create a Systemd unit:
|
||||
```
|
||||
$ editor /etc/systemd/system/coredns.service
|
||||
```
|
||||
|
||||
Paste the following:
|
||||
```
|
||||
[Unit]
|
||||
Description=CoreDNS DNS server
|
||||
Documentation=https://coredns.io/
|
||||
After=network.target
|
||||
After=alfis.service
|
||||
After=meshnamed.service
|
||||
|
||||
[Service]
|
||||
PermissionsStartOnly=true
|
||||
LimitNOFILE=1048576
|
||||
LimitNPROC=512
|
||||
CapabilityBoundingSet=CAP_NET_BIND_SERVICE
|
||||
AmbientCapabilities=CAP_NET_BIND_SERVICE
|
||||
NoNewPrivileges=true
|
||||
User=coredns
|
||||
ExecStart=/usr/local/bin/coredns -conf=/etc/coredns/Corefile
|
||||
ExecReload=/bin/kill -SIGUSR1 $MAINPID
|
||||
Restart=on-failure
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
```
|
||||
|
||||
After that reload systemd:
|
||||
```
|
||||
$sudo systemctl daemon-reload
|
||||
```
|
||||
|
||||
To isolate Coredns, you create a new user:
|
||||
```
|
||||
$sudo adduser --home /etc/coredns/ --disabled-password --disabled-login coredns
|
||||
```
|
||||
|
||||
After that you can create and edit the Coredns configuration file `Corefile`:
|
||||
```
|
||||
editor /etc/coredns/Corefile
|
||||
```
|
||||
|
||||
Paste the following:
|
||||
```
|
||||
crxn., d.f.ip6.arpa. {
|
||||
loop
|
||||
bind 127.0.0.1 ::1
|
||||
forward . fd92:58b6:2b2::5353
|
||||
}
|
||||
```
|
||||
Replace `fd92:58b6:2b2::5353` with your preferred recursive server.
|
||||
With `bind 127.0.0.1 ::1` you bind Coredns to your local machine only, so no one else can access it. If you want to create a network forwarder, you have to remove this line. If you want to restrict the forwarder access only to a specific network, you can use the [ACL Plugin](https://coredns.io/plugins/acl/).
|
||||
|
||||
To resolve Clearnet domains, insert the following:
|
||||
```
|
||||
. {
|
||||
loop
|
||||
bind 127.0.0.1 ::1
|
||||
forward . tls://1.1.1.1 tls://1.0.0.1 tls://2606:4700:4700::1111 tls://2606:4700:4700::1001 {
|
||||
tls_servername 1dot1dot1dot1.cloudflare-dns.com
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
124
docs/dns/server.md
Normal file
@ -0,0 +1,124 @@
|
||||
# Servers
|
||||
|
||||
## Rekursiv
|
||||
|
||||
| DNS | IP address |
|
||||
| --- | --- |
|
||||
| recur1.bandura.crxn | fd92:58b6:2b2::5353 |
|
||||
|
||||
## Authoritiv
|
||||
|
||||
# Resolve CRXN domains only
|
||||
|
||||
Advantage:
|
||||
- Very simple configuration
|
||||
|
||||
Disadvantage:
|
||||
- No more access to Clearnet domains
|
||||
- Dependence on one server
|
||||
|
||||
You can enter a recursive CRXN server as your DNS server in the operating system.
|
||||
|
||||
The configuration of this differs depending on the operating system. For example, in Debian without NetworkManager, you can add the following to `/etc/resolv.conf`:
|
||||
```
|
||||
nameserver fd92:58b6:2b2::5353
|
||||
```
|
||||
|
||||
# Run your own forwarder
|
||||
|
||||
Advantage:
|
||||
- Simple configuration
|
||||
|
||||
Disadvantage:
|
||||
- Dependence on one server
|
||||
|
||||
With this method, you run a small DNS server of your own, which receives and forwards requests. This is suitable for one computer or very small networks.
|
||||
|
||||
There are several software you can use for this.
|
||||
|
||||
## Coredns
|
||||
|
||||
This guide is for Debian based systems.
|
||||
First you need to download Coredns. You can find the software at https://coredns.io/. As a download package you get a compressed file. Extract it and make the file `coredns` executable and copy it into the directory `/usr/local/bin`.
|
||||
```
|
||||
$tar xvf coredns_1.10.0_linux_amd64.tgz
|
||||
$chmod +x coredns
|
||||
$sudo cp coredns /usr/local/bin/
|
||||
```
|
||||
|
||||
To start Coredns automatically you can create a Systemd unit:
|
||||
```
|
||||
$ editor /etc/systemd/system/coredns.service
|
||||
```
|
||||
|
||||
Paste the following:
|
||||
```
|
||||
[Unit]
|
||||
Description=CoreDNS DNS server
|
||||
Documentation=https://coredns.io/
|
||||
After=network.target
|
||||
After=alfis.service
|
||||
After=meshnamed.service
|
||||
|
||||
[Service]
|
||||
PermissionsStartOnly=true
|
||||
LimitNOFILE=1048576
|
||||
LimitNPROC=512
|
||||
CapabilityBoundingSet=CAP_NET_BIND_SERVICE
|
||||
AmbientCapabilities=CAP_NET_BIND_SERVICE
|
||||
NoNewPrivileges=true
|
||||
User=coredns
|
||||
ExecStart=/usr/local/bin/coredns -conf=/etc/coredns/Corefile
|
||||
ExecReload=/bin/kill -SIGUSR1 $MAINPID
|
||||
Restart=on-failure
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
```
|
||||
|
||||
After that reload systemd:
|
||||
```
|
||||
$sudo systemctl daemon-reload
|
||||
```
|
||||
|
||||
To isolate Coredns, you create a new user:
|
||||
```
|
||||
$sudo adduser --home /etc/coredns/ --disabled-password --disabled-login coredns
|
||||
```
|
||||
|
||||
After that you can create and edit the Coredns configuration file `Corefile`:
|
||||
```
|
||||
editor /etc/coredns/Corefile
|
||||
```
|
||||
|
||||
Paste the following:
|
||||
```
|
||||
crxn., d.f.ip6.arpa. {
|
||||
loop
|
||||
bind 127.0.0.1 ::1
|
||||
forward . fd92:58b6:2b2::5353
|
||||
}
|
||||
```
|
||||
Replace `fd92:58b6:2b2::5353` with your preferred recursive server.
|
||||
With `bind 127.0.0.1 ::1` you bind Coredns to your local machine only, so no one else can access it. If you want to create a network forwarder, you have to remove this line. If you want to restrict the forwarder access only to a specific network, you can use the [ACL Plugin](https://coredns.io/plugins/acl/).
|
||||
|
||||
To resolve Clearnet domains, insert the following:
|
||||
```
|
||||
. {
|
||||
loop
|
||||
bind 127.0.0.1 ::1
|
||||
forward . tls://1.1.1.1 tls://1.0.0.1 tls://2606:4700:4700::1111 tls://2606:4700:4700::1001 {
|
||||
tls_servername 1dot1dot1dot1.cloudflare-dns.com
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
16
docs/extra.css
Normal file
@ -0,0 +1,16 @@
|
||||
@charset "UTF-8";
|
||||
|
||||
.floating_right {
|
||||
float: right;
|
||||
margin-left: 20px;
|
||||
width: 30%;
|
||||
max-height: 30%;
|
||||
}
|
||||
|
||||
.center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.crxn_logo {
|
||||
width: 300px;
|
||||
}
|
@ -1,5 +1,4 @@
|
||||
Getting started
|
||||
===============
|
||||
# Getting started
|
||||
|
||||
Firstly we'd like to say that we're glad you'd like to join our network and
|
||||
greater community! This document will provide you with the directions you
|
||||
@ -11,24 +10,24 @@ Below you can follow the steps one-by-one to get yourself familiar with our
|
||||
practices and inner-workings and by the end you should have all the information
|
||||
and configuration details needed to get connected!
|
||||
|
||||
1. [Rules](rules.md)
|
||||
1. [Rules](rules)
|
||||
* We have **few** but **strict** rules nonetheless
|
||||
* Zero-tolerance for breaking them
|
||||
2. [Requirements](requirements.md)
|
||||
3. Registration
|
||||
* [Adding your prefix to EntityDB](registration/entitydb.md)
|
||||
2. [Requirements](requirements)
|
||||
3. [Registration](registration)
|
||||
4. Setting up routing
|
||||
1. [Forwarding](routing/bird/forwarding.md)
|
||||
2. [Setting up Bird](routing/bird/bird.md)
|
||||
1. [Forwarding](../routing/forwarding)
|
||||
2. [Setting up Bird](../routing/bird)
|
||||
5. Tunneling
|
||||
* [Fastd tunneling](tunneling/fastd.md)
|
||||
* [Fastd tunneling](../tunneling/fastd)
|
||||
* [WireGuard tunneling](../tunneling/wireguard)
|
||||
6. Setting up your home network
|
||||
* Configuring your hosts
|
||||
1. Automatically with SLAAC and radv
|
||||
1. [Setting up radv (router)](radv/index.md)
|
||||
2. [Setting up SLAAC (hosts)](slaac/slaac.md)
|
||||
* [CRXN DNS](dns/dns.md)
|
||||
1. [Setting up radv (router)](../home_network/radv)
|
||||
2. [Setting up SLAAC (hosts)](../home_network/slaac)
|
||||
* [DNS](../home_network/dns)
|
||||
|
||||
## What's next?
|
||||
|
||||
Once you're connected there are various things you can do on the network, take a look at [some of he things](services/) you can do.
|
||||
Once you're connected there are various things you can do on the network, take a look at [some of the things](../services/) you can do.
|
@ -1,5 +1,4 @@
|
||||
Prefix allocation and registration
|
||||
==================================
|
||||
# Prefix allocation and registration
|
||||
|
||||
To simply forward IPv6 traffic on CRXN one only needs an IPv6 link-local address which is always guaranteed to be assigned (most of the time), however normally people join CRXN so that they can _also_ host services (and access others) on the inter-network. Therefore, one needs to allocate a prefix and register it to be able to make use of the network in such a manner.
|
||||
|
||||
@ -15,4 +14,4 @@ You can generate your ULA you would like to use for CRXN using a tool such as [U
|
||||
|
||||
Once you have your prefix generated you then are required to register the prefix. This entails adding your prefix to a database known as _EntityDB_ which holds all such entries. This is done in order to ensure there are no clashes with addresses and also doubles as a source of truth in terms of what networks _should_ be available on CRXN along with some information about available services.
|
||||
|
||||
To register your prefix on EntityDB please visit the repository [here](https://codeberg.org/CRXN/entitydb), fork the repository, then follow the [`README.md`](https://codeberg.org/CRXN/entitydb/src/branch/master/README.md) on how to format your entry, create a pull request and wait for approval from a network administrator. Only then will you be allowed to continue with this tutorial.
|
||||
To register your prefix on EntityDB please visit the repository [here](https://codeberg.org/CRXN/entitydb), fork the repository, then follow the [`README.md`](https://codeberg.org/CRXN/entitydb/src/branch/master/README.md) on how to format your entry, create a pull request and wait for approval from a network administrator. Only then will you be allowed to continue with this tutorial.
|
@ -31,4 +31,4 @@ We really don't want the scum of internet degeneracy on here (see first subpoint
|
||||
|
||||
You break the rules, you're going to get removed. We don't take shit here.
|
||||
|
||||
**You will be reported to the authorities**
|
||||
**You will be reported to the authorities**
|
3
docs/home_network/dns.md
Normal file
@ -0,0 +1,3 @@
|
||||
# DNS
|
||||
|
||||
TODO: Add documentation @mark22k
|
6
docs/home_network/index.md
Normal file
@ -0,0 +1,6 @@
|
||||
|
||||
# Setting up your home network
|
||||
|
||||
- [Setting up radv (router)](radv)
|
||||
- [Setting up SLAAC (hosts)](slaac)
|
||||
- [DNS](dns)
|
@ -9,36 +9,36 @@ Configuring your hosts for automatic IP network and address assignment, DNS and
|
||||
|
||||
For NetworkManager-based systems do the following. Open up `nm-connection-editor` and you should have a screen appear like this:
|
||||
|
||||
![](nm-connection-editor.png)
|
||||
![](../img/slaac/nm-connection-editor.png)
|
||||
|
||||
Then double click on the wifi or ethernet connection you have active of which connects you to the same LAN as your router and you should see a window like this popup:
|
||||
|
||||
![](nm-connection-window.png)
|
||||
![](../img/slaac/nm-connection-window.png)
|
||||
|
||||
Then go to the `IPv6` tab and you should see this:
|
||||
|
||||
![](ipv6-nm-connection.png)
|
||||
![](../img/slaac/ipv6-nm-connection.png)
|
||||
|
||||
Now make sure that this part is set to `Automatic`:
|
||||
|
||||
![](address_acquisition_automatic.png)
|
||||
![](../img/slaac/address_acquisition_automatic.png)
|
||||
|
||||
And then for the bottom two parts you can choose whatever option you want in these dropdowns:
|
||||
|
||||
![](whatever_you_want.png)
|
||||
![](../img/slaac/whatever_you_want.png)
|
||||
|
||||
Once you have configured that, then hit save and close all those windows:
|
||||
|
||||
![](save_connection.png)
|
||||
![](../img/slaac/save_connection.png)
|
||||
|
||||
What you want to do now is to open `nmtui` (in your terminal) and reactivate that connection, first go to _Activate a connection_:
|
||||
|
||||
![](nmtui_main_menu.png)
|
||||
![](../img/slaac/nmtui_main_menu.png)
|
||||
|
||||
Now reactivate the connection. You can do this by deactivating it and activating it again (unplugging and replugging won't reactivate it - it doesn't reload the profile).
|
||||
|
||||
![](connection_reactivate.png)
|
||||
![](../img/slaac/connection_reactivate.png)
|
||||
|
||||
---
|
||||
|
||||
And that is it, now you should be connected to CRXN on your laptop via your router.
|
||||
And that is it, now you should be connected to CRXN on your laptop via your router.
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB |
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 221 KiB After Width: | Height: | Size: 221 KiB |
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 49 KiB |
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 48 KiB |
Before Width: | Height: | Size: 8.5 KiB After Width: | Height: | Size: 8.5 KiB |
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 44 KiB |
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 48 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB |
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 8.0 KiB After Width: | Height: | Size: 8.0 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
@ -1,16 +1,15 @@
|
||||
<center>
|
||||
<img src="logo.png" width="300">
|
||||
</center>
|
||||
|
||||
<br>
|
||||
<div class="center">
|
||||
<img src="./img/logo.png" class="crxn_logo" alt="CRXN logo">
|
||||
</div>
|
||||
|
||||
<center>
|
||||
<h1>CRXN</h1>
|
||||
</center>
|
||||
<div class="center mark22k_hide">
|
||||
<h1>CRXN</h1>
|
||||
</div>
|
||||
|
||||
## What is it?
|
||||
# What is it?
|
||||
|
||||
<img src="map.png" width=30% height=30% style="float:right;gap;margin-left:20px">
|
||||
<img src="./img/map.png" class="floating_right" alt="CRXN logo">
|
||||
|
||||
CRXN stands for **C**ommunity **R**un e**X**pansive **N**etwork. It's a computer network _run by the community for the community_.
|
||||
We provide an IPv6 (that's the freshest Internet Protocol out there to date) and on CRXN anything that can speak IPv6
|
||||
@ -110,4 +109,4 @@ Some important links to remember.
|
||||
|
||||
* The CRXN homepage is: [http://deavmi.assigned.network/projects/crxn](http://deavmi.assigned.network/projects/crxn)
|
||||
* The **EntityDB** repository is: [https://codeberg.org/CRXN/entitydb](https://codeberg.org/CRXN/entitydb)
|
||||
* This documentation is at: [https://github.com/Community-Run-eXperimental-Network/docs](https://github.com/Community-Run-eXperimental-Network/docs)
|
||||
* This documentation is at: [https://github.com/Community-Run-eXperimental-Network/docs](https://github.com/Community-Run-eXperimental-Network/docs)
|
||||
|
@ -1,36 +0,0 @@
|
||||
Network configuration
|
||||
=====================
|
||||
|
||||
Before we start configuring tunnels and routing we first need to make sure the network of the machine you wish to configure as a CRXN router is configured correctly.
|
||||
|
||||
## Assigning addresses and a subnet
|
||||
|
||||
TODO: Add subnet assignment
|
||||
|
||||
## Enabling forwarding
|
||||
|
||||
We will be setting up the machine that runs bird as a router so therefore
|
||||
we need to make your Linux kernel's network stack not drop IPv6 packets
|
||||
that it receives (addressed to it via Ethernet) but are not addressed to
|
||||
it via IPv6 address - in other words it must try do something with these packets,
|
||||
namely attempt to forward them one hop closer to their initial destination.
|
||||
|
||||
Enabling forwarding on all interfaces can be achieved as follows (you will need
|
||||
to be root):
|
||||
|
||||
```bash
|
||||
echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
|
||||
```
|
||||
|
||||
However, after reboot it won't be saved and will go back to its defaults. Therefore
|
||||
what you need to do is to enable forwarding on boot-up, this can be done by
|
||||
adding an additional line to your `/etc/sysctl.conf` (which holds a bunch of
|
||||
these statements), it should look like this:
|
||||
|
||||
```bash
|
||||
net.ipv6.conf.all.forwarding=1
|
||||
```
|
||||
|
||||
TODO: Weird experience with me, only doing `all` made it work
|
||||
|
||||
TODO: Forwarding settings should be placed here
|
@ -1,4 +1,14 @@
|
||||
Peers
|
||||
=====
|
||||
# Peers
|
||||
|
||||
This aims to be a public directory of all known peers willing to publically accept connections for tunnels.
|
||||
This aims to be a public directory of all known peers willing to publically accept connections for tunnels.
|
||||
|
||||
### Peering with Bandura Communications
|
||||
|
||||
- Name: Bandura Communications
|
||||
- Peering policy: open
|
||||
- Tunneling protocols: WireGuard, fastd, OpenVPN, GRE and others
|
||||
- Nodes: [https://byeob.de/crxn/](https://byeob.de/crxn/)
|
||||
- Website: [https://byeob.de/](https://byeob.de/)
|
||||
|
||||
> Hello,
|
||||
I am Marek Küthe and I operate Bandura Communications. We have a few servers, which are distributed around the world. We are happy to peer! We support WireGuard, fastd, OpenVPN, GRE and some other tunnel protocols. Just write us at: [crxn@mk16.de](mailto:crxn@mk16.de)
|
||||
|
@ -1,11 +1,10 @@
|
||||
People
|
||||
======
|
||||
# People
|
||||
|
||||
Get to know some familiar faces!
|
||||
|
||||
# Current administration
|
||||
## Current administration
|
||||
|
||||
## Tristan B. Kildaire `~deavmi`
|
||||
### Tristan B. Kildaire `~deavmi`
|
||||
|
||||
<!-- <img src="http://deavmi.assigned.network/profile_pic.jpg"> -->
|
||||
|
||||
@ -19,14 +18,14 @@ E-mail: `deavmi@redxen.eu`
|
||||
BNET IRC: `deavmi` (preferred)
|
||||
Matrix: `deavmi@envs.net`
|
||||
|
||||
## Christian Rühringer
|
||||
### Christian Rühringer
|
||||
|
||||
Amazing German dude.
|
||||
|
||||
Roles: Network services, Routing
|
||||
BNET IRC: `chris2001` on `#crxn`
|
||||
|
||||
## Ty3r0X `~ty3r0x`
|
||||
### Ty3r0X `~ty3r0x`
|
||||
|
||||
> Follow The Eye!
|
||||
|
||||
@ -37,7 +36,7 @@ Roles: Network services, Routing, CRXNxDN42 inter-connect maintenance
|
||||
E-mail: `ty3r0x@chaox.ro`
|
||||
BNET IRC: `ty3r0x`
|
||||
|
||||
## Marek Küthe `~mark22k`
|
||||
### Marek Küthe `~mark22k`
|
||||
|
||||
> The hero of CRXN
|
||||
|
||||
@ -50,9 +49,9 @@ Hackint IRC: `mark22k`
|
||||
|
||||
---
|
||||
|
||||
# Previous administration
|
||||
## Previous administration
|
||||
|
||||
## Rany `~rany`
|
||||
### Rany `~rany`
|
||||
|
||||
<!-- <img src="people/rany.png"> -->
|
||||
|
||||
@ -64,7 +63,7 @@ E-mail: `ranycrxn@riseup.net`
|
||||
BNET IRC: `rany`
|
||||
Matrix: `@rany:fairydust.space`
|
||||
|
||||
## Alex Denes `~caskd`
|
||||
### Alex Denes `~caskd`
|
||||
|
||||
<!-- <img src="people/caskd.png"> -->
|
||||
|
||||
@ -73,4 +72,4 @@ European CRXN adminstration, runs the CRXN DNS root name server.
|
||||
Roles: Network services, CRXN DNS
|
||||
|
||||
E-mail: `caskd@redxen.eu`
|
||||
BNET IRC: `caskd`
|
||||
BNET IRC: `caskd`
|
@ -1,141 +0,0 @@
|
||||
Configuring Bird 2
|
||||
==================
|
||||
|
||||
This document aims to provide the configuration file template required
|
||||
for CRXN and along with a description of what parameters need to be set
|
||||
for your node specifically.
|
||||
|
||||
|
||||
|
||||
## Configuration
|
||||
|
||||
The configuration template is constructed out of the following files:
|
||||
|
||||
1. `filters.conf`
|
||||
* Filter functions and the filter itself
|
||||
2. `networks.conf`
|
||||
* Advertisement of ULA
|
||||
3. `tables.conf`
|
||||
* The table definitions
|
||||
4. `router.conf`
|
||||
* This contains the needed protocol definition for discovering
|
||||
your interface's prefixes and generating routes form them
|
||||
* It also contains the needed protocol definitions to sync bird
|
||||
routes into the Linux kernel's routing table (so you cna forward
|
||||
packets based on the routes from Bird)
|
||||
5. `protocols.conf`
|
||||
* Depending on what protocol you want to use this will contains
|
||||
configurations for each
|
||||
|
||||
All of these will be included in a file saved at `/etc/bird/bird.conf` like so:
|
||||
|
||||
```
|
||||
router id <ipv4>;
|
||||
|
||||
include "/etc/bird/crxn/tables.conf";
|
||||
include "/etc/bird/crxn/filters.conf";
|
||||
include "/etc/bird/crxn/router.conf";
|
||||
include "/etc/bird/crxn/networks.conf";
|
||||
```
|
||||
|
||||
Additionally, add the files for the route distribution protocol which we configure in the next steps.
|
||||
```
|
||||
include "/etc/bird/crxn/babel.conf"; # For babel routing
|
||||
include "/etc/bird/crxn/ospfv3.conf"; # For OSPFv3 routing
|
||||
```
|
||||
|
||||
Remember to set a unique router ID in `<ipv4>`, make it anything - it doesn't have to even be an address you own.
|
||||
|
||||
#### `filters.conf`
|
||||
|
||||
This file holds all the required functions for subnet matching and also
|
||||
filters that match to the specific prefix aggregates (regional subnets)
|
||||
that CRXN uses.
|
||||
|
||||
```
|
||||
filter crxnFilter
|
||||
{
|
||||
if (net ~ fd00::/8) then accept;
|
||||
reject;
|
||||
}
|
||||
```
|
||||
|
||||
#### `tables.conf`
|
||||
|
||||
This file holds all table definitions. There are only two actually.
|
||||
The table `crxn` is the one we actually use, `master` is optional
|
||||
and is only present because if one uses `bird-lg-go` (the looking glass
|
||||
we use) then it, by default, only shows routes in the `master` table.
|
||||
It is meant to have the same routes as the `crxn` table.
|
||||
|
||||
```
|
||||
# CRXN table
|
||||
ipv6 table crxn;
|
||||
```
|
||||
|
||||
#### `router.conf`
|
||||
|
||||
This contains an instance of the `direct` protocol which reads the address
|
||||
and prefix assigned to your AF_INET6 interfaces and generates routes from
|
||||
those that represent routes to directly atrtached networks those interfaces
|
||||
are on. The reason for this is that the `kernel` protocol never learns routes
|
||||
in the Linux kernel's routing table that have the `kernel` protocol which
|
||||
is what you get when you assign interfaces addresses and prefixes. This
|
||||
doesn't even need those, it gets them from the interface.
|
||||
|
||||
```
|
||||
# The kernel protocol doesn't grab kernel routes that are added by you when you assign an
|
||||
# address and prefix. So instead of reading this from all routes with `proto kernel` this just
|
||||
# yeets the routes off of the interface structure itself (even if you didn't have a route for your
|
||||
# directly attached networks - i.e. nexthop = 0.0.0.0)
|
||||
protocol direct crxnDirect
|
||||
{
|
||||
ipv6
|
||||
{
|
||||
table crxn;
|
||||
import filter crxnFilter;
|
||||
};
|
||||
# Interfaces to find neighbours on
|
||||
interface "eth*";
|
||||
}
|
||||
|
||||
protocol device {
|
||||
}
|
||||
```
|
||||
|
||||
The second part is for syncing routes from Bird to the Linux kernel's routing
|
||||
table such that you can forward traffic based on the routes in Bird.
|
||||
|
||||
TODO: Check, defualt `learn` should learn non `kernel` and non-`bird` routes
|
||||
|
||||
```
|
||||
# CRXN Kernel protocol
|
||||
# We import any routes from the kernel table other than `proto bird` and `proto kernel`,
|
||||
# could be `proto static` for example. By default it will learn these.
|
||||
# Of course we also then export all routes from our Bird tables into the kernel so you can actually forward packets
|
||||
protocol kernel crxnKernel
|
||||
{
|
||||
ipv6 {
|
||||
# bird's crxn table -> kernel
|
||||
table crxn;
|
||||
export filter crxnFilter;
|
||||
};
|
||||
}
|
||||
```
|
||||
|
||||
#### `networks.conf`
|
||||
|
||||
This is just something we normally add. Usually you would assign a `/64` within your ULA `/48` but you also want to claim the whole `/48` by advertising a blackhole for it. Here our `/48`/ULA is `fd40:ec65:5b4c::/48`.
|
||||
|
||||
```
|
||||
protocol static crxnStatic
|
||||
{
|
||||
# Advertise your /48 with a blackhole
|
||||
route fd40:ec65:5b4c::/48 blackhole;
|
||||
|
||||
ipv6 {
|
||||
import filter crxn6;
|
||||
table crxn;
|
||||
}
|
||||
}
|
||||
```
|
@ -1,7 +1,4 @@
|
||||
IPv6 forwarding
|
||||
===============
|
||||
|
||||
TODO: Move this to another page
|
||||
# IPv6 forwarding
|
||||
|
||||
## Enabling forwarding
|
||||
|
5
docs/routing/index.md
Normal file
@ -0,0 +1,5 @@
|
||||
|
||||
# Routing
|
||||
|
||||
- [Forwarding](forwarding)
|
||||
- [Setting up Bird](bird)
|
@ -1,5 +1,4 @@
|
||||
Fastd tunneling
|
||||
===============
|
||||
# Fastd tunneling
|
||||
|
||||
This document will help you get peered over a layer-2 VPN using `fastd`.
|
||||
|
||||
@ -28,23 +27,26 @@ Create a file with the template and instructions below in `/etc/fastd/crxn/fastd
|
||||
|
||||
```
|
||||
# The interface that will connect to the virtual ethernet network fastd connects us to
|
||||
interface "crxn%n";
|
||||
mode multitap;
|
||||
|
||||
# The encryption method (don't change this unless you need to)
|
||||
method "salsa2012+umac";
|
||||
|
||||
# Bind to and listen for incoming connections on this address and port
|
||||
bind <ip>:<port>;
|
||||
bind [::]:<port>;
|
||||
|
||||
# Secret key (you generate this)
|
||||
secret "<secret key>";
|
||||
|
||||
# Do not forward traffic for others
|
||||
forward no;
|
||||
|
||||
# Setup a peer to allow incoming connections from or initiate a connection too
|
||||
peer "<peerName>"
|
||||
{
|
||||
remote <type> "<ip>" port <port>;
|
||||
key "<peer's public key>";
|
||||
interface "<interface>";
|
||||
}
|
||||
|
||||
```
|
||||
@ -52,14 +54,14 @@ peer "<peerName>"
|
||||
If your system uses ifconfig append
|
||||
```
|
||||
# On interface rise run
|
||||
on up "ifconfig $INTERFACE up";
|
||||
on down "ifconfig $INTERFACE down";
|
||||
on up "ifconfig <interface> up";
|
||||
on down "ifconfig <interface> down";
|
||||
```
|
||||
|
||||
If your system uses ip append
|
||||
```
|
||||
on up "ip link set dev $INTERFACE up";
|
||||
on down "ip link set dev $INTERFACE down";
|
||||
on up "ip link set dev <interface> up";
|
||||
on down "ip link set dev <interface> down";
|
||||
```
|
||||
|
||||
The template needs to have the following filled in:
|
||||
|
5
docs/tunneling/index.md
Normal file
@ -0,0 +1,5 @@
|
||||
|
||||
# Tunneling
|
||||
|
||||
- [fastd](fastd)
|
||||
- [WireGuard](wireguard)
|
3
docs/tunneling/wireguard.md
Normal file
@ -0,0 +1,3 @@
|
||||
# WireGuard
|
||||
|
||||
TODO: Add documentation
|
46
mkdocs.yml
@ -1,32 +1,38 @@
|
||||
site_name: CRXN
|
||||
theme: readthedocs
|
||||
extra_css: [extra.css]
|
||||
|
||||
nav:
|
||||
- Home: index.md
|
||||
- Home: .
|
||||
|
||||
- Getting started:
|
||||
- Guide: getting-started.md
|
||||
- Rules: rules.md
|
||||
- Requirements: requirements.md
|
||||
- Registration:
|
||||
- Registering and adding your prefix to EntityDB: registration/entitydb.md
|
||||
- Network configuration: network/setup.md
|
||||
- Guide: getting-started
|
||||
- Rules: getting-started/rules
|
||||
- Requirements: getting-started/requirements
|
||||
- Registration: getting-started/registration
|
||||
|
||||
- Routing:
|
||||
- Fowarding: routing/bird/forwarding.md
|
||||
- Setting up Bird: routing/bird/bird.md
|
||||
- Fowarding: routing/forwarding
|
||||
- Setting up Bird: routing/bird
|
||||
|
||||
- Tunneling:
|
||||
- Fastd: tunneling/fastd.md
|
||||
- Fastd: tunneling/fastd
|
||||
- WireGuard: tunneling/wireguard
|
||||
|
||||
- Setting up your home network:
|
||||
- Configuring your hosts:
|
||||
- Automatically with SLAAC and radv:
|
||||
- Setting up radv (router): radv/index.md
|
||||
- Setting up SLAAC (hosts): slaac/slaac.md
|
||||
- Using the network: usage/index.md
|
||||
- Setting up radv (router): home_network/radv
|
||||
- Setting up SLAAC (hosts): home_network/slaac
|
||||
- DNS: home_network/dns
|
||||
|
||||
- Additional:
|
||||
- CRXN DNS: dns/dns.md
|
||||
- DN42 interconnection: dn42.md
|
||||
- DNS: additional/dns
|
||||
- DN42 interconnection: additional/dn42_interconnection
|
||||
- On-the-go CRXN:
|
||||
- What is it?: otg/index.md
|
||||
- Deavmi's OTG: otg/deavmi.md
|
||||
- Peers: peers.md
|
||||
- Services: services.md
|
||||
- People: people/people.md
|
||||
- What is it?: additional/otg/
|
||||
- Deavmi's OTG: additional/otg/deavmi
|
||||
|
||||
- Peers: peers
|
||||
- Services: services
|
||||
- People: people
|
||||
|