Investigating Routing-Protocol Characteristics with MLC (MeshLinuxContainers: LXC, IP-tools, & co.

Investigating Routing-Protocol Characteristics with Mesh Linux Containers (MLC) Workshop, Computer Architecture Department UPC, Barcelona, Spain November 2011

Axel Neumann

1

Outline 

System overview  



Why: Test Protocol functionality, performance, cost, .. Components: LXC, brctl, ebtables, tc, ip, top, tcpdump, wireshark,...

Tutorial (hands on, open end...)   

Getting started: Init, simple net topology, monitoring Diving Inside (part I) Network and Protocol Characteristics  

 

Network: size, complexity, dynamics Protocol: overhead, -convergence time, robustness

Quick protocol overview: OLSR, Babel, BMX6 Diving inside (partII)  

Experiment I: Size vs overhead Experiment II: Dynamics vs overhead & convergence

Investigating Routing-Protocol Characteristics with Mesh Linux Containers (MLC) Workshop, Computer Architecture Department UPC, Barcelona, Spain November 2011

Axel Neumann

2

System Overview 

Why:   



What: Nothing new! 



Scripts exploiting existing Linux technology and tools

HOW:  





Create 100-nodes network on your laptop Test Protocol functionality, performance, cost, .. Reproducable, controllable, easy, but not real :-(

Virtualization: LXC - LinuxContainers Network Emulation:  brctl. ebtables, tc, vconfig Monitoring  top, tcpdump, wireshark, ...

Where: git clone git://qmp.cat/mlc.git

Investigating Routing-Protocol Characteristics with Mesh Linux Containers (MLC) Workshop, Computer Architecture Department UPC, Barcelona, Spain November 2011

Axel Neumann

3

System Overview 





LXC - LinuxContainers: virtualization/contextualization  Shared filesystem from template (mother LXC)  Individual directories ReadWrite (etc, root, var)  Mount heavy directories ReadOnly (usr, lib, src) Network emulation  brctl - bridge control: connecting interfaces  1 control network, 2 testing network channels  ebtables – iptables for Layer2: set virtual links  tc – traffic control: packet loss, delay, bandwidth Network slicing  vconfig – vlan tagging: create logically distinct channels for simultaneous experiments (eth0.11, eth1.12



Monitoring  top, tcpdump, wireshark,, vconfig

Investigating Routing-Protocol Characteristics with Mesh Linux Containers (MLC) Workshop, Computer Architecture Department UPC, Barcelona, Spain November 2011

Axel Neumann

4

System Overview LXC 



Childs RO/RW Mother RW/RW

Networking  Brctl  Ebtables  Tc Monitoring  Top  Tcpdump  wireshark

Investigating Routing-Protocol Characteristics with Mesh Linux Containers (MLC) Workshop, Computer Architecture Department UPC, Barcelona, Spain November 2011

Axel Neumann

5

System Overview/Details

Investigating Routing-Protocol Characteristics with Mesh Linux Containers (MLC) Workshop, Computer Architecture Department UPC, Barcelona, Spain November 2011

Axel Neumann

6

Network Emulation 1/2   

Default Policy: Drop ALL Specify link by making exception Handle link characteristics with tags and tc... root@sid:#  mlc_link_set 1 1000 1 1001 5 7 mlc_link_set eth1 1000 veth1000_1 TQ=5 ­­ eth1 1001 veth1001_1 TQ=7 mlc_link: src=0:0:0:10:0:1 ­> oif=veth1001_1  mlc_link: src=0:0:0:10:1:1 ­> oif=veth1000_1  root@sid:# ebtables ­Lnv Bridge chain: INPUT, entries: 0, policy: ACCEPT Bridge chain: FORWARD, entries: 6, policy: DROP ­s 0:0:0:10:0:1 ­d 33:33:0:0:0:0/16 ­o veth1001_1 ­j mark ­­mark­set 0x3 ­­mark­target ACCEPT ­s 0:0:0:10:0:1 ­d Broadcast ­o veth1001_1 ­j mark ­­mark­set 0x3 ­­mark­target ACCEPT ­s 0:0:0:10:0:1 ­o veth1001_1 ­j mark ­­mark­set 0x4 ­­mark­target ACCEPT [...] Bridge chain: OUTPUT, entries: 0, policy: ACCEPT

Investigating Routing-Protocol Characteristics with Mesh Linux Containers (MLC) Workshop, Computer Architecture Department UPC, Barcelona, Spain November 2011

Axel Neumann

7

Network Emulation 2/2   

Default Policy: Drop ALL Specify link by making exception Handle link characteristics with tags and tc... root@sid:# mlc_qdisc_prepare root@sid:# tc qdisc [...] qdisc prio 1: dev veth1000_1 root refcnt 2 bands 16 priomap  1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 qdisc netem 831f: dev veth1000_1 parent 1:3 limit 1000 delay 99us qdisc netem 8320: dev veth1000_1 parent 1:4 limit 1000 delay 99us qdisc netem 8321: dev veth1000_1 parent 1:5 limit 1000 delay 200us loss 2% qdisc netem 8322: dev veth1000_1 parent 1:6 limit 1000 delay 400us qdisc netem 8323: dev veth1000_1 parent 1:7 limit 1000 delay 299us loss 5% qdisc netem 8324: dev veth1000_1 parent 1:8 limit 1000 delay 1.6ms [...]

Investigating Routing-Protocol Characteristics with Mesh Linux Containers (MLC) Workshop, Computer Architecture Department UPC, Barcelona, Spain November 2011

Axel Neumann

8

MLC Command Overview (1/4) 



. ./mlc-vars.sh; ./mlc-init-host.sh – init system mlc_loop (handle many nodes/childs)  -c: create node, -b boot, -s stop, -d destroy 



-e: execute inside node 



  

$ mlc_loop -i 1000 -a 1015 -c $ mlc_loop -a 1015 -e “tcpdump -ieth0.12 -n100 > trace&”

-u: update node (with new configuration)

mlc_ls - list running nodes mlc_veth_obtain - update dev database mlc_qdisc_prepare - set link categories (tc/qdisc)

Investigating Routing-Protocol Characteristics with Mesh Linux Containers (MLC) Workshop, Computer Architecture Department UPC, Barcelona, Spain November 2011

Axel Neumann

9

MLC Command Overview (2/4) 

mlc_configure_line



mlc_configure_grid



mlc_link_set



mlc_mac_set (link with real world)



mlc_net_flush

Investigating Routing-Protocol Characteristics with Mesh Linux Containers (MLC) Workshop, Computer Architecture Department UPC, Barcelona, Spain November 2011

Axel Neumann

10

MLC Command Overview (3/4) 

mlc_configure_line



mlc_configure_grid



mlc_link_set



mlc_mac_set (link with real world)



mlc_net_flush

Investigating Routing-Protocol Characteristics with Mesh Linux Containers (MLC) Workshop, Computer Architecture Department UPC, Barcelona, Spain November 2011

Axel Neumann

11

MLC Command Overview (4/4) 

mlc_configure_line



mlc_configure_grid



mlc_link_set



mlc_mac_set (link with real world) 



$ mlc_mac_set 1 1002 eth0 00:18:84:1a:07:74 3

mlc_net_flush

Investigating Routing-Protocol Characteristics with Mesh Linux Containers (MLC) Workshop, Computer Architecture Department UPC, Barcelona, Spain November 2011

Axel Neumann

12

Getting Started

(init, simple topology)

$ ./mlc-init-host.sh

# setup network emulation, boot mother template

$ ./.mlc-vars.sh

# source the mlc functions

$ mlc_net_flush

# flush (old network topology)

$ ip link

# show new network environment

$ mlc_loop -a 1015 -c

# create 16 nodes

$ mlc_loop -a 1015 -b

# boot the 16 nodes

$ mlc_qdisc_prepare

# init link characteristics for new nodes $ ssh [email protected]

# ssh to node 1000 via control network

mlc1000$ ip -4 addr show dev eth1.12 591: eth1.12@eth1: mtu 1500 ... 10.201.10.0/11 brd 10.223.255.255 scope global eth1.12 mlc1000$ ping -Rn 10.201.10.01 $ mlc_link_set 1 1000 1 1001 5 7

inet

# ping node 1001 via eth1.12 → FAILURE

# configure link via eth1 mlc1000<->mlc1001 # with slightly asymmetric channel characteristics mlc1000$ ping -Rn 10.201.10.01

# ping node 1001 again → SUCCESS

Investigating Routing-Protocol Characteristics with Mesh Linux Containers (MLC) Workshop, Computer Architecture Department UPC, Barcelona, Spain November 2011

Axel Neumann

13

Getting Started

(ring topology, routing daemon)

$ mlc_configure_line

# get some help on command

$ mlc_configure_line 1 5 5 1015 5 5

# configure ring topology, symmetric links, 2%brc loss, # 0.2ms brc delay, 0.4ms unicast delay

mlc1000$ ping -Rn 10.201.10.15

# ping left one-hop neighbor 1015 → SUCCESS

mlc1000$ ping -Rn 10.201.10.02

# ping 1002 → FAILURE, NO ROUTE!, Keep on trying...

From 10.201.10.0 icmp_seq=1 Destination Host Unreachable [...]

$ mlc_loop -a 1015 -e “bmx6 configFile=0 ipVersion=4 dev=eth2.12” daemon

# start a routing

From 10.201.10.0 icmp_seq=33 Destination Host Unreachable 64 bytes from 10.201.10.2: icmp_req=34 ttl=63 time=1.85 ms RR:

10.201.10.0

10.201.10.1 10.201.10.2 [..] 64 bytes from 10.201.10.2: icmp_req=35 ttl=63 time=1.82 ms (same route) 64 bytes from 10.201.10.2: icmp_req=36 ttl=63 time=1.84 ms(same route)

$ mlc_link_set 1 1000 1 1001 0 0 path!!

# disable link between node 1000<->1001. Break above

64 bytes from 10.201.10.2: icmp_req=48 ttl=51 time=63.4 ms RR:

10.201.10.0

10.201.10.15 10.201.10.14 [..] 64 bytes from 10.201.10.2: icmp_req=49 ttl=51 time=12.4 ms (same route) 64 bytes from 10.201.10.2: icmp_req=50 ttl=51 time=12.3 ms (same route)



12 sec (icmp_req 48-36=12) to fix 14-hops route.

Investigating Routing-Protocol Characteristics with Mesh Linux Containers (MLC) Workshop, Computer Architecture Department UPC, Barcelona, Spain November 2011

Axel Neumann

14

Network and Protocol Characteristics  

Network size, complexity, dynamics Protocol overhead, convergence time, robustness



Investigating Routing-Protocol Characteristics with Mesh Linux Containers (MLC) Workshop, Computer Architecture Department UPC, Barcelona, Spain November 2011

Axel Neumann

15

Quick Network/Protocol Review 

Mesh-RouTting vs Internet Routing  



OLSR (Link State)  



Global view Periodic updates & timeouts

BABEL (Distant Vector)  



NB discovery, link metric valuation, and propagation dynamic network (nodes/links go up and down)

Local view Dynamic updates (on-demand)

BMX6 (Distant Vector)   

Local view Periodic updates & timeouts Statefull compression of RouteUpdates (hashes & IIDs)

Investigating Routing-Protocol Characteristics with Mesh Linux Containers (MLC) Workshop, Computer Architecture Department UPC, Barcelona, Spain November 2011

Axel Neumann

16

Diving Inside (Experiment I):  

Experiment I: Size vs overhead Experiment II: Dynamics vs overhead & convergence



Investigating Routing-Protocol Characteristics with Mesh Linux Containers (MLC) Workshop, Computer Architecture Department UPC, Barcelona, Spain November 2011

Axel Neumann

17

Further Experiments ? Questions ?

Investigating Routing-Protocol Characteristics with Mesh Linux Containers (MLC) Workshop, Computer Architecture Department UPC, Barcelona, Spain November 2011

Axel Neumann

18

Investigating Routing-Protocol Characteristics with MLC - GitHub

Workshop, Computer Architecture Department UPC, Barcelona, Spain November 2011 ... Create 100-nodes network on your laptop. ... s 0:0:0:10:0:1анd Broadcastанo veth1001_1анj markаннmarkset 0x3аннmarktarget ACCEPT.

316KB Sizes 9 Downloads 299 Views

Recommend Documents

Investigating the effects of caseworker characteristics in ...
services (General Accounting Office, 1995). Consequently ... Caseworkers with a terminal master's degree (specifically the MSW) perform a variety of social.

Investigating Retrieval Performance with Manually ... - Semantic Scholar
Internet in recent years, topicalized information like the directory service offered .... topic modeling technique, LSA has been heavily cited in many areas including IR ... Google5 also featured personal history features in its “My Search Historyâ

Investigating Retrieval Performance with Manually-Built ... - CiteSeerX
models outperforms relevance models for a subset of the queries and ... source in addition to queries to help in understanding a user's information need and to ..... retrieval task) and “Transportation” is closer than “Energy”, and there is n

Investigating Sensor Networks with Concurrent ... - IEEE Xplore
The background behind this demonstration is described as an one-page poster submission. The goal is to show a flow of tools for quick sensor network modeling, from an high level abstraction down to a system validation, including random network genera

Signaling with Two Correlated Characteristics
This model with two characteristics of information sheds light on a new role of education ... human capital augmentation (e.g. see Wolpin (1977), Riley (1979), Lang and Kropp (1986), Tyler, Murnane and Willett (2000), Bedard ... information, and from

CP2K with LIBXSMM - GitHub
make ARCH=Linux-x86-64-intel VERSION=psmp AVX=2. To target for instance “Knights ... //manual.cp2k.org/trunk/CP2K_INPUT/GLOBAL/DBCSR.html).

Java with Generators - GitHub
processes the control flow graph and transforms it into a state machine. This is required because we can then create states function SCOPEMANGLE(node).

environmental characteristics of diesel engine with ...
Keywords: emission system for exhaust gas recirculation (EGR), nitrogen oxides, circuit indicators, economic ... operation of the internal combustion engine is an alternative for the coming years. Their ... Diesel engines operating at lower loads can

Investigating Threads.pdf
end sub. call thread2. writeln("In main"). do. loop. end. Notes: 1. The “as thread” construct marks the subroutine executable as a thread. 2. You may wish to save the above code in a file or paste it in Notebook. Briefly explain what the above co

Investigating Threads.pdf
... to modify the above program statements for the next set of exercises. You. can do this in two ways: 1) Modify the existing source, 2) Copy the code and paste it into a. new editor window (you can use the NEW... button for this in the compiler win

OpenBMS connection with CAN - GitHub
Arduino with BMS- and CAN-bus shield as BMS a master. - LTC6802-2 or LTC6803-2 based boards as cell-level boards. - CAN controlled Eltek Valere as a ...

Better performance with WebWorkers - GitHub
Chrome52 on this Laptop. » ~14kbyte. String => 133ms ... 3-4 Seks processing time on samsung galaxy S5 with crosswalk to finish the transition with ... Page 17 ...

with ZeroMQ and gevent - GitHub
Normally, the networking of distributed systems is ... Service Oriented .... while True: msg = socket.recv() print "Received", msg socket.send(msg). 1. 2. 3. 4. 5. 6. 7.

Getting Started with CodeXL - GitHub
10. Source Code View . ..... APU, a recent version of Radeon Software, and the OpenCL APP SDK. This document describes ...... lel_Processing_OpenCL_Programming_Guide-rev-2.7.pdf. For GPU ... trademarks of their respective companies.

Getting Started with Go - GitHub
Jul 23, 2015 - The majority of my experience is in PHP. I ventured into Ruby, ... Compiled, Statically Typed, Concurrent, Imperative language. Originally ...

Getting Acquainted with R - GitHub
In this case help.search(log) returns all the functions with the string 'log' in them. ... R environment your 'working directory' (i.e. the directory on your computer's file ... Later in the course we'll discuss some ways of implementing sanity check

Training ConvNets with Torch - GitHub
Jan 17, 2014 - ... features + SVM. – Neural Nets (and discuss discovering graph structure automařcally). – ConvNets. • Notebook Setup ... Page 9 ...

Examples with importance weights - GitHub
Page 3 ... Learning with importance weights y. wT t x wT t+1x s(h)||x||2 ... ∣p=(wt−s(h)x)Tx s (h) = η. ∂l(p,y). ∂p. ∣. ∣. ∣. ∣p=(wt−s(h)x)Tx. Finally s(0) = 0 ...