OpenVPN mit EdgeRouter X-SFP: Unterschied zwischen den Versionen

Aus FunkFeuer Wiki
Zur Navigation springen Zur Suche springen
(Pocki80: Tunnel braucht nur eine Bridge, welcher OLSR Mode zu Anwendung kommt, kann man dafür im OLSRd_V1 wizard einstellen)
K (Link zur Übersichtsseite)
 
(9 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Die allgemeinen Voraussetzungen zum Einrichten eines Tunnels sind in der Übersichtsseite dargestellt. Dieser Artikel geht nur auf die rudimentäre Konfiguration des [[Hardware/EdgeRouter_X-SFP EdgeRouter ein.
Die allgemeinen Voraussetzungen zum Einrichten eines Tunnels sind in der [[OpenVPN-Tunnel zu FunkFeuer|Übersichtsseite]] dargestellt. Dieser Artikel geht nur auf die rudimentäre Konfiguration des [[Hardware/EdgeRouter_X-SFP|EdgeRouter]] ein.
 
Update 02/2018: ein EdgeOS-Wizard hierfür ist in Entwicklung: https://github.com/pocki80/ER-wizard-0xFF-OpenVPN2TS
Update 02/2018: ein EdgeOS-Wizard hierfür ist in Entwicklung: https://github.com/pocki80/ER-wizard-0xFF-OpenVPN2TS


Zeile 10: Zeile 11:
  dev            vtun0
  dev            vtun0
  dev-type        tap
  dev-type        tap
  proto          udp
  proto          udp4
  remote          78.41.115.16
  remote          78.41.115.16
  ''port            [5XXX]''
  ''port            [5XXX]''
Zeile 16: Zeile 17:
  down-pre
  down-pre
  up-restart
  up-restart
comp-lzo
  script-security 2
  script-security 2
  nobind
  nobind
Zeile 27: Zeile 27:
  mute 2
  mute 2
  verb 0
  verb 0
up "/config/user-data/funkfeuer-ifupdown.sh silent"
down "/config/user-data/funkfeuer-ifupdown.sh silent"
  secret /config/user-data/funkfeuer.secret
  secret /config/user-data/funkfeuer.secret
  cipher none
  cipher none
auth none
Zusätzlich, wenn es erforderlich ist, kannst Du die MTU anpassen wie folgt:
tun-mtu 1500
mssfix
'''UND'''
a) für eine MTU von 1500 Byte (1472 Byte Nutzlast + 20 Byte IP Header + 8 Byte UDP Header):
fragment 1472
b) bei PPPoE, etwa bei DSL mit einer Fritzbox (1464 Byte Nutzlast + 20 Byte IP Header + 8 Byte UDP Header + 8 Byte PPPoE Header):
fragment 1464
c) bei anderen Anschlüssen je nach ermitteltem MTU-Wert. Unter EdgeOS, wie auch unter Linux geht das mit
configure
sudo su
ping -Mdo -c1 -s1472 78.41.115.16
- wenn der Befehl einen Zeitwert zurückliefert, ist 1472 OK - siehe a), sonst den Wert um je 2 Byte reduzieren (1470, 1468..., 1252), bis der Ping erfolgreich ist.
Den so ermittelten Wert nennst Du bitte Deinem jeweiligen Ansprechpartner im Tunnelserver-Team, denn Änderungen an der MTU müssen auf beiden Seiten des Tunnels identisch sein.


Sowie
Sollte Kompression eingesetzt werden, ist der ermittelte Wert um weitere 4 Byte für die Kompressionsheader zu reduzieren.
auth none
Der Parameter "fragment" lautet dann also 1468 bei 1472 für eine Leitungs-MTU 1500 oder 1460 für 1464, was einer Leitungs-MTU von 1492 entspricht.
oder
auth SHA256


2) funkfeuer.secret - wenn ein Key angelegt wurde, wie in 1) beschrieben.


Diese Datei beinhaltet einen individuellen kryptographischen Schlüssel (shared key), der sicherstellt, dass der Tunnel nur von jenen Clients genutzt werden kann, denen er auch tatsächlich zugewiesen wurde. Das soll verhindern, dass ein Tunnel missbräuchlich oder versehentlich mehrfach genützt wird.
Auf Glasfaserleitungen mit 100 Mbit/s (symmetrisch) kann zusätzlich eingetragen werden:
Diesen Schlüssel erhältst Du per E-Mail und Du musst ihn lediglich in dieser Datei speichern.
txqueuelen 10000


3) funkfeuer-ifupdown.sh


Dieses Skript sorgt dafür, dass das Tunnel-Interface, nachdem es gestartet wurde, in die richtige Bridge gelegt wird, auf der bereits OLSR im vorgesehenen Modus läuft:
2) funkfeuer.secret - wenn ein Key angelegt wurde, wie in 1) beschrieben.


#!/bin/sh
Diese Datei beinhaltet einen individuellen kryptographischen Schlüssel (shared key), der sicherstellt, dass der Tunnel nur von jenen Clients genutzt werden kann, denen er auch tatsächlich zugewiesen wurde. Das soll verhindern, dass ein Tunnel missbräuchlich oder versehentlich mehrfach genützt wird.
logger "$dev $script_type"
Diesen Schlüssel erhältst Du per E-Mail und Du musst ihn lediglich in dieser Datei speichern.
br="br9"
case "$script_type" in
        up)
                /sbin/brctl addif $br $dev
                /sbin/ip link set $br promisc on
                /sbin/ip link set $dev up
        ;;
        down)
                /sbin/ip link set $dev down
                /sbin/ip link set $br promisc off
                /sbin/brctl delif $br $dev
        ;;
        *)
esac
exit 0


3) Folgende Config am EdgeRouter vornehmen (lokalen Gateway für Static-Route entsprechend ändern)
3) Folgende Config am EdgeRouter vornehmen (lokalen Gateway für Static-Route entsprechend ändern)


  set interfaces bridge br9 address 78.41.000.000/32
  set interfaces bridge br9 address [zugeteilte IP Adresse aus dem Redeemer]/32
  set interfaces bridge br9 aging 300
  set interfaces bridge br9 aging 300
  set interfaces bridge br9 bridged-conntrack disable
  set interfaces bridge br9 bridged-conntrack disable
Zeile 77: Zeile 75:
  set protocols static route 78.41.115.16/32 next-hop 192.168.0.1 description 'TunnelServer via ISP'
  set protocols static route 78.41.115.16/32 next-hop 192.168.0.1 description 'TunnelServer via ISP'
  set interfaces openvpn vtun0 config-file /config/user-data/funkfeuer.ovpn
  set interfaces openvpn vtun0 config-file /config/user-data/funkfeuer.ovpn
chmod +x /config/user-data/funkfeuer-ifupdown.sh
  commit
  commit
  save
  save


4) Im OLSRd_V1 Wizard für das Interface br9 entweder silent, ether oder mesh für OLSR aktivieren
4) Im OLSRd_V1 Wizard für das Interface br9 für OLSR aktivieren. Mode "mesh" kann man bei bedarf auf "silent" umstellen, um Bandbreite zu sparen. Das geht aber nur, wenn der VON-Router keine weiteren OLSR-Router "hinter sich" hat: diese sind dann nur erreichbar, wenn es einen weiteren Pfad (übers Mesh-Netz) bis zum Tunnelserver gibt. Das ist nur für Router mit Tunnel und beschränktem Datenvolumen sinnvoll, wenn sie '''nur''' den Tunnel als Partner haben.

Aktuelle Version vom 16. Dezember 2020, 10:56 Uhr

Die allgemeinen Voraussetzungen zum Einrichten eines Tunnels sind in der Übersichtsseite dargestellt. Dieser Artikel geht nur auf die rudimentäre Konfiguration des EdgeRouter ein.

Update 02/2018: ein EdgeOS-Wizard hierfür ist in Entwicklung: https://github.com/pocki80/ER-wizard-0xFF-OpenVPN2TS

Einrichten des Tunnels

Empfohlen wird, die Konfigurationsdateien und das Skript zuerst auf dem Computer anzulegen, und diese gemeinsam in der Folge per SSH ins Verzeichnis /config/user-data/ zu kopieren. Alternativ über das CLI wie vi anlegen. Wir benötigen:

1) funkfeuer.ovpn mit folgendem Inhalt - die kursiv dargestellten Zeilen musst Du mit jenen Werten befüllen, die Du von den Tunneladmins zugewiesen bekommen hast:

dev             vtun0
dev-type        tap
proto           udp4
remote          78.41.115.16
port            [5XXX]
up-delay
down-pre
up-restart
script-security 2
nobind
ping 10
ping-restart 60
ping-timer-rem
fast-io
sndbuf  524288 
rcvbuf  524288
mute 2
verb 0
secret /config/user-data/funkfeuer.secret
cipher none
auth none

Zusätzlich, wenn es erforderlich ist, kannst Du die MTU anpassen wie folgt:

tun-mtu 1500
mssfix

UND a) für eine MTU von 1500 Byte (1472 Byte Nutzlast + 20 Byte IP Header + 8 Byte UDP Header):

fragment 1472

b) bei PPPoE, etwa bei DSL mit einer Fritzbox (1464 Byte Nutzlast + 20 Byte IP Header + 8 Byte UDP Header + 8 Byte PPPoE Header):

fragment 1464

c) bei anderen Anschlüssen je nach ermitteltem MTU-Wert. Unter EdgeOS, wie auch unter Linux geht das mit

configure
sudo su
ping -Mdo -c1 -s1472 78.41.115.16

- wenn der Befehl einen Zeitwert zurückliefert, ist 1472 OK - siehe a), sonst den Wert um je 2 Byte reduzieren (1470, 1468..., 1252), bis der Ping erfolgreich ist. Den so ermittelten Wert nennst Du bitte Deinem jeweiligen Ansprechpartner im Tunnelserver-Team, denn Änderungen an der MTU müssen auf beiden Seiten des Tunnels identisch sein.

Sollte Kompression eingesetzt werden, ist der ermittelte Wert um weitere 4 Byte für die Kompressionsheader zu reduzieren. Der Parameter "fragment" lautet dann also 1468 bei 1472 für eine Leitungs-MTU 1500 oder 1460 für 1464, was einer Leitungs-MTU von 1492 entspricht.


Auf Glasfaserleitungen mit 100 Mbit/s (symmetrisch) kann zusätzlich eingetragen werden:

txqueuelen 10000


2) funkfeuer.secret - wenn ein Key angelegt wurde, wie in 1) beschrieben.

Diese Datei beinhaltet einen individuellen kryptographischen Schlüssel (shared key), der sicherstellt, dass der Tunnel nur von jenen Clients genutzt werden kann, denen er auch tatsächlich zugewiesen wurde. Das soll verhindern, dass ein Tunnel missbräuchlich oder versehentlich mehrfach genützt wird. Diesen Schlüssel erhältst Du per E-Mail und Du musst ihn lediglich in dieser Datei speichern.

3) Folgende Config am EdgeRouter vornehmen (lokalen Gateway für Static-Route entsprechend ändern)

set interfaces bridge br9 address [zugeteilte IP Adresse aus dem Redeemer]/32
set interfaces bridge br9 aging 300
set interfaces bridge br9 bridged-conntrack disable
set interfaces bridge br9 description TUNNEL
set interfaces bridge br9 hello-time 2
set interfaces bridge br9 max-age 20
set interfaces bridge br9 priority 32768
set interfaces bridge br9 stp false
commit
set protocols static route 78.41.115.16/32 next-hop 192.168.0.1 description 'TunnelServer via ISP'
set interfaces openvpn vtun0 config-file /config/user-data/funkfeuer.ovpn
commit
save

4) Im OLSRd_V1 Wizard für das Interface br9 für OLSR aktivieren. Mode "mesh" kann man bei bedarf auf "silent" umstellen, um Bandbreite zu sparen. Das geht aber nur, wenn der VON-Router keine weiteren OLSR-Router "hinter sich" hat: diese sind dann nur erreichbar, wenn es einen weiteren Pfad (übers Mesh-Netz) bis zum Tunnelserver gibt. Das ist nur für Router mit Tunnel und beschränktem Datenvolumen sinnvoll, wenn sie nur den Tunnel als Partner haben.