Twitter

Показ дописів із міткою бытовых меш-сетей. Показати всі дописи
Показ дописів із міткою бытовых меш-сетей. Показати всі дописи

пʼятниця, 27 січня 2023 р.

Yggdrasil Network: Заря бытовых меш-сетей, или Интернет будущего

 

Yggdrasil Network: Dawn of household mesh networks, or the Internet of the future

Hornbeam
13 min

The era of mesh networks is slowly coming. At a minimum, this term appears more and more often in the information sphere. What attracts the attention of networkers and why does the title of the article include the concept of “household mesh network”? Let's try to understand the issue, taking the Yggdrasil network as an example, as one of the promising prototypes. The article is intended for a wide range of readers.

Topology overview

The Internet, like any other network, for example, a local network for several computers, is a network of interconnected computers. The order in which devices are connected in a network is called topology and is determined purely by the preferences and capabilities of the administrator. At home, you may have a Wi-Fi hotspot for easy connection from your smartphone, and a couple of desktop computers are connected to the router by cable. Obviously, the procedure for connecting a laptop to the Internet in your apartment is up to you. There is no single and mandatory configuration, but any solution has its pros and cons.

As you can see in the illustration, the star topology is the most vulnerable, it is also the most common in everyday life due to the simplicity of organization. You don’t need to go far for an example: you probably have a single switch or router at your home or office, through which all computers are connected into one local network. If the linking device is disabled, all subscribers will remain without communication. The tree topology can be considered a logical extension of the star: imagine a building where there is a separate switch on each floor, to which the offices located on the floor are connected. Thanks to the connection of switches between themselves, offices from different floors can communicate. If the switch on the second floor fails, the offices on the other floors can still communicate with each other, but the communication of the first floor with the rest will be lost.

Mesh or "mesh topology" is a network architecture in which all network participants are equal and act simultaneously as a client and a router for other participants. The main advantage of the mesh is its high fault tolerance, and the disadvantage is the complexity of practical implementation. Mesh topology has been widely used for decades, firstly, by the military, and secondly, by large businesses. It involves complex design, taking into account all possible conditions, and is often associated with radio technologies, since. radio is an indispensable assistant in organizing communications in the field.

Network communication model

In childhood, watching TV, many wondered about the magic that allows you to transmit sound and picture through a thin coaxial cable. Now there are even more questions, because the entire world wide web is somehow transmitted wirelessly straight into a small box called a smartphone.

Everyone is familiar with the concept of an IP address - the logical address of a subscriber for routing his incoming and outgoing information over the network. Without getting into the technical details of the TCP/IP stack, where IP stands for the easy-to-remember "Internet Protocol", there are two main kinds of IP addresses to distinguish:

  1. IPv4 - four-byte addresses written in decimal notation and separated bytes through a dot in the form "192.168.1.10". IPv4 is familiar to the eye and easy to understand, but has a small address space of about four billion variations. Less than the population of the Earth: it will not work to give each person a unique address, not to mention the Internet of things.

  2. IPv6 are sixteen-byte addresses written in hexadecimal notation, with colons separating each two bytes. It looks like this: "fe80:2a30:6b30:c26d:3d39:3ce4:218:6376". It is difficult to perceive and remember, but it has an unlimited number of possible addresses for the human imagination. The IPv6 address space is enough for many planets, given that each inhabitant will have three coffee makers with a unique address.

IPv6 appeared later than IPv4, and to this day, some software works over the network only using the IPv4 protocol. This remark is especially relevant for old software, the developers of which have stopped active development of the product.

In order to approach the representation of digital transmission, i.e. binary information consisting of bits - zeros and ones - you need a basic understanding of the Open Systems Interconnection (or simply: OSI) networking model. If you wish, you will find detailed help in two clicks, so I will not rewrite the textbook. Be aware: from an electrical impulse in a wire to displaying a picture in a browser, several logical levels are involved, and the lower the level, the less power consumption on the client side. While the signal is on the wire, the computer is not connected to it in any way. Then the signal reaches the network card of the device and its low-level processing begins by the network card itself. After that, the information is transferred directly to the operating system, and its logical processing falls on the main resources of the computer. The highest point of this chain is the client application, for example, a browser, and the picture in it. The total electrical impulse is converted into bits, then these bits form packets, are sent to the browser and assembled into a picture on the user's monitor.

classic network

Almost any modern telecommunications network implies the presence of an administrator - a user endowed with authority and responsibility. The administrator establishes connectivity, connects new subscribers, and also has the right to censor and restrict in every possible way the network segment under his control. This rule applies to both local networks and the global Internet. In the case of the Internet, we resort to the services of providers that connect us to their network. In turn, small providers use the services of backbone providers; those who unite countries and continents with their cable. The more serious the level of the network, the more people it serves. In addition to the physical connection of different computers with wires, a tremendous amount of work is being done on the logical configuration of the network - routing. Thanks to her, our requests to another continent fly away in a few tens of milliseconds, because each upstream router knows who needs to forward the packet further. Without setting up routing and the person who sets it up, even a tiny local network for several cabinets will not do!

In the modern paradigm of the global network, centralization has taken root, i.e. accountability of critical infrastructure to a certain circle of persons: state and commercial structures. Some have the right to set prices, others - to completely deprive us of contact with the world. And they all have the power to monitor and regulate user activity. It seems that there is no getting away from this.

Yggdrasil

Has it ever happened that your home router failed, and all household members were left without access to the network? Imagine how nice it would be if the router was not a “bottleneck”, and in the event of its failure, all members of the home network could access the Internet through a smart TV, nearby wireless networks, and eventually through your smartphone, and all this without any or additional configuration after a router failure!

All application programs are forced to use encryption when transmitting information over the network so that intermediate participants cannot intercept sensitive information. For example, almost all modern sites use the HTTPS protocol, which allows you to establish an encrypted connection between the user and the server. Thanks to this, we calmly enter passwords, data from bank cards and believe that the information we entered will be received only by its explicit addressee. Imagine that the network connection is always secure at the protocol level and there is no need to pile up additional security measures, including no need for certificate authorities - organizations that the whole world trusts using the already named HTTPS (the certificate authority is a security failure point, because .it assures us of the reliability of the connection,

To organize a local network in an enterprise, configure VPN for remote employees, even for a small network of three computers, one or another level of literacy and an appropriate specialist are required. But what if there is a solution that allows zero configuration on the side of a normal user, while allowing you to merge or separate local networks with full routing preservation (with physically accessible nodes)?

As you already understood, all the listed features have been implemented and are being actively developed. We got to the main agenda of the article - Yggdrasil - a software implementation of a mesh network with absolute scalability, automatic routing and end-to-end encryption of all traffic from user to user. Yggdrasil is a software solution that eliminates the need for an administrator when organizing small and medium networks, as well as minimizing the impact of crazy lawmakers on network connectivity as a whole.

Address in Yggdrasil

Yggdrasil uses IPv6 addressing with a netmask of 200::/7. Addresses from this subnet are not used on the Internet, so there are no collisions. Each user also has its own 300::/64 subnet, which allows you to assign shorter addresses to network interfaces, issue addresses from this subnet to local users at home, and also use them to host several resources at different addresses (for example, websites, all of which use port number 80). The short address is automatically routed to the full address from the 200::/7 subnet, the first 64 bits of which match. For example, the address [3 24:9de3:fea4:f6ac: :ace] is routed to the node with the full address [2 24:9de3:fea4:f6ac:6d7c:68f5:6c8e:f9a9]. Addresses from the user's additional subnet are easy to recognize by the first three in the address, because full addresses always use a deuce.

The user address is generated the first time the network software client is launched. To exclude the possibility of assigning someone else's address, the IPv6 address in Yggdrasil is directly derived from the encryption key. The connection will not be established if the encryption key does not match the IPv6 address. Because picking up or stealing someone else's key is a very non-trivial task, it can be concluded that the addresses in Yggdrasil are resistant to malicious attempts to interfere with their use. Read more about the cryptographic formation of IPv6 addresses in Yggdrasil in the article .

Due to the fact that the entire Yggdrasil network, regardless of the scale and physical location of the nodes, uses the same subnet, it is impossible to conduct global address routing using canonical network administration tools.

Building a shared coordinate tree in Yggdrasil

In traditional networks, where there is a meaningful allocation of allocated addresses, numerous administrators configure the routing logic, but how can a network work without an admin when it has thousands of nodes around the world? The name Yggdrasil comes from the tree of the same name in Scandinavian mythology, which unites the worlds. The name for the network was not chosen by chance, because. routing in it has a tree structure.

In addition to the IP address, network nodes have coordinates that reflect their logical place in the network. In order for these coordinates to have a reference point, some equal member of the network is selected among the nodes.

On the given network map, not all connections between nodes are displayed, but only some routes according to the logic of coordinate formation. The impression of centralization is erroneous, because this is not an information transfer topology, but an orientation scheme for nodes within a network.

The logic for calculating the zero node of coordinates

The first time the address is accessed, a broadcast poll of nearby participants occurs, then the search query propagates further through the network. When the request reaches a node that directly sees the target address, a response is returned to the requesting subscriber. The concept of Yggdrasil is based on the shortest paths and the highest possible speed of information transfer. Unlike the first request, the established session between two participants in most cases is carried out along the same route, based on the coordinates of the transit nodes. Due to this specificity, the first response has the longest waiting time, and when the session is established and the optimal route is determined, the delay stabilizes.

The most noticeable bug, overshadowing all other possible smaller flaws, is “network storms”. The threat model consists in the impulsive appearance and disappearance of a node with a signature key, which forces the other participants to rebuild the coordinates, taking it as a starting point. As you might guess, if the coordinates are constantly being rebuilt, the network routing suffers greatly, up to the complete loss of pings.

Experience and theory of using Yggdrasil in production

The first release on GitHub is dated February 17, 2018. However, to this day, Yggdrasil is positioned as a "raw" product, beta, and is not recommended for use in serious projects.

Many threats to network instability are relevant only when connected to the global network segment, where much of what happens is beyond our control. In the case of business solutions, there are cases of successful connection through Yggdrasil of remote employees, for example, accountants: RDP without unnecessary configuration of routers and port forwarding. Such networks are organized in isolation, so they are not subject to a “network storm”: on a server controlled by a full-time system administrator, a public feast is organized, to which all employees connect in overlay mode (i.e. via the Internet). It turns out an easily scalable network like a VPN with internal IPv6. Yggdrasil can also be used to forward IPv4 local networks - the corresponding parameters are available in the configuration file.

Yggdrasil has built-in means of restricting access to the network interface of the operating system allowing only a trusted list of keys that are specified in the configuration file. Thus, only manually added users will be able to connect to the machine's TUN interface. Untrusted network participants will not even be able to ping such an IPv6-Yggdrasil, while transit traffic on the host will not be affected in any way.

Also, since version 0.3.15, Yggdrasil allows you not only to block or allow some addresses, but to specify encryption and signature keys when setting up a connection to a public peer. In the case of a centralized connection of employees of an organization to a certain public peer, this parameter is more appropriate than ever, because due to direct key manipulation, it insures against a theoretical attack in the form of IPv6 address spoofing.

Technical Notes

Yggdrasil operates at a very high network layer (L3), building its tunnels over regular TCP/IP. All processing of intranet traffic requires the computing resources of the operating system. This is primarily due to cryptography: before transmitting information to a virtual network interface, which will be perceived by the operating system along with normal traffic, cryptographic operations are performed in the Yggdrasil service. With a lot of passing traffic on weak hardware, brakes can occur.

To work in a local network, i.e. automatic discovery of peers, you must enable IPv6 on the real network interfaces of the computer. In case of systems without IPv6 support (for example, Windows XP), connection to Yggdrasil is possible only by specifying the IPv4 address of a public peer (the address can be local).

The network scales automatically: if one of the users of an isolated network segment registers a public public peer, the entire segment will be part of the Yggdrasil global network.

Getting Started

Detailed instructions, a list of public peers, as well as a list of known intranet services are available on the official project page . The network client is cross-platform. At the time of publication, all common operating systems are supported: Windows , Linux, MacOS, IOS and Android.

To connect to the Yggdrasil global segment, you must specify public peers in the configuration file, the list of which can be found at the link above in the "Public peers" section. After a successful start, visit the on-net directory of the Russian-speaking community http://[222:a8e4:50cd:55c:788e:b0a5:4e2f:a92c]:. It's like Wikipedia, but inside Yggdrasil and contains a lot of how-to guides and background information on the topic.

Yggdrasil will be of interest to both network enthusiasts and administrators, and the younger generation, for example, to play Minecraft on a pseudo local network (as a replacement for Hamachi).

Postscript

In the early 2010s, the word "cryptocurrency" was almost unknown: somewhere it sounded like science fiction, and somewhere like nonsense. Only a small group of people understood what it was about, and an even smaller group delved into the essence and began to actively get acquainted with bitcoin. Now all sorts of cryptocurrencies are in bulk and the hype train has already started, and jumping into the last carriage is not an easy and expensive task.

Hearing about mesh networks, you will realize with pleasant satisfaction that this train did not leave without you.

UPD: In the release of Yggdrasil 0.4, the protocol has been significantly changed, read about it in the article " Yggdrasil Network 0.4 - A Leap in the Development of a Secure Self-Organizing Network ".

Yggdrasil Network: Заря бытовых меш-сетей, или Интернет будущего

Плавно наступает эпоха меш-сетей. Как минимум, этот термин все чаще и чаще появляется в информационной сфере. Что привлекает внимание сетевиков и почему в заголовке статьи фигурирует понятие «бытовая меш-сеть»? Попробуем разобраться в вопросе, взяв для примера сеть Yggdrasil, как один из многообещающих прототипов. Статья рассчитана на широкий круг читателей.

Общее представление о топологии

Интернет, как и любая другая сеть, например, локальная на несколько компьютеров, является сетью связанных между собой компьютеров. Порядок соединения устройств в сети называется топологией и определяется сугубо предпочтениями и возможностями администратора. Дома у вас может быть точка доступа Wi-Fi для удобного подключения со смартфона, а пара настольных компьютеров подключены к роутеру кабелем. Очевидно, что порядок подключения ноутбука к интернету в вашей квартире зависит только от вас. Не существует единой и обязательной конфигурации, но любое решение имеет свои плюсы и минусы.

Как видно на иллюстрации, самой уязвимой является топология «звезда», она же является самой распространенной в быту из-за простоты организации. За примером далеко ходить не нужно: наверняка у вас дома или в офисе стоит единственный коммутатор или роутер, через который все компьютеры объединяются в одну локальную сеть. Если связующее устройство будет отключено, все абоненты останутся без связи. Топологию «дерево» можно считать логическим продолжением «звезды»: представьте здание, где на каждом этаже стоит отдельный коммутатор, к которому подключаются расположенные на этаже офисы. Благодаря связи коммутаторов между собой, офисы с разных этажей могут общаться. Если коммутатор на втором этаже сломается, офисы на других этажах смогут по-прежнему взаимодействовать между собой, однако связь первого этажа с остальными будет потеряна.

Mesh или «ячеистая топология» – сетевая архитектура, в рамках которой все участники сети являются равноправными и выступают одновременно клиентом и маршрутизатором для других участников. Главное преимущество меша заключается в высокой отказоустойчивости, а минус – в сложности практической реализации. Ячеистая топология широко применяется уже десятки лет, во-первых, военными, во-вторых, крупным бизнесом. Она подразумевает сложное проектирование с учётом всех возможных условий и нередко сопряжена с технологиями радио, т.к. радио – незаменимый помощник в организации связи в полевых условиях.

Модель передачи данных по сети

В детстве, смотря телевизор, многие задавались вопросом о магии, которая позволяет по тонкому коаксиальному кабелю передавать звук и картинку. Теперь вопросов стало еще больше, потому что вся мировая паутина каким-то образом передается без проводов прямиком в маленькую коробочку, именуемую смартфоном.

Всем знакомо понятие IP-адреса – логического адреса абонента для маршрутизации его входящей и исходящей информации по сети.  Не вдаваясь в технические подробности стека TCP/IP, где IP – это легко запоминающийся «Internet Protocol», нужно различать два основных вида IP-адресов:

  1. IPv4 – четырехбайтные адреса с записью в десятичной системе счисления и разделением байтов через точку в виде «192.168.1.10». IPv4 привычен для глаза и прост в восприятии, однако имеет малое адресное пространство примерно в четыре миллиарда вариаций. Меньше, чем население Земли: выдать каждому человеку по уникальному адресу не получится, не говоря уже про интернет вещей.

  2. IPv6 – шестнадцатибайтные адреса, записываемые в шестнадцатеричной системе счисления с разделением каждых двух байтов двоеточиями. Выглядит примерно так: «fe80:2a30:6b30:c26d:3d39:3ce4:218:6376». Сложноват для восприятия и запоминания, однако имеет безграничное для человеческого воображения количество возможных адресов. Адресного пространства IPv6 хватит на много планет с учетом, что у каждого жителя будет по три кофеварки, имеющих уникальный адрес.

IPv6 появился позже, чем IPv4 и по сей день некоторое программное обеспечение работает по сети только по протоколу IPv4. Особенно это замечание актуально для старого ПО, разработчики которого прекратили активное развитие продукта.

Чтобы приблизиться к представлению передачи цифровой, т.е. бинарной информации, состоящей из битов – нулей и единиц, – понадобится базовое понимание модели сетевого взаимодействия Open Systems Interconnection (или просто:  OSI). Подробную справку при желании вы найдете в два клика, поэтому не стану переписывать учебник. Знайте: от электрического импульса в проводе до отображения картинки в браузере задействуется несколько логических уровней, и чем ниже уровень, тем меньше энергозатрат на стороне клиента. Пока сигнал идет по проводу, компьютер с ним никак не связан. Затем сигнал достигает сетевой карты устройства и начинается его низкоуровневая обработка силами самой сетевой платы. После этого информация передается непосредственно в операционную систему, и ее логическая обработка ложится на основные ресурсы компьютера. Высшая точка этой цепи – клиентское приложение, например, браузер, и картинка в нем. Итого электрический импульс преобразуется в биты, затем эти биты образуют пакеты, отправляются в браузер и собираются в картинку на мониторе пользователя.

Классическая сеть

Почти любая современная телекоммуникационная сеть подразумевает наличие администратора – пользователя, наделенного полномочиями и ответственностью. Админ налаживает связность, подключает новых абонентов, а также в праве цензурировать и всячески ограничивать подконтрольный ему сегмент сети. Это правило применимо как для локальных сетей, так и для глобальной – сети интернет. В случае с интернетом мы прибегаем к услугам провайдеров, которые подключают нас к своей сети. В свою очередь, малые провайдеры пользуются услугами магистральных провайдеров; тех, кто объединяет своим кабелем страны и континенты. Чем серьезнее уровень сети, тем большее количество человек ее обслуживает. Помимо физического соединения разных компьютеров проводами, проводится колоссальная работа по логической настройке сети – маршрутизации. Благодаря ей наши запросы на другой континент улетают за несколько десятков миллисекунд, потому что каждый вышестоящий маршрутизатор знает кому необходимо передать пакет дальше. Без настройки маршрутизации и человека, который её настроит, не обойдется даже крошечная локальная сеть на несколько кабинетов!

В современной парадигме глобальной сети прижилась централизованность, т.е. подконтрольность критической инфраструктуры определенному кругу лиц: государственным и коммерческим структурам. Одни в праве устанавливать цены, другие – вовсе лишить нас связи с миром. И все они имеют власть мониторить и регулировать активность пользователей. Кажется, что от этого никуда не деться.

Yggdrasil

Бывало ли, что ваш домашний роутер выходил из строя, и все домочадцы оставались без выхода в сеть? Представьте, как было бы хорошо, если роутер не был «бутылочным горлышком», и в случае его отказа все участники домашней сети могли выйти в интернет через умный телевизор, соседские беспроводные сети и в конце концов через ваш смартфон, и всё это без какой-либо дополнительной конфигурации после поломки роутера!

Все прикладные программы вынуждены использовать шифрование при передаче информации по сети, чтобы промежуточные участники не смогли перехватить чувствительную информацию. К примеру, почти все современные сайты используют протокол HTTPS, который позволяет устанавливать зашифрованное соединение пользователя с сервером. Благодаря этому мы спокойно вводим пароли, данные от банковских карт и верим, что введенная нами информация будет получена только ее явным адресатом. Представьте, что сетевое соединение всегда безопасно на уровне протокола и нет нужды нагромождать дополнительные средства защиты, в том числе нет потребности в центрах сертификации – организациях, на доверии к которым весь мир использует уже названный HTTPS (центр сертификации является точкой отказа безопасности, т.к. он заверяет нас в надежности соединения, но может быть скомпрометирован).

Для организации локальной сети на предприятии, настройки VPN для удаленных сотрудников, даже для малой сети из трёх компьютеров требуется тот или иной уровень грамотности и соответствующий специалист. А что, если существует решение, допускающее нулевую конфигурацию на стороне обычного пользователя, при этом позволяющее объединять или разделять локальные сети с полным сохранением маршрутизации (с физически доступными узлами)?

Как вы уже поняли, все перечисленные возможности реализованы и активно развиваются. Мы добрались до главной повестки статьи – Yggdrasil – программной реализации меш-сети с абсолютной масштабируемостью, автоматической маршрутизацией и оконечным шифрованием всего трафика от пользователя до пользователя. Yggdrasil – программное решение, избавляющее от необходимости в администраторе при организации малых и средних сетей, а также минимизирующее влияние сумасшедших законотворцев на связность сети в целом.

Адресация в Yggdrasil

Yggdrasil использует адресацию IPv6 с маской сети 200::/7. Адреса из этой подсети не применяются в интернете, поэтому коллизий не возникает. Каждый пользователь также имеет свою подсеть 300::/64, что позволяет назначать на сетевые интерфейсы более короткие адреса, выдавать адреса из этой подсети локальным пользователям дома, а также использовать их для хостинга нескольких ресурсов на разных адресах (например, сайты, все из которых используют порт № 80). Короткий адрес автоматически маршрутизируется на полный адрес из подсети 200::/7, первые 64 бита которого совпадают. Например, адрес [324:9de3:fea4:f6ac::ace] маршрутизируется на узел с полным адресом [224:9de3:fea4:f6ac:6d7c:68f5:6c8e:f9a9]. Адреса из дополнительной подсети пользователя легко распознать по первой тройке в адресе, т.к. в полных адресах всегда используется двойка.

Адрес пользователя генерируется при первом запуске программного клиента сети. Чтобы исключить возможность присвоения чужого адреса, адрес IPv6 в Yggdrasil непосредственно образуется от ключа шифрования. Соединение не будет установлено, если ключ шифрования не соответствует IPv6-адресу. Т.к. подобрать или своровать чужой ключ – весьма нетривиальная задача, можно заключить, что адреса в Yggdrasil устойчивы перед злонамеренными попытками помех их использования. Подробнее про криптографическое образование адресов IPv6 в Yggdrasil читайте в статье.

В силу того, что вся сеть Yggdrasil вне зависимости от масштаба и физического нахождения узлов использует одну подсеть, невозможно вести глобальную маршрутизацию адресов каноничными средствами сетевого администрирования.

Построение общего дерева координат в Yggdrasil

В традиционных сетях, где происходит осмысленное распределение выделенных адресов, логику маршрутизации настраивают многочисленные администраторы, а как работать сети без админа, когда в ней тысячи узлов по всему миру? Название Иггдрасиль происходит от одноимённого дерева в Скандинавской мифологии, которое объединяет миры. Имя для сети подобрано не случайно, т.к. маршрутизация в ней имеет древовидную структуру.

Помимо IP-адреса, узлы сети имеют координаты, отображающие их логическое место в сети. Чтобы эти координаты имели начало отсчета, среди узлов выбирается некоторый равный участник сети.

На приведённой карте сети отображены не все связи узлов между собой, а только некоторые маршруты по логике образования координат. Впечатление централизованности ошибочно, т.к. это не топология передачи информации, а схема ориентации узлов внутри сети.

Логика вычисления нулевого узла координат

При первом обращении к адресу происходит широковещательный опрос ближайших участников, затем поисковый запрос распространяется дальше по сети. Когда запрос доходит до узла, который непосредственно видит целевой адрес, запрашивающему абоненту возвращается ответ. В концепции Иггдрасиль лежат наикратчайшие пути и максимально возможная скорость передачи информации. В отличие от первого запроса, установленная сессия между двумя участниками в большинстве случае осуществляется по одному маршруту, основанному на координатах транзитных узлов. В силу такой специфики первый ответ имеет наибольшее время ожидания, а когда сессия установлена и определен оптимальный маршрут – задержка стабилизируется.

Самый заметный баг, затмевающий все остальные возможные недостатки поменьше, – это «сетевые штормы». Модель угрозы заключается в импульсообразном появлении и исчезновении узла с ключом подписи, который вынуждает остальных участников перестраивать координаты, беря его за точку отсчета. Как не сложно догадаться, если координаты постоянно перестраиваются, маршрутизация сети очень сильно страдает, вплоть до полной потери пингов.

Опыт и теория использования Yggdrasil в продакшене

Первый релиз на GitHub датируется 17 февраля 2018 года. Однако по сей день Yggdrasil позиционируется, как «сырой» продукт, бета, и не рекомендуется к использованию в серьезных проектах.

Многие угрозы нестабильности сети актуальны только при подключении к глобальному сегменту сети, где многое из происходящего от нас никак не зависит. В случае бизнес-решений, есть случаи успешного подключения через Yggdrasil удаленных сотрудников, например, бухгалтеров: RDP без лишней настройки роутеров и проброса портов. Такие сети организуются изолированно, поэтому не подвержены «сетевому шторму»: на сервере, подконтрольном штатному сисадмину, организуется публичный пир, к которому в оверлейном режиме (т.е. через интернет) подключаются все сотрудники. Получается легко масштабируемая сеть вроде VPN с внутренним IPv6. Также Yggdrasil может использоваться для проброса локальных сетей IPv4 – соответствующие параметры имеются в файле конфигурации.

В Yggdrasil есть встроенные средства ограничения доступа к сетевому интерфейсу операционной системы с допуском только доверенного списка ключей, которые указываются в конфигурационном файле. Таким образом подключиться к TUN-интерфейсу машины смогут только вручную добавленные пользователи. Недоверенные участники сети не смогут даже пинговать такой IPv6-Yggdrasil, при этом транзитный трафик на узле никак не пострадает.

Также с версии 0.3.15 Yggdrasil позволяет не просто блокировать или разрешать какие-то адреса, а указывать ключи шифрования и подписи при настройке подключения к публичному пиру. В случае централизованного подключения сотрудников организации к некоему публичному пиру, этот параметр как никогда уместен, т.к. за счет прямой манипуляции с ключами страхует от теоретической атаки в виде спуфинга адреса IPv6.

Технические замечания

Yggdrasil работает на весьма высоком сетевом уровне (L3), образуя свои туннели поверх обычного TCP/IP. Вся обработка внутрисетевого трафика требует вычислительных ресурсов операционной системы. В первую очередь это связано с криптографией: прежде, чем передать информацию на виртуальный сетевой интерфейс, который будет воспринят операционной системой наравне с обычным трафиком, в службе Yggdrasil производятся криптографические операции. При большом проходящем трафике на слабом железе могут возникать тормоза.

Для работы в локальной сети, т.е. автоматического обнаружения пиров, необходимо включить IPv6 на реальных сетевых интерфейсах компьютера. В случае систем без поддержки IPv6 (например, Windows XP), подключение к Yggdrasil возможно только посредством указания IPv4-адреса публичного пира (адрес может быть локальный).

Сеть масштабируется автоматически: если один из пользователей изолированного сегмента сети пропишет у себя общедоступный публичный пир, весь сегмент окажется частью глобальной сети Yggdrasil.

Начало использования

Подробные инструкции, список публичных пиров, а также список известных внутрисетевых сервисов доступен на официальной странице проекта. Клиент сети является кроссплатформенным. На момент публикации поддерживаются все распространенные ОС: Windows, Linux, MacOS, IOS и Android.

Для подключения к глобальному сегменту Yggdrasil, в конфигурационном файле необходимо прописать публичные пиры, список которых можно найти по ссылке выше в разделе "Public peers". После успешного старта посетите внутрисетевой справочник русскоязычного сообщества: http://[222:a8e4:50cd:55c:788e:b0a5:4e2f:a92c]. Это как Википедия, только внутри Yggdrasil и содержит множество практических мануалов и справочной информации по теме.

Yggdrasil будет интересен как сетевым энтузиастам и администраторам, так и подрастающему поколению, например, для игры в Minecraft в псевдо локальной сети (как замена Hamachi).

Постскриптум

В начале 2010-ых годов слово "криптовалюта" было почти неизвестно: где-то звучало на уровне фантастики, а где-то, как бред. Лишь небольшая группа людей понимала, о чем речь, и еще меньшая – вникала в суть и начинала активно знакомиться с биткоином. Теперь всяческих криптовалют навалом и поезд хайпа уже тронулся, а запрыгнуть в последний вагон – занятие непростое и недешевое.

Услышав про меш-сети, вы с приятным удовлетворением поймете, что эта электричка без вас не уехала.

UPD: В релизе Yggdrasil 0.4 протокол значительно изменен, читайте об этом в статье "Yggdrasil Network 0.4 — Скачок в развитии защищенной самоорганизующейся сети".