I2P over Yggdrasil: anonymity in mesh networks
I2P over Yggdrasil: anonymity in mesh networks
I2P (Invisible Internet Protocol) is a free tool for organizing anonymous communications over the Internet. It is a peer-to-peer network in which each user by default is a potential link in an anonymous chain of other network participants.
I2P traffic is encrypted and cannot be analyzed. The concept of a "sentry" node in I2P, which is present in the Tor network, is not: there is no permanent node through which access to the network is carried out.
User interaction with I2P on the side of the home provider is identified as a chaotic connection to random hosts. The number of client connections with a white IP varies on average around the four thousand mark. In addition to the payload, this includes the exchange of service information with other network routers and transit traffic.
Prerequisites
A significant weakness of the I2P network is the need to access one of the start nodes via the regular Internet at the first start. A packet with an initial network pattern in the form of several random routers and a node that sends it is called a recid. Starting nodes are kept by enthusiasts, their list is publicly available and often undergoes changes due to normal human circumstances. The bottleneck lies in the ability on the provider's side to identify most requests to reseed through monitoring DNS queries, as well as in blocking the domains of start nodes, which will make it difficult for an inexperienced user to start the first time, because. require the use of a proxy or VPN.
Unlike regular Internet, I2P users without a dedicated address have a worse quality of use of the hidden network than subscribers with a white IP. This is due to the constant need for direct communication with other network routers. Each router publishes its address, which includes the encryption keys, IP address, and port for receiving messages. Obviously, reaching a network node behind a NAT server is not an easy task.
However, the operation of routers without a dedicated address is possible: a network client behind a NAT has to constantly maintain an active UDP connection, reserving a port on the provider's output server, requests to which will be transferred to the client. This scenario is quite complex, especially when it comes to initializing the connection from the outside. The mechanics of the client behind NAT is a work of engineering that deserves a separate article.
Briefly about Yggdrasil
Yggdrasil Network is one of the few working mesh networking protocols. The main concept is automatic routing on the internal IPv6 subnet (200::/7) and absolute scalability. Yggdrasil is completely peer-to-peer: there are no "master nodes" to which any global responsibility is delegated. It is an ideological continuation of the CJDNS (Hyperborea) project.
The abstract idea of the mesh network puts performance, privacy and ease of use at the forefront: traffic encryption and a low entry threshold for new users. Yggdrasil is not an anonymity tool because the nodes closest to the user see his real network interfaces on the local network, or the IP address when connecting to a public peer via the Internet. Mesh networks are used in the organization of pseudo-local networks, combining remote computers into one IPv6 network (similar to Hamachi for playing Minecraft and other multiplayer games). It also serves to organize other intranet resources like websites and VoIP-telephony.
First attempts at integration
A small note
The I2P router publishes its addresses, including IPv6, if it is enabled in the config and is actually available. Since Yggdrasil does not provide the user with a local proxy, but a full-fledged network interface (using the TUN driver from WireGuard), until recently, the I2P router published the IPv6 address from the Yggdrasil subnet. Since there were more than one or even two users with IPv6 enabled in the I2P router configuration and Yggdrasil installed, it was periodically possible to see that the I2P client (router) communicates with other Yggdrasil addresses.
However, there are the following shortcomings:
Resid should ultimately be accessed via the regular Internet;
the IPv6-Yggdrasil address published by the router is unknown and inaccessible to the vast majority of I2P users;
successful launch of an I2P router on a Yggdrasil-Only device is unlikely due to the possible absence of nodes with an IPv6-Yggdrasil address in the reseed or local database of the router.
The beginning of full compatibility
Since version 2.36.0 i2pd has several new configuration options, the main one being meshnets.yggdrasil=true
. This setting is independent of the IPv4 and IPv6 configuration. In particular, real network interfaces can be disabled. In this case, the I2P router will operate in Yggdrasil-Only mode.
A special reseed is also organized, accessible from Yggdrasil and giving the user a package primarily consisting of known routers with an IPv6-Yggdrasil address. Each time an I2P router running in Yggdrasil-Only mode is started, a check is made to see if the local database contains available nodes at the transport level, i.e. the presence of other nodes with IPv6-Yggdrasil. If for some reason there are no compatible routers in the local database, the Yggdrasil-resid is re-accessed.
With modern use of Yggdrasil mostly through overlay connections to public peers via the Internet, the operation of an I2P router in Yggdrasil is comparable to a “Tor-over-VPN” bundle: this approach completely hides the fact of using a hidden network from the home provider. In the case of I2P, there is another specific advantage: the user does not need to have a dedicated IP from the ISP for trouble-free external calls, because. IPv6-Yggdrasil is globally available within the Yggdrasil network segment (a physically connected group of participants, including through public Internet peers).
Network integrity
The described solution is not an I2P fragmentation factor. The construction of hidden network tunnels is a very capacious and even jeweler process, within the framework of which, among other things, the transport capabilities of the nodes are coordinated. Forming a "garlic" - an encrypted message to a group of nodes that should form a tunnel - the router checks their addresses for compatibility. For example, a host with a single IPv4 address would not receive an instruction to contact an IPv6 address, because this is obviously impossible.
In order for the Yggdrasil-Only router to build a tunnel to a node with an address from the regular Internet, at least a transit router will be selected that has two interfaces: IPv6-Yggdrasil and, for example, regular IPv4. In turn, other Yggdrasil-Only routers can also act as transit links of the tunnel, but only for communication with transport-compatible nodes, i.e. also having a Yggdrasil network interface. The more routers in the I2P network with simultaneously enabled IPv4, IPv6 and Yggdrasil interfaces, the more connected the network.
Prospect
The Yggdrasil example is a private step into the future, not an end in itself. The described experience of successfully integrating a hidden network into a mesh network is an important conceptual step, which, if necessary, will allow the integration of the I2P network into other mesh networks. The perspective is opened when considering self-organized segments of the mesh network, for example, in apartment buildings without a centralized provider. On the local network, the Yggdrasil client automatically finds other nodes and communicates with them, acting as a transit itself if necessary. When at least one node in such a segment is connected to another network segment (for example, to the global one via the Internet), the networks are automatically combined. This approach to organizing a network has become even more realistic, because. now there is a second side of the usual Internet - hidden.
For a more detailed acquaintance with the mentioned technologies, I recommend articles: about I2P and about Yggdrasil .
Коментарі
Дописати коментар
Олег Мічман в X: «Donations and support for media resources, bloggers, projects, and individuals. https://t.co/HPKsNRd4Uo https://t.co/R6NXVPK62M» / X
https://twitter.com/olukawy/status/1703876551505309973