Сеть Иггдрасиль — это оверлейная сеть IPv6, целью которой является создание децентрализованной и зашифрованной ячеистой сети. Это достигается путем рассмотрения сетей как листьев двоичного дерева. Будучи оверлейной сетью, Yggdrasil также выполняет функцию виртуальная частная сеть (VPN), которая позволяет пользователям безопасно взаимодействовать друг с другом.
Кроме того, Yggdrasil бесплатен, относительно прост в настройке и доступен для широкого спектра платформ. Это делает Иггдрасиль отличной альтернативой для людей, которые заинтересованы в безопасной частной связи с другими людьми.
Читайте также: Как использовать Python для базового системного администрирования Linux и сетевых задач
Что такое Mesh Networking и Yggdrasil?
Иггдрасиль достигает ячеистая сеть , представляя сеть в виде дерева взаимосвязанных узлов. При этом эти узлы могут действовать как ретрансляторы для других узлов. Это делает Иггдрасиль настоящей ячеистой сетью.
![Сравнение сети Иггдрасиль 02](https://saintist.ru/wp-content/uploads/2024/05/yggdrasil-network-02-comparison.png)
Кроме того, структура сети позволяет Иггдрасилю легко найти машину или веб-сайт, который вы хотите посетить. В свою очередь, это позволяет ва
Contents
Что такое Mesh Networking и Yggdrasil?
з необходимости использования центрального сервера для маршрутизации трафика.Зачем использовать Иггдрасиль?
Главное преимущество Yggdrasil заключается в том, что он меняет способ маршрутизации данных через Интернет. Это достигается путем предположения нескольких вещей о состоянии указанной сети по умолчанию:
- Все узлы подключены хотя бы к одному другому узлу.
- Каждый узел может прозрачно передавать данные другому узлу.
- Каждый узел может транслировать подключенные к нему узлы.
![Пример маршрутизации сети Yggdrasil 03](https://saintist.ru/wp-content/uploads/2024/05/yggdrasil-network-03-example-routing.png)
Эти предположения создают структуру, одновременно жесткую и предсказуемую, но в то же время очень гибкую. Например, вы можете сделать свою машину общедоступной, подключившись только к одному общедоступному узлу. Затем этот общедоступный узел подключается к другим узлам. Оттуда другие пользователи могут использовать этот узел для подключения к вам.
![Сеть Иггдрасиль 04 Публичный Частный Узел](https://saintist.ru/wp-content/uploads/2024/05/yggdrasil-network-04-public-private-node.png)
Мало того, Yggdrasil также позволяет создавать подсеть локальных машин. Таким образом, это очень полезно, если вы хотите создать VPN.
Читайте также: Как управлять своей сетью Wi-Fi в Linux
Как установить Иггдрасиль
Как обсуждалось выше, Игг
Зачем использовать Иггдрасиль?
операционных системах. Сюда входит большинство дистрибутивов Linux.Однако Иггдрасиль не всегда находится в репозиториях по умолчанию. Таким образом, некоторые дистрибутивы требуют, чтобы вы включили их исходные коды перед установкой.
Установка Yggdrasil в Debian и Ubuntu
Например, если вы хотите установить Yggdrasil в Debian и Ubuntu, вам необходимо сначала добавить их официальный GPG-ключ в apt. Для этого выполните следующие команды:
gpg --fetch-keys https://neilalexander.s3.dualstack.eu-west-2.amazonaws.com/deb/key.txt gpg --export 569130E8CA20FBC4CB3FDE555898470A764B32C9 | sudo apt-key add -
![Yggdrasil Network 05 Импорт ключа Gpg](https://saintist.ru/wp-content/uploads/2024/05/yggdrasil-network-05-import-gpg-key.jpg)
Оттуда вам нужно добавить репозиторий в список источников, которые apt ищет в своих пакетах:
echo 'deb http://neilalexander.s3.dualstack.eu-west-2.amazonaws.com/deb/ debian yggdrasil' | sudo tee /etc/apt/sources.list.d/yggdrasil.list
![Сеть Иггдрасиль 06 Источники Иггдрасиля](https://saintist.ru/wp-content/uploads/2024/05/yggdrasil-network-06-yggdrasil-sources.png)
После этого обновите apt и установите программу. Сделайте это, запустив одну строку кода:
sudo apt update && sudo apt install yggdrasil
![Установка Yggdrasil Network 07 Apt](https://saintist.ru/wp-content/uploads/2024/05/yggdrasil-network-07-apt-install.jpg)
Читайте также: 9 лучших почтовых клиентов для Linux
Установка Yggdrasil в Fedora
В отличие от Debian и Ubuntu, процесс установки Y
Как установить Иггдрасиль
он уже является частью «Пакетов сообщества» Fedora.Таким образом, установить программу так же просто, как выполнить команды:
sudo dnf copr enable rany/yggdrasil sudo dnf install yggdrasil
Установка Yggdrasil в Arch Linux
Наконец, установка Yggdrasil в Arch Linux также чрезвычайно проста. Как и Fedora, он уже включен в репозиторий исходных кодов сообщества Arch.
Таким образом, вы можете установить программу через pacman:
Настройка установки
После этого настроить Yggdrasil для подключения к узлу очень просто: вам нужно всего лишь отредактировать «/etc/yggdrasil.conf», чтобы настроить поведение программы. Чтобы получить к нему доступ, используйте nano:
sudo nano -w /etc/yggdrasil.conf
![Пример конференции «Сеть Иггдрасиль 10»](https://saintist.ru/wp-content/uploads/2024/05/yggdrasil-network-10-sample-conf.png)
Yggdrasil создаст этот файл после установки. Однако если это не так, вы можете запустить эту команду, чтобы создать новый файл конфигурации:
su --command="yggdrasil -genconf > /etc/yggdrasil.conf"
Подключение к общедоступному узлу
Как мы уже говорили выше, существует два способа использования программы:
- Подключитесь к общедоступному узлу, чтобы сделать вашу машину видимой.
- Объедините несколько машин в виртуальную частную сеть.
Для первого варианта добавьте адрес общедоступного узла в файл «/etc/yggdrasil.conf», отредактировав блок Peers:
в этом файле конфигурации.
Это раздел конфигурации, который определяет, к каким узлам вы хотите подключиться. Таким образом, все перечисленные здесь машины должны быть общедоступными и доступными для подключения через Интернет.
Имея это в виду, рассмотрим следующий пример:
{ # List of connection strings for outbound peer connections in URI format, # e.g. tls://a.b.c.d:e or socks://a.b.c.d:e/f.g.h.i:j. These connections # will obey the operating system routing table, therefore you should # use this section when you may connect via different interfaces. Peers: [ tls://address.domain:port tcp://1.2.3.4:port socks://[aaaa:...:ffff]/[1111:...:9999] ] [...]
Блок однор
Установка Yggdrasil в Fedora
вый список всех узлов, к которым вы хотите подключиться.![Сеть Yggdrasil 15 образцов пиров](https://saintist.ru/wp-content/uploads/2024/05/yggdrasil-network-15-sample-peers.png)
Он может установить либо зашифрованное соединение с использованием TLS и SOCKS, либо незашифрованное соединение с использованием TCP. Последнее полезно для подключения небольших встроенных устройств, которые не поддерживают TLS, но имеют базовое сетевое подключение.
При этом вы можете подключиться к общедоступно
Установка Yggdrasil в Arch Linux
сылок на узлы предоставлено его сообществом .После этого вы можете включить программу, выполнив следующие команды:
sudo systemctl enable yggdrasil sudo systemctl start yggdrasil
Вы можете проверить, правильно ли вы подключились к сети, посетив эта веб-страница .
Читайте также: Как использовать tcpdump для захвата пакетов
Создание собственной частной сети
С другой стороны, создание частной сети может быть немного сложным, но все же относительно простым. Чтобы создать частную сеть Иггдрасиль, вам понадобится несколько вещей:
- Общедоступная машина. Это может быть либо локальная машина, не заблокированная CG-NAT, либо дешевый виртуальный частный сервер.
- Несколько компьютеров, расположенных в разных сетях, которые не могут напрямую взаимодействовать друг с другом.
Настройка личного общедоступного узла
Чтобы создать частную сеть Yg
Подключение к общедоступному узлу
общедоступному компьютеру подключаться к другим узлам. Для этого измените блокListen:
файла «/etc/yggdrasil.conf» общедоступного компьютера.
Например, узел, настроенный для общедоступных подключений, может выглядеть примерно так:
[...] # Listen addresses for incoming connections. You will need to add # listeners in order to accept incoming peerings from non-local nodes. # Multicast peer discovery will work regardless of any listeners set # here. Each listener should be specified in URI format as above, e.g. # tls://0.0.0.0:0 or tls://[::]:0 to listen on all interfaces. Listen: [ tls://your.ipv4.address.here:12345 tcp://[your:ipv6:address:here]:12345 ] [...]
Мы настроили узел на прием любых входящих соединений через порт 12345 как с IPv4, так и с IPv6. Кроме того, соединение IPv4 заключено в TLS, а IPv6 — в незашифрованный TCP.
![Образец прослушивания Yggdrasil Network 12](https://saintist.ru/wp-content/uploads/2024/05/yggdrasil-network-12-listen-sample.jpg)
Здесь включите и запустите службу Yggdrasil, чтобы применить ваши настройки. После этого подключение к этому узлу будет аналогично подключению к общедоступному узлу.
Обнаружение адресов и ограничение доступа
По умолчанию ваш вновь созданный узел Иггдрасиль будет принимать любые входящие соединения при условии, что они используют правильный порт. Чтобы создать по-настоящему частную VPN для ваших компьютеров, вам необходимо добавить их в белый список открытых ключей.
Узел Иггдрасиль работает путем передачи уникального открытого ключа, который Иггдрасиль сгенерировал при его первой установке. Этот ключ используется для вашей безопасности в сети и создания вашего адреса.
Вы можете проверить свой адрес Иггдрасиля, выполнив эту команду:
sudo yggdrasilctl getself
![Образец Сети Иггдрасиль 13](https://saintist.ru/wp-content/uploads/2024/05/yggdrasil-network-13-sample-getself.png)
Отобразится IPv6-адрес, который начинается с «20x:…». Его можно использовать для прямого подключения к этому компьютеру через Yggdrasil.
Кроме того, команда getself
также отобразит открытый ключ машины. Это то, что вам нужно для создания разрешенного списка компьютеров на вашем общедоступном узле.
Настройка вашего личного узла для ограничения доступа
Чтобы ограничить доступ к вашему узлу Yggdrasil, вам необходимо отредактировать блок AllowedPublicKeys:
в файле «/etc/yggdrasil.conf» вашего общедоступного узла. Просто добавьте все открытые ключи, которые вы хотите, чтобы этот узел принимал.
Например, это конфигурация узла, который принимает только три открытых ключа:
# List of peer public keys to allow incoming peering connections # from. If left empty/undefined then all connections will be allowed # by default. This does not affect outgoing peerings, nor does it # affect link-local peers discovered via multicast. AllowedPublicKeys: [ "publickey1" "publickey2" "publickey3" ]
![Сеть Иггдрасиль 14 примеров открытых ключей](https://saintist.ru/wp-content/uploads/2024/05/yggdrasil-network-14-sample-public-keys.png)
После этого вы можете применить настройки, перезапустив службу Yggdrasil:
sudo systemctl restart yggdrasil
Поздравляем! Теперь у вас есть базовое представление о том, как работает сеть Иггдрасиль, а также базовое представление о том, как подключить и настроить частную сеть.
Если все эти разговоры заинтересуют вас тем, как работает Интернет, вы можете прочитать эту статью о Создание собственной частной сетипомощью tcpdump">захват TCP-пакетов с помощью tcpdump .
Читайте также: Как создать SSL-сертификаты в Linux с помощью OpenSSL
Часто задаваемые вопросы
1. Я добавил адрес Иггдрасиля моего друга в свой файл конфигурации, но не могу подключиться к нему. Что я делаю не так?
Это может быть связано с рядом причин. Однако наиболее распространенными причинами этой проблемы являются:
- Обе машины находятся за NAT и поэтому не могут установить прямое соединение друг с другом.
- Блок
Peers:
и блокListen:
в «/etc/yggdrasil.conf» настроены неправильно.
Настройка личного общедоступного узла
отя бы один компьютер доступен публично. Вам также необходимо убедиться, что используемый вами порт правильно перенаправлен и его можно увидеть за пределами вашей локальной сети.Во-вторых, убедитесь, что блоки Peers:
и Listen:
содержат реальный адрес IPv4 или IPv6 пирингового компьютера, а не его Адрес Иггдрасиля.
2. Как мне узнать, правильно ли мои машины взаимодействуют друг с другом?
Вы можете легко проверить, правильно ли ваши машины взаимодействуют друг с другом, выполнив эту команду:
sudo yggdrasilctl getpeers
Это отобразит вам все подключенные в данный момент узлы, а также их относительное положение в дереве сети Иггдрасиля.
3. Можно ли создать надежный ключ и адрес Иггдрасиля?
Да! Вы можете сделать это с помощью майнера адресов. Это простая программа, которая методом перебора вычисляет пару открытых ключей, перед которыми стоит определенное количество нулей.
Наиболее распространенной программой для этого является Простой генератор Иггдрасиля (SYG), последняя версия которой написана на C++.
Автор изображения: Unsplash