How to Wiki Database (change log)
http://[222:a8e4:50cd:55c:788e:b0a5:4e2f:a92c]
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
280 lines
25 KiB
280 lines
25 KiB
9 months ago
|
====== Как подключиться к Yggdrasil, не устанавливая его клиент на устройство ======
|
||
|
|
||
|
Разработчики [[yggdrasil:yggdrasil|Yggdrasil]] рекомендуют устанавливать клиент Yggdrasil на каждое устройство, которому нужен доступ в эту сеть. При этом гарантируется сквозное шифрование трафика между узлами, и каждый узел сети сможет выполнять роль маршрутизатора. Однако не во всех сетевых устройствах есть возможность установки и запуска Yggdrasil.
|
||
|
|
||
|
===== Вариант 1: маршрутизация из подсети /64 =====
|
||
|
|
||
|
Если устройство поддерживает протокол IPv6, оно может быть подключено к сети Yggdrasil путем присвоения ему IPv6 адреса из подсети 300::/64 и указания адреса шлюза в сеть Yggdrasil.
|
||
|
|
||
|
Иными словами, если у нас дома есть роутер, на котором имеется возможность установить Yggdrasil, то другие устройства в нашей сети мы можем подключить к сети Yggdrasil, не устанавливая на них клиент сети.
|
||
|
|
||
|
Предположим, что узел на роутере имеет адрес Yggdrasil ''200:1111:2222:3333:4444:5555:6666:7777'', тогда для подключения других устройств в сети необходимо им назначить адреса такого вида: ''300:1111:2222:3333::/64''. Это могут быть: ''300:1111:2222:3333::1'', ''300:1111:2222:3333::2'' и т.д. Обратите внимание, что первая цифра 2 изменена на 3, далее 3 разряда с разделителем ":" - это обязательная часть префикса. Остальные 64 бита (4 последние секции) - произвольные числа от 0000 до ffff. Читайте подробнее о подсети [[yggdrasil:subnet_setting|в этой статье]].
|
||
|
|
||
|
Далее, устройствам с адресами ''300:1111:2222:3333::/64'' нужно указать маршрут в сеть 0200::/7 через основное устройство с адресом ''200:1111:2222:3333:4444:5555:6666:7777''.
|
||
|
|
||
|
//**Примечание:** следует учитывать, что при такой конфигурации трафик между роутером и устройствами без Yggdrasil будет передаваться незашифрованным. Кроме того, обратите внимание, что префикс /64 имеет меньше битов адресного пространства, доступного для проверки идентификатора узла, что, в свою очередь, означает, что коллизии хэшей более вероятны. Таким образом, не следует полностью полагаться на адреса диапазона 300::/8 как на достоверно принадлежащие конкретному узлу (хотя, до сих пор подобные коллизии и не возникали, и даже не были намеренно созданы с помощью майнеров адресов, теоретически вероятность их возникновения существует).//
|
||
|
|
||
|
==== Пример ручной настройки ====
|
||
|
|
||
|
Допустим, в домашней сети работает [[wpru>Raspberry_Pi|RaspberryPi]], на котором установлен Yggdrasil: aдрес Yggdrasil: ''%%202:421a:2eс5:40a4:fa32:f4a4:9b42:d4e4%%''; префикс, соответственно: ''%%302:421a:2eс5:40a4::/64%%''; интерфейс: ''%%tun0%%''; к локальной сети Raspberri подключен через интерфейс ''%%eth0%%''.
|
||
|
|
||
|
Хотим подключить к сети Yggdrasil ноутбук, но не хотим на него устанавливать само ПО Yggdrasil. Ноутбук подключен к той же домашней сети через интерфейс ''%%wlo1%%'' (Wi-Fi).
|
||
|
|
||
|
1. Нужно на интерфейс, через который Raspberri подключен к локальной сети, добавить адрес из подсети Yggdrasil:
|
||
|
<code>sudo ip address add 302:421a:2eс5:40a4::1/64 dev eth0</code>
|
||
|
|
||
|
2. На Raspberri же включаем форвардинг пакетов между интерфейсами:
|
||
|
<code>sudo sysctl -w net.ipv6.conf.all.forwarding=1</code>
|
||
|
(для того, чтобы это сохранилось после перезагрузки, необходимо раскоментировать присвоение 1 этому параметру в ''%%/etc/sysctl.conf%%'')
|
||
|
|
||
|
3. На ноутбуке, на интерфейсе, которым он подключен к локальной сети, добавим адрес из подсети Yggdrasil:
|
||
|
<code>sudo ip address add 302:421a:2eс5:40a4::5/64 dev wlo1</code>
|
||
|
|
||
|
4. Прописываем на ноутбуке маршрут:
|
||
|
<code>sudo ip -6 route add 0200::/7 via 302:421a:2eс5:40a4::1</code>
|
||
|
|
||
|
//**Примечание:** если на этом этапе у вас возникли сложности, и у вас старое ядро Linux, возможно, вам поможет статья: "[[yggdrasil:route_with_old_kernel]]".//
|
||
|
|
||
|
Всё, пробуем с ноутбука пинговать адреса в Yggdrasil:
|
||
|
<code>ping -6 21e:a51c:885b:7db0:166e:927:98cd:d186</code>
|
||
|
|
||
|
Как видим, всё работает:
|
||
|
<code>PING 21e:a51c:885b:7db0:166e:927:98cd:d186(21e:a51c:885b:7db0:166e:927:98cd:d186) 56 data bytes
|
||
|
64 bytes from 21e:a51c:885b:7db0:166e:927:98cd:d186: icmp_seq=1 ttl=63 time=58.0 ms
|
||
|
64 bytes from 21e:a51c:885b:7db0:166e:927:98cd:d186: icmp_seq=2 ttl=63 time=69.0 ms
|
||
|
...
|
||
|
</code>
|
||
|
|
||
|
После проделанного, на всякий случай, не забудьте проверить, какие порты открыты на адресах ''%%302:421a:2eс5:40a4::1%%'' и ''%%302:421a:2eс5:40a4::5%%'':
|
||
|
<code>nmap -6 302:421a:2eс5:40a4::5
|
||
|
nmap -6 302:421a:2eс5:40a4::1</code>
|
||
|
|
||
|
==== Автоматическая настройка ====
|
||
|
Для целей автоматической раздачи устройствам в домашней сети IPv6-адресов из /64-подсети можно использовать демон [[wp>radvd]] (router advertisement daemon).
|
||
|
|
||
|
Примеры конфигурации демона radvd:
|
||
|
|
||
|
<WRAP group>
|
||
|
<WRAP column>
|
||
|
<code>interface eth0
|
||
|
{
|
||
|
AdvSendAdvert on;
|
||
|
AdvDefaultLifetime 0;
|
||
|
prefix 300:1111:2222:3333::/64 {
|
||
|
AdvOnLink on;
|
||
|
AdvAutonomous on;
|
||
|
};
|
||
|
route 200::/7 {};
|
||
|
};</code>
|
||
|
</WRAP>
|
||
|
|
||
|
<WRAP column>
|
||
|
<code>interface eth0
|
||
|
{
|
||
|
AdvSendAdvert on;
|
||
|
AdvLinkMTU 1280; # без этой строчки сбоит подключение для windows-устройств (задаёт MTU)
|
||
|
MinRtrAdvInterval 30;
|
||
|
MaxRtrAdvInterval 100;
|
||
|
prefix 300:1111:2222:3333::/64 {
|
||
|
AdvOnLink on;
|
||
|
AdvAutonomous on;
|
||
|
AdvRouterAddr on; # Без этой строки подключаются не все android-устройства; строка "route 200::/7 {};" не требуется.
|
||
|
};
|
||
|
RDNSS 300:1111::53 {}; # Необязательно (задает рекурсивный DNS-сервер)
|
||
|
};</code>
|
||
|
</WRAP>
|
||
|
</WRAP>
|
||
|
|
||
|
|
||
|
Здесь ''%%300:1111:2222:3333::/64%%'' - префикc вашей подсети ("выдается" вместе с IPv6 адресом, привязанным к ключу в конфигурационном файле Yggdrasil).
|
||
|
|
||
|
//**Примечание:** по [[https://cstamas.hu/blog/posts/yggdrasil_300::__47__7_network_with_openwrt/|этой]] ссылке можно прочесть о том, анонсируется маршрут-поумолчанию без radvd (на [[wpru>OpenWrt]]).//
|
||
|
|
||
|
Для корректной работы маршрутизации через устройство, на котором установлен Yggdrasil на нем должна быть разрешена маршутизация IPv6-пакетов:
|
||
|
|
||
|
<code>sudo sysctl -w net.ipv6.conf.all.forwarding=1</code>
|
||
|
''%%net.ipv6.conf.all.forwarding=1%%'' нужно раскомментировать в ''%%/etc/sysctl.conf%%''
|
||
|
|
||
|
== То же самое, но без использования radvd ==
|
||
|
|
||
|
Допустим, у вас есть роутер, где LAN является сетевым интерфейсом br0, а Yggdrasil - ygg0.
|
||
|
|
||
|
<code>
|
||
|
ip a add fdb7:e5e:e3a9:f2d1::/64 dev br0 # Unique local address (ULA) является аналогом 192.168.1.1 в ipv4, его нужно добавить для корректной работы dnsmasq.
|
||
|
ip a add 300:1111:2222:3333::/64 dev br0 # Не забудьте заменить префикс 300:1111:2222:3333::/64 из примера на правильный адрес, полученный при запуске команды yggdrasilctl -v getSelf
|
||
|
ip route add 200::/7 dev ygg0
|
||
|
</code>
|
||
|
|
||
|
Обратите внимание на эти команды. Наиболее лучшим решением будет добавление ipv6 адресов через конфигурационные файлы системы или заранее подготовленный скрипт. В примере также добавлен ULA (fdb7:e5e:e3a9:f2d1::). Не обязательно использовать именно этот префикс. Вы можете сгенерировать свой https://unique-local-ipv6.com/
|
||
|
|
||
|
<summary>**Более подробный пример для систем c OpenRC**</summary>
|
||
|
|
||
|
На операционных системах c OpenRC (например, Gentoo) у вас есть возможность дополнительно запускать свои собственные скрипты. При каждом запуске сервиса local - будет запускаться скрипт yggdrasil**.start**. Подробнее: https://wiki.gentoo.org/wiki//etc/local.d
|
||
|
|
||
|
<code>
|
||
|
# rc-service local restart
|
||
|
* Stopping local ...
|
||
|
* Executing "/etc/local.d/yggdrasil.stop" ... [ ok ]
|
||
|
* Starting local ...
|
||
|
* Executing "/etc/local.d/yggdrasil.start" ... [ ok ]
|
||
|
</code>
|
||
|
|
||
|
/etc/local.d/yggdrasil**.start**
|
||
|
|
||
|
<file sh yggdrasil.start>
|
||
|
#!/bin/bash
|
||
|
|
||
|
# Возможно, вы захотите очистить лог
|
||
|
> /var/log/yggdrasil.stdout.log
|
||
|
|
||
|
#Не забудьте заменить префикс 300:1111:2222:3333::/64 из примера на правильный адрес, полученный при запуске команды yggdrasilctl -v getSelf
|
||
|
ip a add 330:1111:2222:3333::/64 dev br0
|
||
|
# Также вы можете добавить адрес вашего вебсайта
|
||
|
ip a add 330:1111:2222:3333::fea4/64 dev br0
|
||
|
ip r add 200::/7 dev ygg0
|
||
|
</file>
|
||
|
|
||
|
Можно дополнительно создать срипт /etc/local.d/yggdrasil**.stop**, который будет удалять добавленные адреса, но он не особо то и нужен. Учтите, при перезапуске интерфейса br0 он снова сбросится к стандартным настройкам.
|
||
|
|
||
|
<code>rc-service net.br0 restart</code>
|
||
|
|
||
|
Это можно исправить несолькими способами:
|
||
|
- снова перезапустив сервис **local**
|
||
|
- перезапустив сам скрипт /etc/local.d/yggdrasil**.start**
|
||
|
- или, для автоматизации, добавив в файл /etc/conf.d/net вот таую конструкцю, которая сама запустит скрипт при поднятии интерфейса br0
|
||
|
|
||
|
<code>
|
||
|
postup() {
|
||
|
if [ "${IFACE}" = "br0" ]
|
||
|
then
|
||
|
#rc-service local restart
|
||
|
/etc/local.d/yggdrasil.start
|
||
|
fi
|
||
|
return 0
|
||
|
}
|
||
|
</code>
|
||
|
|
||
|
|
||
|
На данном этапе вы уже можете посетить сайты сети Yggdrasil через консоль роутера. Убедитесь, что это работает.
|
||
|
|
||
|
<code>
|
||
|
# Используя консольный браузер
|
||
|
lynx http://[222:a8e4:50cd:55c:788e:b0a5:4e2f:a92c]/
|
||
|
# Или вот так
|
||
|
curl http://[222:a8e4:50cd:55c:788e:b0a5:4e2f:a92c]/</code>
|
||
|
|
||
|
Теперь настройте DHCP**v6**, чтобы раздавать адреса устойствам подключённым каким либо образом к интерфейсам объединённым в br0 (для понимания, br0 - бридж).
|
||
|
|
||
|
Допишите в файл /etc/dnsmasq.conf
|
||
|
|
||
|
<code>
|
||
|
listen-address=::1,127.0.0.1,192.168.1.1,fdb7:e5e:e3a9:f2d1:: # Слушать множество адресов, включая добавленный нами ранее ULA
|
||
|
dhcp-range=br0,300:1111:2222:3333::,ra-stateless,72h # YGG DHCP - Автоматическое получение адресов (DHCP). Не забудьте заменить 300:1111:2222:3333:: из примера на правильный адрес, полученный при запуске команды yggdrasilctl -v getSelf
|
||
|
dhcp-range=br0,fdb7:e5e:e3a9:f2d1::,ra-stateless,72h # ULA DHCP
|
||
|
|
||
|
# Пример настройи DNS сервера только для посещения сайтов черрез домены .ygg и .meship.
|
||
|
# Актуальные DNS сервера публикуются на странице http://[222:a8e4:50cd:55c:788e:b0a5:4e2f:a92c]/yggdrasil:dns:internal_dns
|
||
|
server=/.meship/.ygg/302:db60::53
|
||
|
server=/.meship/.ygg/300:6223::53
|
||
|
|
||
|
# В данной конфигуации вы также можете использовать unbound, но не 53 порту, так как порт занят DNS сервером самого dnsmasq. Пример конфигуации unbound на странице http://[222:a8e4:50cd:55c:788e:b0a5:4e2f:a92c]/yggdrasil:dns:unbound_wyrd
|
||
|
server=::1#5353
|
||
|
server=127.0.0.1#5353
|
||
|
|
||
|
</code>
|
||
|
|
||
|
После внесения правок перезапустите dnsmasq.
|
||
|
|
||
|
|
||
|
===== Вариант 2: использование прокси-сервера =====
|
||
|
|
||
|
[[yggdrasil:Yggdrasil]] устанавливается на одном единственном компьютере. Лучше, если это будет домашний сервер, который никогда не выключается.
|
||
|
На этом сервере нужно поставить прокси (http или socks), тогда вы сможете заходить через этот прокси в сеть, используя веб-браузер. А если ваш сервер
|
||
|
виден из внешнего мира, то вы сможете выходить в сеть вообще отовсюду. Не забудьте только повесить прокси на нестандартном порту и жестко ограничить IP, с которых предполагается туда заходить. Например, только из дома и только с работы. Если у вас есть доступ по ssh к собственному серверу (так обычно и бывает), то список разрешенных IP можно гибко менять при необходимости. Ведь вы можете оказаться в гостинице, в отпуске на Багамах, в командировке и т.д.
|
||
|
//Имейте в виду, что c клиента трафик до прокси-сервера будет идти в открытом виде.//
|
||
|
|
||
|
Используя какой-нибудь проксификатор ([[https://www.proxifier.com/|Proxifier]]) или что-то вроде [[https://github.com/xjasonlyu/tun2socks/|Tun2Socks]] можно не только посещать сайты в сети [[yggdrasil:Yggdrasil]], настроив соединение через прокси-сервер, но и дать возможность практически любым приложениям (не поддерживающим соединение через прокси-сервер) работать через прокси-сервер.
|
||
|
|
||
|
Пример конфигурации простейшего [[https://3proxy.ru/?l=RU|3proxy]]:
|
||
|
|
||
|
<code>log NUL D
|
||
|
internal 127.0.0.1
|
||
|
auth none
|
||
|
flush
|
||
|
socks -46 -p3229 -i91.233.111.15</code>
|
||
|
|
||
|
''%%91.233.111.15%%'' - адрес, на котором будет ждать подключений socks-прокси (может быть в локальной сети (192.168.x.x)) \\
|
||
|
''%%3229%%'' - порт, на котором будет ждать подключений socks-прокси
|
||
|
|
||
|
Используя [[wp>Proxy_auto-config|PAC-файл]] можно настроить браузер так, чтобы запросы на адреса Yggdrasil / ALFIS шли через прокси, а всё остальное - напрямую. Пример //подобного// PAC-файла можно найти [[https://www.linux.org.ru/forum/general/12324672?cid=12324680|здесь]]. Подробнее о PAC можно прочесть [[https://securelist.ru/pac-fajl-avtokonfiguratsii-problem/242/|здесь]].
|
||
|
|
||
|
===== Вариант 3: маршрутизация через VPN-сервер =====
|
||
|
|
||
|
==== использование WireGuard ====
|
||
|
Некоторые пользователи устанавливают [[yggdrasil:Yggdrasil]] на свой VPN-сервер и маршрутизируют трафик в Yggdrasil через него. В качестве серверного ПО VPN-сервера может использоваться [[https://openvpn.net/|OpenVPN]] или [[:wireguard|WireGuard]]. На сервере должна быть включена маршутизация пакетов (в ''%%/etc/sysctl.conf%%''):
|
||
|
<code>net.ipv4.ip_forward=1
|
||
|
net.ipv6.conf.all.forwarding=1</code>
|
||
|
Т.о., подключаясь к VPN-серверу, клиент получает доступ и в Интернет, и в Yggdrasil.
|
||
|
|
||
|
Пример конфигурации [[:wireguard|WireGuard]] на сервере:
|
||
|
<code>[Interface]
|
||
|
Address = 10.0.0.1/24, fd00::1/124
|
||
|
PrivateKey = 6EwVi06HBT/DdmYSM8QZv554OoE3mk0vxC3DdlVW/nc=
|
||
|
ListenPort = 51820
|
||
|
#IPv6 and IPv4
|
||
|
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; iptables -A FORWARD -o %i -j ACCEPT; ip6tables -A FORWARD -i %i -j ACCEPT; ip6tables -t nat -A POSTROUTING -o tun0 -j MASQUERADE; ip6tables -A FORWARD -o %i -j ACCEPT
|
||
|
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; iptables -D FORWARD -o %i -j ACCEPT; ip6tables -D FORWARD -i %i -j ACCEPT; ip6tables -t nat -D POSTROUTING -o tun0 -j MASQUERADE; ip6tables -D FORWARD -o %i -j ACCEPT
|
||
|
|
||
|
[Peer]
|
||
|
PublicKey = cyP3jP+Xwbp84kUxct6TGXx8rM1xFCVOBn8Z4m+vLxE=
|
||
|
AllowedIPs = 10.0.0.2/32, fd00::2/128
|
||
|
|
||
|
#...
|
||
|
</code>
|
||
|
|
||
|
На клиенте:
|
||
|
<code>[Interface]
|
||
|
Address = 10.0.0.2/24, fd00::2/124
|
||
|
PrivateKey = rOZrd1oaoYAFOd0CPBkXhsvfzPrMj79aIQ0THswGsv7=
|
||
|
DNS = 94.140.14.14, 94.140.15.15
|
||
|
|
||
|
[Peer]
|
||
|
PublicKey = Rgh78oSDafr2sNv6cp/vBDlaiuVCi2DtCduU0mmcHpo=
|
||
|
Endpoint = xxx.xxx.xxx.xxx:51820
|
||
|
#Все IPv4 и только Yggdrasil-IPv6
|
||
|
AllowedIPs = 0.0.0.0/0, 200::/7
|
||
|
#или так (все IPv4 и все IPv6):
|
||
|
#AllowedIPs = 0.0.0.0/0, ::/0
|
||
|
</code>
|
||
|
|
||
|
Для того, чтобы через туннель работало разрешение имен [[yggdrasil:dns:ALFIS|ALFIS]], можно установить ALFIS на сервере или использовать один из [[yggdrasil:dns:alfis#список_публичных_серверов|публичных серверов]] и на клиенте, в конфигурационном файле wireguard, в строке, начинающейся с ''%%DNS =%%'', указать адрес резолвера/сервера ALFIS.
|
||
|
|
||
|
//Примечание:// при такой конфигурации, чтобы работало обычное соединение по IPv6, нужно наличие "настоящего" IPv6 на сервере, и для него (для нужного интерфейса) нужно будет добавить маскарадинг в ''%%PostUp =%%'' и ''%%PostDown =%%''. Подробнее здесь: [[wireguard:simple_vpn]]
|
||
|
|
||
|
==== использование ZeroTier ====
|
||
|
Это еще один вариант с использованием отдельностоящего сервера в качестве VPN.
|
||
|
|
||
|
Данный вариант инетерсен тем, что у [[https://www.zerotier.com/|ZeroTier]] есть клиент подо все популярные операционные системы и мобильные платформы.
|
||
|
|
||
|
- Регистрируемся на [[https://my.zerotier.com/|контроллере]] (для личных нужд хватит бесплатной версии) или поднимаем один из своих контроллеров (например [[https://key-networks.com/ztncui/|ztncui]] или [[https://github.com/dec0dOS/zero-ui|zero-ui]])
|
||
|
- На сервере скачиваем и устанавливаем [[https://www.zerotier.com/download/|клиент ZeroTier]], устанавливаем [[yggdrasil:Yggdrasil]], и включаем ipv6 форвардинг посредством **sysctl net.ipv6.conf.all.forwarding=1**
|
||
|
- Смотрим на полученные в yggdrasil адреса. Допустим aдрес Yggdrasil: **202:421a:2eс5:40a4:fa32:f4a4:9b42:d4e4**, префикс, соответственно: **302:421a:2eс5:40a4::/64**
|
||
|
- В контроллере создаём новую сеть. В этой сети нужно выолнить следующие настройки:
|
||
|
- Добавить роутинг **302:421a:2eс5:40a4::/64** "без gateway", т.е. эти адреса должны остаться внутри сети ZeroTier
|
||
|
- Добавить роутинг **200::/7** через **302:421a:2eс5:40a4::1** (или любой другой адрес, который вам захочется назначить GW.
|
||
|
- Отключить **IPv4 Auto-Assign**
|
||
|
- Включить **IPv6 Auto-Assign** в режиме **Auto-Assign from Range**
|
||
|
- Добавить пул выделяемых адресов с **302:421a:2eс5:40a4::1** по **302:421a:2eс5:40a4:ffff:ffff:ffff:ffff**
|
||
|
- На сервере добавляем клиента ZeroTier в нашу сеть посредством **zerotier-cli join <netid>>** (netid берём из настроек сети в контроллере)
|
||
|
- Так как ZeroTier считает **200::/7** публичной сетью (скажем искреннее спасибо авторам Yggdrasil за выбранный адрес), выполняем команду **zerotier-cli set <netid> allowGlobal=1**
|
||
|
- В контроллере "авторизуем" нового клиента. Или переводим сеть из разряда **Private** в разряд **Public** и забываем об этой операции навсегда. Если вы не будете где попало светить <netid> своей сети, к ней никто подключиться не может всё равно.
|
||
|
- Там же меняем IP у этого клиента на **302:421a:2eс5:40a4::1**
|
||
|
|
||
|
Собственно, на этом всё. Теперь на любое устройство/компьютер можно поставить клиент ZeroTier и присоеденившись к сети автоматически олучить IP адрес и роутинг. Ну или полуавтоматически, если Вы параноик и не стали переводить сеть в режим **Public**, то Вам придётся на контроллере авторизовывать каждое новое устройство. Единственное - не забываем на клиенте разрешать "глобальные адреса" через **zerotier-cli set <netid> allowGlobal=1** (еще раз скажем искреннее спасибо авторам Yggdrasil), иначе клиент просто не примет такой адрес (в мобильных клиентах тоже есть такая настройка).
|
||
|
|
||
|
====== Ссылки ======
|
||
|
Конфигурация Yggdrasil, описание префикса адреса (EN): https://yggdrasil-network.github.io/configuration.html \\
|
||
|
Configuring Yggdrasil with systemd-networkd (EN): https://tdem.in/post/yggdrasil-systemd/ \\
|
||
|
|
||
|
~~DISCUSSION~~
|