Commit 8b952584 authored by PoroCYon's avatar PoroCYon

add links, derp

parent 2b18f9e8
......@@ -6,11 +6,12 @@ blog-date: 2017-12-17
# How to make your own Internet
Inspired by a discussion about Net Neutrality[0] and Motherbord's move to
become an ISP[1], I'll discuss about how to make your own Internet, not
necessarily connected to "the" Internet. Note that this doesn't go into
a lot of detail, so make sure to read the documentation of the software
if you plan to use it.
Inspired by [a discussion about Net Neutrality](https://forum.fork.sh/t/net-neutrality-has-been-repealed/66)
and [Motherbord's move to become an ISP](https://motherboard.vice.com/amp/en_us/article/j5djd7/motherboard-and-vice-are-building-a-community-internet-network-to-protect-net-neutrality),
I decided to discuss about how to make your own Internet, not necessarily
connected to "the" Internet. Note that this doesn't go into a lot
of detail, so make sure to read the documentation of the software if
you plan to use it.
Also, this post is not about Tor, I2P, and other overlay networks.
......@@ -32,8 +33,8 @@ and politics will be the most important factor of who can connect and
who cannot. Oops.
Secondly, when the network gets larger and larger, the routing tables
have to do the same, too. Nowdays, ISPs use specialised routers to keep
the speed acceptably high[2].
have to do the same, too. Nowdays, [ISPs use specialised routers to keep
the speed acceptably high](https://github.com/cjdelisle/cjdns/blob/master/doc/Whitepaper.md#why).
Using this method is still the best choice for small networks. Setting
it up is as easy as plugging in the cables. If you're using a switch,
......@@ -43,19 +44,22 @@ configuration.
### CJDNS
There is a solution to this problem: CJDNS[3]. It is an alternative IPv6
"implementation", where every node is its own ISP, as the address is
derived from one's public key. Routes are built from a DHT, and no route
lookup has to be done at intermediate nodes --- 'route labels'[4] are
used instead. It can be used directly on top of ethernet frames (or
There is a solution to this problem: [CJDNS](https://github.com/cjdelisle/cjdns/blob/master/doc/Whitepaper.md).
It is an alternative IPv6 "implementation", where every node is its own
ISP, as the address is derived from one's public key. Routes are built
from a DHT, and no route lookup has to be done at intermediate nodes
--- ['route labels'](https://github.com/cjdelisle/cjdns/blob/master/doc/Whitepaper.md#the-switch)
are used instead. It can be used directly on top of ethernet frames (or
wireless) or on UDP, and can also serve as a tunnel **for** IP packets.
All packets are encrypted and verified, but that doesn't mean it's
anonymised --- use I2Pd[5], an I2P implementation that can work on top
anonymised --- use [I2Pd (a.k.a. PurpleI2P)](https://github.com/PurpleI2P/i2pd),
an I2P implementation that can work on top
of CJDNS, for this. All peers are authenticated by a password mechanism,
so an attacker can't just plug in their sniffing device. Because IP
addresses are derived from public keys, it is much harder to misuse
routing vulnerabilities like these[5.5] as well.
[routing vulnerabilities like these](https://www.theregister.co.uk/2017/12/13/suspicious_bgp_event_routed_big_traffic_sites_through_russia/)
as well.
This authentication mechanism is also a bit of a curse, causing making
'initial connections' a bit of a hassle, and "dynamic" (or 'roaming',
......@@ -101,7 +105,8 @@ with these: I only looked into the routing protocols.
### OLSR
OLSR[7], or the Optimized Link State Routing protocol, is used in a number
[OLSR](https://en.wikipedia.org/wiki/Optimized_Link_State_Routing_Protocol),
or the Optimized Link State Routing protocol, is used in a number
of community wireless mesh networks. Like CJDNS, it can be used to route
packets, but in this case, this is done proactively and flooding, and
all routes for all node`<->`node pairs are calculated. This causes rather
......@@ -109,12 +114,14 @@ high bandwith and CPU usage, making it not scale very well.
### B.A.T.M.A.N.
B.A.T.M.A.N.[8] (Better Approach To Mobile Ad-hoc Networking) is made as
a reaction to OLSR, and is maintained by the Freifunk community[9].
[B.A.T.M.A.N.](https://www.open-mesh.org/projects/open-mesh/wiki)
(Better Approach To Mobile Ad-hoc Networking) is made as
a reaction to OLSR, and is maintained by the
[Freifunk community](https://freifunk.net/).
It intends to be suitable for fast-changing network topologies,
assymetric links etc., and peer discovery is done by selective
flooding of 'originator' messages. According to
[10](https://www.sciencedirect.com/science/article/pii/S089812211100589X/pdfft?md5=dd6187c7fb187884c6a0669978248c4f&pid=1-s2.0-S089812211100589X-main.pdf),
[this paper](https://www.sciencedirect.com/science/article/pii/S089812211100589X/pdfft?md5=dd6187c7fb187884c6a0669978248c4f&pid=1-s2.0-S089812211100589X-main.pdf),
OLSR seems to perform better in terms of speed, but
B.A.T.M.A.N. has less packet loss. This, however, seems to be conducted
with a low amount of nodes. I'm curious about the scalability of both
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment