wm: doc

Download patch

ref: e034c38c0b317b17e23433dde5481edcd15a5e27
parent: 0cb1d25cc7b782e8d765ea2df01824830e228e34
author: jrmu <jrmu@inter9>
date: Sun Oct 29 05:30:06 EDT 2023

Add new routing idea for the Inter9

--- /dev/null
+++ b/routing.ms
@@ -1,0 +1,27 @@
+The splintering of the global Internet will create multiple national internets, each of which claim to be its own independent authority, each of which cannot be mutually routed with one another.
+
+This creates a crisis of authority, since the original internet was designed with centralized control and a single canonical truth. Which internet is real, which is virtual?
+
+This problem of how to route packets to mutually incompatible internets has been solved before: Network Address Translation. This technique can be re-used with a little twist.
+
+With traditional NAT, the following address space is considered private and not routable globally:
+
+10.0.0.0/8
+172.16.0.0/12
+192.168.0.0/16
+
+This totals to 17,891,328 private IP addresses that are available to a single NAT.
+
+With traditional NAT, the private IP addresses exist only virtually within the local area network, while the other addresses are the real, globally routable addresses. But because the Splinternet presents us with multiple, mutually incompatible internets, the situation can be treated from a relative perspective.
+
+From this relative perspective, the real network is the internet you are currently on, and all other internets are virtual. Hence, from the perspective of an Inter9 user, the private IP addresses are real, and the others virtual.
+
+For example, suppose user A is assigned IP address 10.0.2.4, and user B assigned IP address 192.168.4.5 inside the Inter9. Routing can be handled in the normal way, using routing protocols like OSPF.
+
+Implicit in this model is the assumption that multiple public internets have colliding address spaces. Both Internet A and Internet B may have a host assigned the IP address 1.2.3.4. NAT can help demultiplex this situation.
+
+An outgoing packet sent from the Inter9 to Internet A's 1.2.3.4 can use the port number 10080 for port 80 of A's 1.2.3.4. An outgoing packet sent from the Inter9 to Internet B's 1.2.3.4 can use port number 10080 for port 80 of B's 1.2.3.4.
+
+No new routing protocols need to be introduced. Routing to incompatible internets is simply handled using NAT
+
+byte for byte compatibility with existing protocols on the wire is necessary to ensure compatibility
\ No newline at end of file