WireGuard als zukünftige VPN-Lösung?

@CyrusFox wireguard ist erstmal nen l3 tunnel … was man da dann mit macht - mal sehen, wir wollten probieren ob man damit fastd ersetzen kann, dazu braucht man on top l2tpv3 und dann wie bei fastd auch batman. Wenn man das netz so behalten will wie es ist.

Das wäre natürlich eine Möglichkeit, aber sinn machen tut das nicht. Da dann eher darauf hin arbeiten das Wireguard auch Layer2 Tunnel unterstützt. Tunnel in Tunneln ist generell keine gute Idee da man später mit einer MTU unter 1300 arbeiten muss da heute oft DS-Lite verwendet wird. Für Unitymedia nutzen wir schon eine MTU von 1364, davon 32 Bytes abgezogen für den Batman Header und man landet bei 1332.

IPv6 braucht mindestens 1280 Bytes, kleiner als das sollte man also nicht gehen. Wenn man Gretap im Wireguard Tunnel verwendet würde es gerade noch so passen mit 14 Bytes übrig. Mit L2TPv3 via UDP klappt es nicht ohne das aller IPv6 Traffic fragmentiert.

Hier mal eine kleine Übersicht:

Gretap:
20 bytes (IP-Header)
4 bytes (GRE-Header)
14 bytes (Ethernet header)
Gesamt: 38 bytes

L2TPv3 via UDP:
20 bytes (IP header)
8 bytes (UDP header)
4 bytes (L2TPv3 Session ID)
4 bytes (L2TPv3 Cookie)
4 bytes (L2TPv3 Pseudowire CE)
14 bytes (Ethernet)
Gesamt: 54 bytes

L2TPv3 via IP:
20 bytes (IP header)
4 bytes (L2TPv3 Session ID)
4 bytes (L2TPv3 Cookie)
4 bytes (L2TPv3 Pseudowire CE)
14 bytes (Ethernet)
Gesamt: 46 bytes

2 „Gefällt mir“

Du hast das doch selbst geschrieben im von @adorfer verlinkten Github-Issue:

es gibt neues zu berichten, unter anderem testet jason (wireguard dev) das nun selbst an einem 841 und wir sind einige weitere Schritte gekommen mit den MIPS oom Problemen, und bekommen im Moment blanko 40 Mbit mit wireguard durch die leitung.

@rubo77 kam auf das „ohne encryption“ vermutlich, weil man die bei fastd ja deaktivieren kann und man im Kontext von fastd wesentlich geringere Geschwindigkeiten bei aktivierter Verschlüsselung im Hinterkopf hat. Du schreibst dann, was Wireguard ist, aber nicht, ob der Test nun mit Verschlüsselung durchgeführt wurde oder ohne (ob man die bei Wireguard überhaupt deaktivieren kann, weiß man als jemand, der nicht in der Materie drin steckt, erst einmal nicht).
Vor dem Hintergrund ist mir nicht direkt klar gewesen, was du mit deinem

blanko 40 Mbit

ausdrücken wolltest.

Anstatt das kurz für jeden klarzustellen, kommst du in dem gleichen ruppigen Tonfall daher, mit dem du auch schon im verlinkten Github-Issue angeeckt bist und der Leser ist nach der Lektüre deines Beitrags genauso schlau wie vorher. Für sonderlich zielführend halte ich das nicht.

1 „Gefällt mir“

@handle ich weis ja nicht, will niemandem auf die Füße dappen - allerdings find ich komisch das dir nichtmal klar zu sein scheint was wireguard überhaupt ist. hier mal erster Satz wireguard.io Seite WireGuard is an extremely simple yet fast and modern VPN that utilizes state-of-the-art cryptography - meine Kritik geht dahin das du scheinbar nicht gelesen hast was geschrieben wurde und dann glaubst/vermutest/whatever. Das du dir ein themenfremdes Anecken aus dem github-issue hier zu eigen machst um dein Argument zu stützen gibt dir auch nicht mehr recht. (dort ging um „Mißverständnisse“ welcher Durchsatz auf welchen Geräten erreicht werden kann mit der damaligen Version - unaligned Memmory, Mips32c)
Wie gesagt, ausser zu sagen mach deine Hausaufgaben - will ich niemanden auf die Füße dappen.
edit Das mein letzter nicht inhaltlicher comment dazu

1 „Gefällt mir“

Ich schließe daraus nun einfach mal, dass man bei wireguard die Verschlüsselung gar nicht deaktivieren kann.

Wenn das richtig ist, dann: WoW!!! Will haben!!! :joy:

@fuzzle ich weiß nicht, warum du dich scheinbar schwer damit tust, thematisch weiterführend auf die Beiträge einzugehen und abermals das Äquivalent von „RTFM“ herunterbetest. Würde dir ein Zacken aus der Krone brechen, wenn du inhaltlich auf @rubo77 oder meinen Beitrag eingehst? Was WireGuard ist hat in groben Zügen hier glaube ich jeder verstanden. Hier ging es aber um eine kleine Detailfrage, die du mit ein paar Worten hättest beantworten können, was du aber immer noch nicht getan hast.

Mit deiner Art tust du aber genau das.

für inhaltliches und zum selbertesten … gestern kam ein neues Tag
https://git.zx2c4.com/WireGuard/tag/?h=experimental-0.0.20161116
den kann man ähnlich einbauen wie hier - dort ist noch 1110
https://github.com/openwrt/packages/blob/master/net/wireguard/Makefile
(Mensch kann auch den Patch zu dem PR auf 1116 mit in aktuelle Openwrt einbauen und dann wireguard (und l2tpv3 und batman-adv) über make menuconfig mit reinladen)

vermutlich ist die Diskussion um Geschwindigkeit etc. eh besser hier aufgehoben, dort sind auch scripte um mit 2 laptops/computern und 2 routern wie dem 841 und iperf eigene Tests zu machen.

edit: @Mitsch wir testen nur auf 841 , da das eh auf diesen schwachen kisten laufen können muss - das ist auch gut so, so sind Fehler die andere mit den 1043 nichts hatten überhaupt erst aufgefallen (siehe Mips 74k 32k ) - evtl machen wir noch 940 und 842 - wenn du das machen willst bin ich sehr auf deine Zahlen gespannt.
edit: @Handle … blanko geht durch das kabel etwa 93Mbit mit reinem Routing (was nix mit wireguard zu tun hat). Mit Wireguard scheints 40 aktuell - wireguard kann nur 1 Art von Crypto die is ähnlich zu chachapoly1305 in fastd und ist nicht optional.

1 „Gefällt mir“

Testet Ihr das mal noch mit z.B. einem dicken 1043 v2?
Würde mich wirklich interessieren, was dabei rum kommt…
Hab jetzt schon Angst, dass die 50MBit/s VDSL bald mit Freifunk gefüllt werden könnten… :blush:

1 „Gefällt mir“

Gute Neuigkeiten …

  1. es gibt im Gluon einen holprigen aber brauchbaren branch Namens LEDE - der ist hochgradig experimentell , aber funktioniert - man kann daraus also sein Gluon bauen (Achtung - target ist dann ar71xx-tiny nicht generic) - damit bekomme ich lauffähiges meshendes „normal“ Freifunk
  2. ich kann das aber ohne fastd bauen (mesh-vpn pakete) und gleich mit wireguard und kmod-gre und kmod-gre6 … das passt soweit auch auf einen 841er (und entspricht unwesentlich mehr als fastd-mesh paket und config) . dann sollte ich einen wireguard tunnel bauen können, darin einen gretap tunnel und darauf dann batman. Die Pakete hab ich so gebaut bekommen, muss dass nur die Tage testen.
  3. ich hab noch das Makefile von wireguard so angepasst, das es wirklich die letzte Version baut 161116.1.

war ziemlch straight forward.
ick freu mich , und neoraider und andere bestimmt auch , wenn Gluon-LEDE viele Menschen mal anfassen … also das LEDE branch bauen - unabhängig davon ob man da was mit wireguard reinbastelt. Damit bekommt man dann 4.4 Kernel- und erster probelauf war deutlich weniger RAM verbrauch - (nach 2 Stunden laufen … 60% im vgl zu 80%++)

7 „Gefällt mir“

ar71xx-tiny sind ar71xx-generic devices, die nur 4 MB Flash besitzen, soweit ich das auf den ersten Blick sehe. Je nach Modell möchte man also immernoch ar71xx-generic zum basteln bauen.

korrekt, nur das ich immernoch den fokus lege auf die 4 mb, mehr is schön, aber da will ich das zum laufen bringen, selbst wenn es minimal ist. wir haben 250++ 841 Router in unserem Netz, auch wenn es so aussieht das wir nun auf 842 mit 8 mb und 940 (wobei der auch meist 4mb hat) umsteigen.

gerade kam eine Email (neben der ganzen Diskussion im Vorfeld)
in den letzten Wochen ist viel passiert zu Wireguard:
[ANNOUNCE] Snapshot 0.0.20161216 Available

With the recent changes to add alignment in the headers, I now get 60
megabits per second on a super crappy TL-WR841N board (QCA9533)
transmitting over the internet. This is awesome performance – a good
milestone for little CPUs.

awesome, würd gern auf dem 33c3 mal ein paar Stunden dazu brainstormen, und gerne selber etwas zu den neueren babel Mesh Protokoll lernen, und mich über fastd/wireguard Erfahrungen austauschen.

3 „Gefällt mir“

Wow, 60mbit/s auf 'nem 841 sicher verschlüsselt, damit wäre das Thema Tunnel/VPN durchgespielt.

Ich nutze WG bisher nur für statische Tunnel und es tut richtig geil. Vermutlich fehlt für Freifunk ein Management-Protokoll zum dynamischen&sicheren Setup eines Tunnels. So wo der Node sich melden kann, Parameter aushandelt und dann werden auf beiden seiten die Interfaces angelegt und wieder abgerissen. Also quasi Tunneldigger für WG. Sollte wenn ich das richtig verstehe über das Netlink-Interface auch mit einem eigenen Daemon machbar sein, ohne Shellscripterei um das wg Tool herum.

Interessant wäre wie das performt mit 'nem l2-tunnel drin, also l2tp oder gretap durch den wg-Tunnel. Damit könnte man das Thema WG erstmal vom Thema Babel entkoppeln.

L2TP ist genauso schnell. Du kannst über Kabel 60 Mbit/s messen. Der Engpass liegt dann woanders, über WLAN gehen nur etwa 30 Mbit/s und eine einzelne Verbindung schafft 60 Mbit/s über Kabel, wenn der aber richtig switchen muss, also mehrere Leute die Bandbreite wollen und somit mehr Overhead anliegt, sackt der Gesamtdurchsatz auf 45-50 runter. Das wird mit WireGuard wahrscheinlich nicht anders sein.

ich hab das ganze für gretap mal unter ziemlichen live bedingungen getestet. l2tp wäre interessant, muss aber jemand anderes machen.

Bisher ist noch immer keiner auf die Verschlüsselung eingegangen. Kann mal bitte jemand die Details aus dem Manual hier zusammenfassen, wie gut die Verschlüsselung bei so hohen Geschwindigkeiten ist? Und wie sicher?

2 „Gefällt mir“

@rubo77 … schwierig das so pauschal zu beantworten. dieses „wie sicher“ etwas ist. Du kannst dich mit den verschiedenen Cryptomethoden von fastd gerne mal beschäftigen, und konkret chachapoly was auch wireguard benutzt.

Ich glaube den Exkurs Crypto kann so pauschal keiner Leisten, und vermutlich möchte niemand (unsauber) zitiert werden mit „der hat aber gesagt das sei „sicher““

kann man die Crypto denn nun auch ausschalten oder nicht?

Es wäre schön, wenn das hier mal jemand beantworten kann, ohne dass man sich in die Specs einlesen müsste.

@rubo77 [edit: somethgs entfernt]…
Die Crypto in wireguard ist fix und essentiell in deren protokoll stack eingebunden
(Muss also in alle WG die du nutzt reincompiliert werden) - Es gibt allerdings keinen sinvollen Speedvergleich zwischen allen VPN (besser Tunnel) Lösungen. Die Techniken alleine sind schon so divers das sich ein technischer Vgl. verbietet.
Alleine fastd und wireguard machen in etwa default die gleiche crypto - und können auf die kleinen Kisten gebracht werden, daher lohnt da das genaue hinsehen - und das passiert hier ja.

edit es sei nochmal dieser link empfohlen Protocol & Cryptography - WireGuard

3 „Gefällt mir“

ich würde mir ja eher was mit Wireguard wünschen. Also meinetwegen „L2TP over Wireguard“ o.ä.
Das hätte dann nämlich nicht nur IPv6, sondern auch Authentifizierung und ggf. Verschlüsselung.

2 „Gefällt mir“

Ist das nicht anders herum?

Wiregard via L2TP da Wiregard L3?