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.

Shadow Computing

Ich habe mir im anfang November einen Shadow Account für ein Jahr angelegt um für mich zu evaluieren, ob „Cloud Computing“ nun auch im Endusermarkt „sinnvoll“ angekommen ist. Anbieter wie Drpoobox bieten zwar schon lange ihre Dienstleistungen an, werden aber von den meisten Endusern nicht als Cloud wahrgenommen.

Meine Motivation hierfpr war, dass ich den einzigen Computer mit „aktueller“ GPU als Server im Keller stehen habe und ausschließlich für Testing verwende. Zudem fehlt mir der bedarf an einem Standgerät, da ich auf grund verschiedener Nutzungsorte dann gleich mehrere benötigen würde. Ein Laptop in der Leistungsklasse fällt ebenfalls aus, da ich sehr viel Wert auf Akkulaufzeit bei Produktivanwendungen lege – halt normaler Office Kram.

Nun also eine vollständuge Windows VM mit Lizenz zu einem, aus meiner Sicht, Preis der für Gelegenheitsuser vollkommen in ordnung ist, zumal die GPU Dediziert zugewiesen wird und somit fast vollständig für den User zur Verfügung steht. In etwa 3-8%, je nachdem ob reiner Desktop oder Gaming Betrieb gehen jedoch für das Encoding des Videostreams zum User drauf.

Was mir sofort aufgefallen ist, dass im Officebetrieb mit meinen typischen Endgeräten keine Probleme auftreten. (W520 & x201) Sobald es aber um 1920p Spieledecodung & Downsaming geht, wird es echt hakelig.
Bei genauerer Betrachtung zeigt sich, dass die Leistung der GPU in den Clients einfach an Ihre grenzen stößt, da der Client das an die Video Engine auslagert und der eingedliche GPU Core sich meistens im Idle befindet (W520) oder bei 70% hängt (x201).
Dies führt z.B. zu so „lustigen“ Effekten, wie das z.B. bei Hitman ich Klicke, den Schuss höre, jedoch das Bild bis zu 2sec später kommt, da von der GPU massiv Frames gedroppt werden
Als gegentest habe ich dann Board mit i3-2100 & ATI HD 6670/5770 getestet, womit es dann eiwandfrei lief. Allerding ist mir der Stromverbrauch von diesem Setup mit über 70 Watt für einen quasi Thinclient dann auch wieder zuviel.

Lösungsansatz war dann den Steam Link der ja als Streaminclient ausgelegt ist als Userdevice zu missbrauchen. Allerdings musste ich hierbei mehrere Lösungen für verschiedene hürden finden.
1. Die Shadow VM bekommt eine Interne IP und z.B. Portforwarding ist nicht vorgesehen.
2. Shadow rät dringend von der Nutzung von VPN auf der VM ab
3. Der Einsatz von Admintools wie Nmap sind Organisatorisch untersagt
4. VM ist aber nicht reguliert, somit ist die Installation trozudem möglich
Somit war die erste überlegung TAP Treiber für OpenVPN zu werfen und dann jeweils einen Tunnel zu den einzelnen Standorten die ich anbinden will aufzusetzen.
Umsetzung – Client Installieren, Serverconfig erstellen, Zugriff von Netz auf Client zulassen, Server sagen, dass er dem Client immer die selbe IP geben soll, Config in Client werfen (jaja, ber webmail an mich selbst…), Tunnel aufmachen.
Als Letztes dem Steam Link die IP der Shadow VM mitteilen und los gehts.

Ergebnis: Steam übernimmt das Grabbing, Decodung und den Transport über VPN. Im Client ist eingestellt das Steam nicht im Big Picture Mode Starten soll & direkt zum Desktop gehen soll.

Hiermit ist dann ein vollständig normales Arbeiten möglich, wenn auch nur auf einem Monitor. In Zukunft wird es auch einen eigenen Shadow Client namens Ghost geben. Bleibt zu hoffen, dass dieser Dual Monitor fähig ist, bzw. zwei Anschlüsse besitzt um das Feature im Zweifel nachträglich reinzupatchen.

Praxistest auf einer Verantstaltung… Auf der Techweek Frankfurt funktionierte es, nachdem ich eine Static IP bekommen hatte, ebenso auf dem 35c3.
Dort sogar über WLAN, leider nicht überall wegen den vielen rogue AP’s in gewissen bereichen. Ansonsten geht genügend stabile!!! nutzbare Bandbreite durch um es sinnvoll zu nutzen.

Steam „inhome“ Streaming

Manchmal finde ich da neben der Arbeit doch noch Zeit zum Basteln.
Dabei war letztes Jahr um Steam Sale das Steam Link für ca. 3€ + Versand im Angebot – sonst kostet es über 50€.
Aber innerhalb des Hauses Streamen? Naja wer’s mag. Ist bestimmt interessant, wenn man es im Wohnzimmer hat oder nur einen Bildschirm braucht.
Aber für mich, mit mehr als nur einer Nuklearen Rechneranlage und zwar nicht nur im Keller, macht das wenig Sinn.
Wer keine Kabel siehen kann oder Bohren darf, kommt damit bestimmt klar, also mit Powerline & co.

Da Standard ja langweilig ist hier die eigendliche Headline:
Wie kommt der Hitman von Kassel nach Frankfurt?

A-Ende:
DTAG VDSL 100/40 MBit/s | eigenbau Router | VPN Gateway
Intel E3-1231v3 | 32G ECC | GTX 1060 6G | 10G uplink (dafür unerheblich aber egal)

B-Ende:
UM Office Internet 150/10 MBit/s (ich brauch halt v4) | eigenbau Router | VPN Gateway
Steam Link

Und hier das Ergebnis:

AVM Repeater 300E mit externen Antennen

Ich hatte am Wochenende mal wieder lust an etwas herumzuschrauben, dabei ist mir mein AVM 300E aufgefallen, dass der nur ein bzw. zwei Balken Signalstärke anzeigt. Also aufgeschraubt und nachgesehen, was da noch so geht uns siehe da, zwei IPX Pigtail Anschlüsse. Da ich von meinem TL-WR1043ND, bei dem ich dem ich drei TL-ANT2408CL angeschraubt habe, noch die drei Serienantennen übrig hatte habe ich mal nach „IPX Pigtail Adapter auf RP-SMA“ gesucht. Im Prinzip muss man mit einer Zange nur zwei Schlitze in das Gehäuse klipsen und schon kann man die RP-SMA Anschlüsse befestigen. Dannach nur noch die Antennen dranschrauben und schon geht es besser, alternativ auch gern eine TL-ANT2424B als Uplink.
Mit den „neuen“ Antennen komme ich nun auf mindestens drei Balken.

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 😀