Investigating Linux Network Behaviour Using Open-Source ... · outer2# show ip ospf database OSPF...
Transcript of Investigating Linux Network Behaviour Using Open-Source ... · outer2# show ip ospf database OSPF...
![Page 1: Investigating Linux Network Behaviour Using Open-Source ... · outer2# show ip ospf database OSPF Router with ID (10.100.0.3) Routing failure Router2# show ip ospf database OSPF Router](https://reader033.fdocuments.net/reader033/viewer/2022051604/6005bf5a2f1369077f190d70/html5/thumbnails/1.jpg)
Investigating Linux Network Behaviour Using Open-Source
Network Emulators
Brian Linkletter
![Page 2: Investigating Linux Network Behaviour Using Open-Source ... · outer2# show ip ospf database OSPF Router with ID (10.100.0.3) Routing failure Router2# show ip ospf database OSPF Router](https://reader033.fdocuments.net/reader033/viewer/2022051604/6005bf5a2f1369077f190d70/html5/thumbnails/2.jpg)
Network in a laptop
![Page 3: Investigating Linux Network Behaviour Using Open-Source ... · outer2# show ip ospf database OSPF Router with ID (10.100.0.3) Routing failure Router2# show ip ospf database OSPF Router](https://reader033.fdocuments.net/reader033/viewer/2022051604/6005bf5a2f1369077f190d70/html5/thumbnails/3.jpg)
Network Emulation
● Orchestrate the setup and configuration a virtual network scenario in a user-friendly way
● May use Linux containers or VMs, or both, for “routers”● May use Linux bridging or OVS for “switches”● Use cases
– Creating “black box” test beds for external nodes
– Rapidly set up ad-hoc testing or demonstration scenarios
– Practice network operations in safe environment
● Many Linux network emulation tools are available– Choose based on virtualization, scripting language supported,
user interface,
![Page 4: Investigating Linux Network Behaviour Using Open-Source ... · outer2# show ip ospf database OSPF Router with ID (10.100.0.3) Routing failure Router2# show ip ospf database OSPF Router](https://reader033.fdocuments.net/reader033/viewer/2022051604/6005bf5a2f1369077f190d70/html5/thumbnails/4.jpg)
Emulation examples
TCP troubleshooting– Round trip delays and window sizes
– Bad links(bit errors)
Routing protocol troubleshooting– Changing network topology
– Silent failures
![Page 5: Investigating Linux Network Behaviour Using Open-Source ... · outer2# show ip ospf database OSPF Router with ID (10.100.0.3) Routing failure Router2# show ip ospf database OSPF Router](https://reader033.fdocuments.net/reader033/viewer/2022051604/6005bf5a2f1369077f190d70/html5/thumbnails/5.jpg)
Delay
No delay configured. Total RTT 0.1 ms
<7/PC0-21.conf# iperf3 -c 10.0.2.20 -O 2 -t 5 -w 64K
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-5.00 sec 10.6 GBytes 18.2 Gbits/sec 0 sender
[ 4] 0.00-5.00 sec 10.7 GBytes 18.3 Gbits/sec receiver
Delay configured. Total RTT 50 ms
<97/PC0-21.conf# iperf3 -c 10.0.2.20 -O 2 -t 5 -w 64K
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-5.00 sec 5.98 MBytes 10.0 Mbits/sec 4 sender
[ 4] 0.00-5.00 sec 6.04 MBytes 10.1 Mbits/sec receiver
![Page 6: Investigating Linux Network Behaviour Using Open-Source ... · outer2# show ip ospf database OSPF Router with ID (10.100.0.3) Routing failure Router2# show ip ospf database OSPF Router](https://reader033.fdocuments.net/reader033/viewer/2022051604/6005bf5a2f1369077f190d70/html5/thumbnails/6.jpg)
Bit errors impact on TCP
outer2# show ip ospf database
OSPF Router with ID (10.100.0.3)
![Page 7: Investigating Linux Network Behaviour Using Open-Source ... · outer2# show ip ospf database OSPF Router with ID (10.100.0.3) Routing failure Router2# show ip ospf database OSPF Router](https://reader033.fdocuments.net/reader033/viewer/2022051604/6005bf5a2f1369077f190d70/html5/thumbnails/7.jpg)
Routing failureRouter2# show ip ospf database
OSPF Router with ID (10.100.0.3)
Router Link States (Area 0.0.0.0)
Link ID ADV Router Age Seq# CkSum Link count10.100.0.1 10.100.0.1 206 0x8000000e 0xea43 510.100.0.2 10.100.0.2 811 0x8000000a 0x8fc8 410.100.0.3 10.100.0.3 815 0x80000009 0xf260 410.100.0.6 10.100.0.6 679 0x80000009 0xf234 410.100.0.7 10.100.0.7 680 0x80000009 0x83a4 410.100.0.9 10.100.0.9 717 0x8000000a 0xfb05 410.100.0.10 10.100.0.10 697 0x80000007 0x1533 3
Router2# show ip ospf database
OSPF Router with ID (10.100.0.3)
Router Link States (Area 0.0.0.0)
Link ID ADV Router Age Seq# CkSum Link count10.100.0.1 10.100.0.1 1026 0x80000010 0xe645 510.100.0.2 10.100.0.2 1596 0x8000000c 0x8bca 410.100.0.3 10.100.0.3 1547 0x8000000b 0xee62 4
Before
After
![Page 8: Investigating Linux Network Behaviour Using Open-Source ... · outer2# show ip ospf database OSPF Router with ID (10.100.0.3) Routing failure Router2# show ip ospf database OSPF Router](https://reader033.fdocuments.net/reader033/viewer/2022051604/6005bf5a2f1369077f190d70/html5/thumbnails/8.jpg)
Routing Failure
![Page 9: Investigating Linux Network Behaviour Using Open-Source ... · outer2# show ip ospf database OSPF Router with ID (10.100.0.3) Routing failure Router2# show ip ospf database OSPF Router](https://reader033.fdocuments.net/reader033/viewer/2022051604/6005bf5a2f1369077f190d70/html5/thumbnails/9.jpg)
CORE
Network namespaces
Linux bridge
Python
XML
![Page 10: Investigating Linux Network Behaviour Using Open-Source ... · outer2# show ip ospf database OSPF Router with ID (10.100.0.3) Routing failure Router2# show ip ospf database OSPF Router](https://reader033.fdocuments.net/reader033/viewer/2022051604/6005bf5a2f1369077f190d70/html5/thumbnails/10.jpg)
IMUNES
Docker containers
OVS
Python
XML
![Page 11: Investigating Linux Network Behaviour Using Open-Source ... · outer2# show ip ospf database OSPF Router with ID (10.100.0.3) Routing failure Router2# show ip ospf database OSPF Router](https://reader033.fdocuments.net/reader033/viewer/2022051604/6005bf5a2f1369077f190d70/html5/thumbnails/11.jpg)
Cloonix
KVM VMs
cloonix switch
Shell scripts
![Page 12: Investigating Linux Network Behaviour Using Open-Source ... · outer2# show ip ospf database OSPF Router with ID (10.100.0.3) Routing failure Router2# show ip ospf database OSPF Router](https://reader033.fdocuments.net/reader033/viewer/2022051604/6005bf5a2f1369077f190d70/html5/thumbnails/12.jpg)
Mininet
Network namespaces
OVS
Python
XML
![Page 13: Investigating Linux Network Behaviour Using Open-Source ... · outer2# show ip ospf database OSPF Router with ID (10.100.0.3) Routing failure Router2# show ip ospf database OSPF Router](https://reader033.fdocuments.net/reader033/viewer/2022051604/6005bf5a2f1369077f190d70/html5/thumbnails/13.jpg)
Mininet WiFi
WiFi driver
Network namespaces
OVS
Python
XML
![Page 14: Investigating Linux Network Behaviour Using Open-Source ... · outer2# show ip ospf database OSPF Router with ID (10.100.0.3) Routing failure Router2# show ip ospf database OSPF Router](https://reader033.fdocuments.net/reader033/viewer/2022051604/6005bf5a2f1369077f190d70/html5/thumbnails/14.jpg)
VNX and NetKit
● Both based on CLI user interface● VNX supports KVM and LXC● NetKit supports UML● Each has unique network description language● Each offers many pre-packaged network
emulation scenarios● Created for University-level networking courses
![Page 15: Investigating Linux Network Behaviour Using Open-Source ... · outer2# show ip ospf database OSPF Router with ID (10.100.0.3) Routing failure Router2# show ip ospf database OSPF Router](https://reader033.fdocuments.net/reader033/viewer/2022051604/6005bf5a2f1369077f190d70/html5/thumbnails/15.jpg)
GNS3
QEMUVirtualBoxVMware
Dynamips switching
Becoming more “Linux friendly” with new development
![Page 16: Investigating Linux Network Behaviour Using Open-Source ... · outer2# show ip ospf database OSPF Router with ID (10.100.0.3) Routing failure Router2# show ip ospf database OSPF Router](https://reader033.fdocuments.net/reader033/viewer/2022051604/6005bf5a2f1369077f190d70/html5/thumbnails/16.jpg)
EVE (UNetLab)
QEMU/KVM
custom switch
Linux-friendly
![Page 17: Investigating Linux Network Behaviour Using Open-Source ... · outer2# show ip ospf database OSPF Router with ID (10.100.0.3) Routing failure Router2# show ip ospf database OSPF Router](https://reader033.fdocuments.net/reader033/viewer/2022051604/6005bf5a2f1369077f190d70/html5/thumbnails/17.jpg)
Links
● CORE https://github.com/coreemu/core
● IMUNES https://github.com/imunes/imunes
● Cloonix http://virtual-network-kvm.net/
● Mininet http://mininet.org/
● Mininet-WiFi http://www.ramonfontes.com/mininet-wifi/
● VNX http://www.dit.upm.es/vnx
● Netkit http://wiki.netkit.org
● GNS3 https://www.gns3.com/
● EVE http://www.eve-ng.net/
![Page 18: Investigating Linux Network Behaviour Using Open-Source ... · outer2# show ip ospf database OSPF Router with ID (10.100.0.3) Routing failure Router2# show ip ospf database OSPF Router](https://reader033.fdocuments.net/reader033/viewer/2022051604/6005bf5a2f1369077f190d70/html5/thumbnails/18.jpg)
Other network emulators
● OFNet http://sdninsights.org/
● Shadow https://shadow.github.io/
● Marionnet http://www.marionnet.org/site/index.php/en/
● NetMirage https://crysp.uwaterloo.ca/software/netmirage/
● YANS https://github.com/kennethjiang/YANS