-
Notifications
You must be signed in to change notification settings - Fork 42
An exemplifying demo
The long-term view behind Linux XIA is to crowdsource the future Internet. Accomplishing this view means (1) embracing old and new technologies, (2) lowering developing and deployment costs, and (3) nurturing a level-playing field for anyone to experiment with their ideas. The demo described in this page leverages a diverse set of technologies to substantiate this view of the future.
Our exemplifying demo show how zFilter, Digital fountain, and TCP/IP can interoperate to distribute content over XIA. zFilter is a multicast fabric developed for the PURSUIT FIA; read more about it on page zFilter principal. Digital fountain is a 15-year-old coding technology that adds reliability to open-loop multicast transmissions; see page Digital fountain. Any viable future Internet must interoperate with TCP/IP to lever all the infrastructure already deployed. To this end, our demo uses U4ID principal; see more about it on page 4ID principals.
This demo requires three machines, each with one network card, and
one machine with three network cards.
The former machines will be hosts, whereas the latter a router.
The machines should be put together following the following topology:
One can adapt this demo to run on virtual machines, but given that
the intention is to present this demo in public, we have chosen to
do it on real machines.
All machines must run a Linux XIA kernel, and have xiaconf package installed; see page How to install. The server and clients will need the Digital Fountain application; see page Digital fountain. The demo requires that Wireshark with XIA extensions is installed on one of the machines to inspect the traffic that the demo produces; see page Debugging the Linux kernel. The experimenter may prefer to have this Wireshark yet on a fifth machine to keep the demo isolated. The demo also requires tcpdump(8) on the router, but it is a good idea to have it installed on all machines to help with troubleshooting. On Ubuntu, tcpdump can be installed with the command:
$ sudo apt-get install tcpdump
Once the machines are connected together, and all the software is in place, one has to assign HIDs to each machine, and enumerate the HID associated to each machine as shown below:
### On the router # xip hid new router # xip hid getpub router hid-eefa98af7649d454b9f2b704012c307ced00f87a -----BEGIN PUBLIC KEY----- OMMITED -----END PUBLIC KEY----- ### On client A # xip hid new client-a # xip hid getpub client-a hid-4a17e52f5dcc9dbadf15497a52b6f3a214616cff -----BEGIN PUBLIC KEY----- OMMITED -----END PUBLIC KEY----- ### On client B # xip hid new client-b # xip hid getpub client-b hid-897f3aa1bb04ad9fd4022ce33678ba9accc83f3e -----BEGIN PUBLIC KEY----- OMMITED -----END PUBLIC KEY-----
Notice that the commands above do not assign an HID XID to the server since the server is not attached to an XIA network directly.
One only needs to execute the steps of this section once, whereas the steps in the following sections are supposed to be executed after each reboot.
The server will use principals XDP, U4ID, and zFilter.
All the commands below should be executed as root:
# Set up IP stack ifconfig eth0 10.2.71.1 netmask 255.255.255.252 \ broadcast 10.2.71.3 # Loading XIA stack modprobe xia modprobe xia_ppal_xdp modprobe xia_ppal_u4id modprobe xia_ppal_zf # Populating routing table xip u4id add 10.2.71.1 0xc3d7 -tunnel xip zf addroute 1000000000000000000000000000000000000000 \ gw u4id-0a024801c3d70000000000000000000000000000
The server will use principals HID, U4ID, and zFilter.
# Set up IP stack ifconfig eth0 10.2.71.2 netmask 255.255.255.252 \ broadcast 10.2.71.3 # Loading XIA stack modprobe xia modprobe xia_ppal_hid modprobe xia_ppal_u4id modprobe xia_ppal_zf # Populating routing table xip hid addaddr router xip u4id add 10.2.71.2 0xc3d7 xip zf addroute 0100000000000000000000000000000000000000 \ gw hid-4a17e52f5dcc9dbadf15497a52b6f3a214616cff xip zf addroute 0010000000000000000000000000000000000000 \ gw hid-897f3aa1bb04ad9fd4022ce33678ba9accc83f3e
Once the router is set up, one can test the IP link between server and router as follows:
ping 10.2.71.1
Client A will use principals XDP, HID, and zFilter.
# Loading XIA stack modprobe xia modprobe xia_ppal_xdp modprobe xia_ppal_hid modprobe xia_ppal_zf # Populating routing table xip hid addaddr client-a xip zf addroute 0100000000000000000000000000000000000000 \ gw xdp-007f4e38904e83634acc7e1340ef7665e3f1f57b
Client A will use principals XDP, HID, and zFilter.
# Loading XIA stack modprobe xia modprobe xia_ppal_xdp modprobe xia_ppal_hid modprobe xia_ppal_zf # Populating routing table xip hid addaddr client-b xip zf addroute 0010000000000000000000000000000000000000 \ gw xdp-007f4e38904e83634acc7e1340ef7665e3f1f57b
TODO: Quick test HID, on the router, check neighbors.
TODO: # tcpdump -i eth0 -w con0.dump
All grants that have generously supported the development of Linux XIA are listed on our Funding page.