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.