EdgeRouter Testing VPN & OSPF

Vielleicht hat es der ein oder andere bereits mitbekommen, ich halte mich gern unnötig lange mit einzelnen Themen auf.
Ich hätte auch gleich anders lösen können, aber ich wollte das es so fuktioniert wie in den Tutorials beschrieben. (IPSec | OSPF)
Kurz um, es geht um UBNT EdgeRouter und VPN/IPSec + OSPF.
Ich wollte von meiner Firewall im Lab OSPF -> Onside ER -> IPSec -> Home ER -> Wifi ER, aber ich dass mich irgendeine Inompatibilität oder so gebissen hätte… nein, es war natürlich wieder IPSec – es ist schnell, aber ich hasse es bis es erstmal läuft.
Es ist auch erstmal alles nicht so schlimm, solange kein NAT/Port Forwarding und nur Public IP’s im Spiel sind.
Im großen und ganzen dachte ich mir so, „alles Anzünden & was mit Garten / Holzhütten machen“.
Symbolisch @DO9XE bei der Frage wie das denn mit dem WLAN auf der GPN18 war…
Da es absolut nich wollte, habe ich dann einen 1:1 Nachbau des Tutorial Setups bei mir auf dem Tisch hingestellt (von oben):
1. ER-R
2. ER-L
3. „Internetwolke“
4. Weiterer OSPF Router
5. Switch zum Lab

Config ER-R
VPN
configure
set vpn ipsec auto-firewall-nat-exclude enable
set vpn ipsec ike-group FOO0 lifetime 28800
set vpn ipsec ike-group FOO0 proposal 1 dh-group 14
set vpn ipsec ike-group FOO0 proposal 1 encryption aes128
set vpn ipsec ike-group FOO0 proposal 1 hash sha1
set vpn ipsec esp-group FOO0 lifetime 3600
set vpn ipsec esp-group FOO0 pfs enable
set vpn ipsec esp-group FOO0 proposal 1 encryption aes128
set vpn ipsec esp-group FOO0 proposal 1 hash sha1
set vpn ipsec site-to-site peer 203.0.113.1 authentication mode pre-shared-secret
set vpn ipsec site-to-site peer 203.0.113.1 authentication pre-shared-secret 1234
set vpn ipsec site-to-site peer 203.0.113.1 description ipsec
set vpn ipsec site-to-site peer 203.0.113.1 local-address 192.0.2.1
set vpn ipsec site-to-site peer 203.0.113.1 ike-group FOO0
set vpn ipsec site-to-site peer 203.0.113.1 vti bind vti0
set vpn ipsec site-to-site peer 203.0.113.1 vti esp-group FOO0
set interfaces vti vti0 address 10.255.12.2/30
set protocols static interface-route 192.168.1.0/24 next-hop-interface vti0
commit ; save

OSPF
configure
set interfaces vti vti0 ip ospf network point-to-point
set protocols ospf parameters router-id 172.16.1.1
set protocols ospf area 0.0.0.0 network 10.255.12.0/30
set protocols ospf area 0.0.0.0 network 172.16.1.0/24
commit ; save

Config ER-L
VPN
configure
set vpn ipsec auto-firewall-nat-exclude enable
set vpn ipsec ike-group FOO0 lifetime 28800
set vpn ipsec ike-group FOO0 proposal 1 dh-group 14
set vpn ipsec ike-group FOO0 proposal 1 encryption aes128
set vpn ipsec ike-group FOO0 proposal 1 hash sha1
set vpn ipsec esp-group FOO0 lifetime 3600
set vpn ipsec esp-group FOO0 pfs enable
set vpn ipsec esp-group FOO0 proposal 1 encryption aes128
set vpn ipsec esp-group FOO0 proposal 1 hash sha1
set vpn ipsec site-to-site peer 192.0.2.1 authentication mode pre-shared-secret
set vpn ipsec site-to-site peer 192.0.2.1 authentication pre-shared-secret 1234
set vpn ipsec site-to-site peer 192.0.2.1 description ipsec
set vpn ipsec site-to-site peer 192.0.2.1 local-address 203.0.113.1
set vpn ipsec site-to-site peer 192.0.2.1 ike-group FOO0
set vpn ipsec site-to-site peer 192.0.2.1 vti bind vti0
set vpn ipsec site-to-site peer 192.0.2.1 vti esp-group FOO0
set interfaces vti vti0 address 10.255.12.1/30
set protocols static interface-route 172.16.1.0/24 next-hop-interface vti0
commit ; save

OSPF
configure
set interfaces vti vti0 ip ospf network point-to-point
set protocols ospf parameters router-id 192.168.1.1
set protocols ospf area 0.0.0.0 network 10.255.12.0/30
set protocols ospf area 0.0.0.0 network 192.168.1.0/24
commit ; save

Config „Internetwolke“

Schlussendlich hat wer 1:1 Aufbau auch funktioniert und die Performance mit Offloading ware auch ok.

Aber trozudem ließ es sich nicht in Prodution so umsetzen, da warum auch immer, IPSec bei mir zuhause einfach nicht will.
Daher habe ich mir dann kurzerhand die Anleitung geschnappt und das einfach nochmal mit OpenVPN ausprobiert.
Ergebnis… geht, nicht schnell, aber geht und zwar Stabil und mit nur einem Public Port.
Falls jemand Ahnung hat, wie ich Tinc 1.1 auf den EdgeRouter bekomme, bitte gerne.
https://twitter.com/nerdheimeu/status/1149346879332913152

nach 10GBE geht doch noch was… ODER???

Dieses mal gibt es etwas aus dem Bereich (Achtung Buzzword Bingo Bullshit!!!) „high“ Performance Networking.
Ich hatte im Rahmen einer Teststellung die Gelegenheit zwei Mellanox ConnectX-4LX 40GbE (CX4131A bzw. MCX4131A-BCAT) mit einem 3m QSFP+ (MC2210128-003) testen zu können.
Sofort Karten auspacken, in meine Testmaschine werfen und nix geht. ESXi 5.5 zeigt mir zwar die Karte an, aber nicht als Netzwerkkarte. Zweites Image mit ESXi 6.0 gestarten und… das gleiche Bild.
Ok dann halt im Passthrough Modus. Dabei zeigen sich folgende Verhaltensweisen:
Windows Server 2008 R2
Ähm… nöööö, da ging garnichts, zumindestens nicht automatisch. Nachdem ich den Treiber gefunden hatte, ging es gut. Doch wozu brauch ich 40G unter Windows in einer VM? ATTO Benchmarks auf SAN abfeuern, welches bereits wegen des Dell H310/M1015 bereits bei 600MBit/s aufgibt. Nee danke.
VMWare ESXi
Da ich kein VCenter habe und keine Lust darauf habe ein custom Image nur für diesen Test zu bauen, kann ich außer der Einleitung nichts dazu sagen.
*Ubuntu 16.04.2/Debian 8
gestartet, erkannt und funktionierte
Daher habe ich auch die weiteren Tests mit 16.04.2 gemacht.
Treiber
Lagen nicht bei, hab ich nach etwas suchen dann doch direkt beim Hersteller gefunden:
Link zum Mellanox Treiber
Benchmarks
Die waren mit einigen Hindernissen verbunden. Zuerst hatte ich als B-Ende einen Core2Quad Q8200 genutzt.
Der kam mit etwas Optimierung nur auf 17,9 GBit/s, zudem waren alle vier Kerne auf anschlag 100%.

Als nächstes habe ich dann den i3-2100 zum Testen herangezogen, welcher auch direkt ein besseres Bild zeigte (19,4GBit/s):

Diesmal war es aber iperf3, welches sich als Flaschenhals zeigte. iperf brachte da ein doch besseres Ergebnis (25,5-26,0GBit/s):

Ich merke jedoch, dass solche Hardware eindeutig für PCI Express 3.0 ausgelegt ist und ich einfach an die Limits von PCIe 2.0/2.1 stoße. Bei 10GBE ist das nämlich kein Problem.
Fazit
Mit einem „Marktpreis“ von ca. 500€ – nur Karte – ohne Kabel oder QSFP+ Modul – könnte 40GBE jetzt auch bei einem breiteren Publikum ankommen. Mir zeigte es vor allem, dass nach Dualport 10GBE nur 40GBE bzw. dual 40GBE kommen kann, PCIe 3.0 oder besser vorrausgesetzt.
Im Zusammenhang mit einem Mellanox 40GBE 12 Port Switch (MSX1012B-2BFS) geht da bereits einiges, vor allem wenn man nur noch zwei Ports braucht, um einen Nutanix/Supermicro Server mit vier Nodes á zweimal 10GBE SFP+ mit einem Kabel anzuschließen. Zudem können zwei dieser Switches auf einer Höheneinheit montiert werden.
Bei sowas kann ich mir gut vorstellen diese beiden untereinander zu verbinden und mit dem Management Switch anzubinden, dass ganze dann per 40GBE Redundant auf LWL (SMF) in Richtung Core Switch zu schicken. (Außer man macht es so wie ich aktuell und geht mit zwei QSFP+ auf SFP+ auf RJ-45 um den Management Switch anzubinden 😛 )
Schöne neue Welt 😀

IPFire Raspberry Pi Benschmark

Ich wollte herausfinden, was für Hardware für einen 10MBit/s Internetuplink benötigt wird. Die Vorgabe war:
– Firewall Durchsatz ausreichend für die 10 MBit/s Leitung
– (Open-) VPN mit mindestens 1 MBit/s
– unter 100€
– muss auf die gleiche Höheneinheit passen, wie der Switch (dahinter)
Die erste Idee war, einfach einen alten Server zu nehmen, was aber durch die den Switch nicht möglich war. Also musste es kleiner werden. Nächste Idee war ein PC Engines APU.1D4 zu nehmen, ist aber zu teuer. Blieb nur ein Raspberry Pi 1 B zur Auswahl.
IPFire auf die SD-Karte, USB-LAN dran und losgetestet.
Das Ergebnis sah wie folgt aus:
– Firewall Durchsatz 27,8 MBit/s bei 10 Streams
– OpenVPN Durchsatz 2,9 MBit/s bei 1024 Bit Cert, SHA2 512 und 10 Streams
routing-durchsatz
openvpn-1k-key-sha2-512