RoutingDays: Wie wurde das Netzwerk in den Lab's simuliert?

Hallo RoutingDays-Orga,
hallo Forum,

ich war am Wochenende bei den RoutingDays in Herne. Als erstes möchte ich meinen Dank aussprechen, dass ihr so eine Veranstaltung mit offensichtlich viel persönlichem Einsatz auf die Beine gestellt habt! Ich fand es sehr interessant und würde gerne wieder kommen, falls ihr so etwas ähnliches noch einmal anbietet.

Jetzt aber zu meinem eigentlichen Anliegen. Ich würde gerne die Lab Sessions teilweise bei mir zuhause nachstellen, da ich es leider nicht geschafft habe alle Aufgaben zu lösen. Leider gibt mein LAN nicht viel Routingmöglichkeiten her. :wink:
Es wurde gesagt das die Router alle als VM’s liefen. Habt ihr zur Simulation des Netzwerkes Software wie ‚Cloonix‘ oder ‚CORE‘ benutzt? Oder kann man die VM’s mit Bordmitteln so konfigurieren das sie sich wie in den Lab’s verhalten?

Vielen Dank
Martin

2 Likes

Müsste eigentlich reichen 4 VMs aufzusetzen, sie mit jeweils 2 bzw. 3 Netzwerkinterfaces auszurüsten und entsprechend IP-Adressen zu vergeben. Man muss halt nur drauf achten verschiedene Netzwerke an den einzelnen Interfaces zu nutzen, damit die Router nicht direkt miteinander verbunden sind sondern teils nur über Umwege wie das bei den Routingdays der Fall war.

Aber das müsste sich eigentlich mit jeder gängigen Virtualisierungslösung machen lassen.

Von der Virtualisierungslösung her müsste schon KVM mit dem Virt-Manager reichen. Zumindest für vier VMs für dich zum Testen, braucht man da nicht viel Hokuspokus. Wenn man, wie dort in Herne, 4x24 VMs hat, sieht die Sache natürlich wieder anders aus.

Grüße
Matthias

Ich stimme mal mit Team Backbone ab in welcher Form wir die VM’s oder die Config zur Verfügung stellen können.

Das wäre super! Danke.

Hallo zusammen,

wie bereits erwähnt wurde, wurden die Labs mittels Qemu/KVM und Debian Jessie umgesetzt.
Wir haben dabei libvirt außen vor gelassen, da das ganze ohne libvirt einfacher zu automatisieren war.

Ein Configgenerator nimmt als Parameter die Menge der Lab-Netze an und generiert sowas:

/usr/bin/qemu-system-x86_64 -enable-kvm -name router_0_1 -m 512 -hda /dev/debian-vg/vm000 -device e1000,netdev=mgmt01,mac=00:bb:ff:ee:00:01 -netdev tap,id=mgmt01,ifname=mgmt01 -nographic -device e1000,mac=00:aa:ff:ee:00:00,netdev=lab-net-0.1 -netdev socket,id=lab-net-0.1,udp=127.0.0.1:2002,localaddr=127.0.0.1:2001 -device e1000,mac=00:aa:ff:ee:00:01,netdev=lab-net-0.4 -netdev socket,id=lab-net-0.4,udp=127.0.0.1:2007,localaddr=127.0.0.1:2008 -device e1000,netdev=ispa01,mac=00:cc:ff:ee:00:01 -netdev tap,id=ispa01,ifname=ispa01 &
sleep 1
/usr/bin/qemu-system-x86_64 -enable-kvm -name router_0_2 -m 512 -hda /dev/debian-vg/vm001 -device e1000,netdev=mgmt02,mac=00:bb:ff:ee:00:02 -netdev tap,id=mgmt02,ifname=mgmt02 -nographic -device e1000,mac=00:aa:ff:ee:00:00,netdev=lab-net-0.1 -netdev socket,id=lab-net-0.1,udp=127.0.0.1:2001,localaddr=127.0.0.1:2002 -device e1000,mac=00:aa:ff:ee:00:01,netdev=lab-net-0.2 -netdev socket,id=lab-net-0.2,udp=127.0.0.1:2004,localaddr=127.0.0.1:2003 -device e1000,netdev=ispb02,mac=00:cc:ff:ee:00:02 -netdev tap,id=ispb02,ifname=ispb02 &
sleep 1
/usr/bin/qemu-system-x86_64 -enable-kvm -name router_0_3 -m 512 -hda /dev/debian-vg/vm002 -device e1000,netdev=mgmt03,mac=00:bb:ff:ee:00:03 -netdev tap,id=mgmt03,ifname=mgmt03 -nographic -device e1000,mac=00:aa:ff:ee:00:00,netdev=lab-net-0.3 -netdev socket,id=lab-net-0.3,udp=127.0.0.1:2006,localaddr=127.0.0.1:2005 -device e1000,mac=00:aa:ff:ee:00:01,netdev=lab-net-0.2 -netdev socket,id=lab-net-0.2,udp=127.0.0.1:2003,localaddr=127.0.0.1:2004 &
sleep 1
/usr/bin/qemu-system-x86_64 -enable-kvm -name router_0_4 -m 512 -hda /dev/debian-vg/vm003 -device e1000,netdev=mgmt04,mac=00:bb:ff:ee:00:04 -netdev tap,id=mgmt04,ifname=mgmt04 -nographic -device e1000,mac=00:aa:ff:ee:00:00,netdev=lab-net-0.3 -netdev socket,id=lab-net-0.3,udp=127.0.0.1:2005,localaddr=127.0.0.1:2006 -device e1000,mac=00:aa:ff:ee:00:01,netdev=lab-net-0.4 -netdev socket,id=lab-net-0.4,udp=127.0.0.1:2008,localaddr=127.0.0.1:2007 &
sleep 1

Die sleep Anweisung ist dort, da wir ohne selbige im Startskript in eine Racecondition gelaufen sind und nach ca. 30VMs das Starten einer weiteren fehlschlug. Das viel uns natürlich erst am Samstag auf…

Die Festplatten waren als LVM logical volumes umgesetzt. Diese erlauben schnelles und Ressourcen schonendes clonen der Platten.

Die erste, und ggf. vierte Netzwerkkarte des Gastes sind im Host als mgmtXX bzw isp[ab]XX zugänglich. Im Host System wurden alle mgmtXX Interfaces in eine Bridge gehangen und die Bridge mit einer IPv6-Adresse versehen, sodass der Zugriff von außen über SSH möglich war. Die ISP interfaces wurden mit entsprechenden Bridges zu den beiden virtuellen Upstream ISPs verbunden.

Falls ihr euch nicht mehr genau an die Topologie erinnert: RTR1:eth1 <> RTR2:eth1, RTR2:eth2 <> RTR3:eth2, RTR3:eth1 <> RTR4:eth1, RTR4:eth2 <> RTR1:eth2. eth0 = Management, RTR1:eth3 = ISP-A, RTR2:eth3 = ISP-B

VG
takt

4 Likes