Zugriff auf ein Modem hinter Ubiquiti USG

geschrieben von Alexander Grözinger

Mittwoch, 23 Januar 2019 06:44 Publiziert in Technik-Ecke

Es kursieren im Netz einige verschiedene Lösungen, um es zu ermöglichen, ein Modem anzusprechen, das vor dem Router hängt. In diesem Fall ist der Router ein UniFi Security Gateway (USG). Ich stand vor demselben Problem und habe letztlich eine Lösung gefunden, die ich sehr elegant finde. 

Viele Vorschläge basieren darauf, eine Route zwischen USG und Modem, in diesem Fall einem Draytek Vigor 165 (Vigor) einzurichten. Dazu müssen Einstellungen an beiden Geräten vorgenommen werden. Zum Einen muss eine Route vom USG zum Vigor eingerichtet werden, zum Anderen eine Route zurück vom Vigor zum USG. Oftmals war es auch so, dass die Route vom USG zum Modem nur temporär war, und nach einem Neustart des USG zuerst per SSH wieder eingerichtet werden musste. Die hier beschriebene Lösung ist dauerhaft und eine Konfiguration erfolgt nur auf der Seite des USG. Vor allem aber, kann sie universell für jedes Gerät genutzt werden und ist nicht auf den Vigor beschränkt. Wichtig ist nur, dass die IP-Einstellungen entsprechend passen.

 

 

Um Zugriff auf ein Modem zu bekommen, welches sich außerhalb des eigentlichen LAN Netzwerkes befindet, wird auf dem WAN-Port des USG eine virtuelle Schnittstelle eingerichtet. Wichtig ist, dass für die virtuelle Schnittstelle der WAN-Port benutzt wird, denn genau dieser Port stellt ja die Verbindung zum Modem her. Die virtuelle Schnittstelle erstellt quasi ein "Mini-LAN" über das Modem und USG kommunizieren können. Da das USG sowohl das eigentliche LAN-Netzwerk, als auch das Mini-LAN kennt, weiß es auch, wie es den Datenverkehr zwischen beiden Netzwerken verteilen muss. Es fehlt nur eine Sache: Das Modem weiß nicht, wie es über das Mini-LAN mit dem USG kommunizieren kann. Die oft beschrieben Lösung: auf dem Modem wird eine statische Route zum USG einrichtet. Aber wie wäre es denn, wenn wir das USG so einrichten, dass das Modem gar nicht wissen muss, wie es mit dem USG kommunizieren kann? Richtig, zum Einen müssen wir die Konfiguration dann nur auf einer Seite vornehmen, nämlich auf Seite des USG und zum anderen würde diese Lösung auch funktionieren, wenn man am Modem selbst keine statische Route zurück auf's USG einrichten kann (wie es bei manchen Modellen der Fall ist).

Grundlegendes:

Der Adressbereich des eigentlichen LAN-Netzwerks und das Netzwerk des Modem's müssen sich unterscheiden, jedoch im gleichen Subnet liegen. Außerdem brauchen wir eine IP-Adresse, die das USG im Adressbereich des Modem's einnimmt.

UmgebungAddressbereich
Heimnetzwerk: (UniFi) 192.168.1.1/24
DraTek Vigor 192.168.2.1/24
IP-Adresse des USG im Adressbereich des Modems: 192.168.2.100

1. Konfigurationsdatei anlegen

Um zu erreichen, dass die Einstellungen permanent sind, musst du eine Konfigurationsdatei erzeugen. Dies klingt schwieriger als es tatsächlich ist. Eine offizielle Anleitung von ubnt findest du hier. Lass uns nun die Konfigurationsdatei erzeugen. Öffne dazu einen Texteditor deiner Wahl und kopiere folgende Zeilen: (du musst gerade noch nicht verstehen was das bedeutet, ich erkläre es dir gleich).

{
    "interfaces": {
        "pseudo-ethernet": {
            "peth0": {
                "address": ["192.168.2.100/24"],
                "description": "Zugriff auf Modem",
                "link": ["eth0"]
            }
        }
    },
    "service": {
        "nat": {
            "rule": {
                "5000": {
                    "destination": {
                        "address": ["192.168.2.1"]
                    },
                    "outbound-interface": ["peth0"],
                    "type": "masquerade"
                }
            }
        }
    }
}

Speichere diese Datei irgendwo auf deiner Festplatte (Hauptsache du findest sie nachher wieder) als config.gateway.json ab. Achte darauf, dass die Datei auch wirklich die Dateiendung .json hat.

1.1 Parameter anpassen

Der erste Teil der Konfigurationsdatei beschreibt das Pseudo-Mini-LAN am WAN-Port. Passe die folgenden Parameter an deine Bedürfnisse an:

{
    "interfaces": {
        "pseudo-ethernet": {
            "peth0": {
                "address": ["192.168.2.100/24"],
                "description": "Zugriff auf Modem",
                "link": ["eth0"]
            }
        }
    }
}
ParameterWert
"address" hier kommt die IP-Adresse rein, die das USG später im Adressbereich deines Modems hat. Im Beispiel hat das Modem die Adresse 192.168.2.1. Ich habe mir irgendeine freie Adresse in diesem Adressbereich gesucht, hier im Beispiel: 192.168.2.100
"description" Eine Beschreibung des Pseudo-Mini-LAN's.
"link" Hier wird definiert, auf welchem Port am USG das Mini-LAN erzeugt wird.
"eth0" ist der Name für den primären WAN-Port auf dem USG. Wenn du WAN2 oder den USG Pro verwendest, dann wird es wahrscheinlich anders sein. Per SSH Verbindung auf's Gateway und dem Befehl "show interfaces"  kannst du sehen auf welchem Interface die Verbindung zum Modem läuft.

1.2 Etwas Magie

Wir könnten nun im Modem eine statische Route einrichten, damit das Modem weiß, wie es im Pseudo-Mini-LAN mit dem USG sprechen kann. Aber wie weiter oben schon beschrieben, soll das Modem gar nichts vom Mini-LAN wissen! Deshalb sagen wir dem USG, dass Pakete so maskiert werden sollen, dass sie den Anschein haben von einer Netzwerkschnittstelle des USG zu kommen und nicht von einer IP-Adresse. Das Modem muss also nichts über unser Pseudo-Mini-LAN wissen und die Konfiguration erfolgt nur an einer Stelle (am USG). Coole Geschichte. Genau dieses Maskieren der Pakete beschreibt der zweite Teil der Konfigurationsdatei

{
    "service": {
        "nat": {
            "rule": {
                "5000": {
                    "destination": {
                        "address": ["192.168.2.1"]
                    },
                    "outbound-interface": ["peth0"],
                    "type": "masquerade"
                }
            }
        }
    }
}
ParameterWert
"address" hier kommt die IP-Adresse des Modems rein. Hier im Beispiel die 192.168.2.1

2. Die Konfigurationsdatei übertragen und aktivieren

2.1 SFTP Verbindung herstellen und Konfigurationsdatei übertragen

Du hast nun eine fertige Konfigurationsdatei. Lass sie uns nun auf den UniFi Controller übertragen und aktivieren. Dazu müssen wir eine sftp Verbindung zu unserem Controller herstellen. Zum Beispiel kannst du dazu FileZilla verwenden. Die Server Adresse ist sftp://die-ip-des-unifi-controllers Benutzername und Passwort hast du in der Regel beim Einrichten des Controllers festgelegt. Der Port ist 22.

Verbindung zu UniFi Controller

Nachdem du die Verbindung aufgebaut hast (eventuell musst du ein Zertifikat bestätigen), navigierst du in folgendes Verzeichnis (1) und überträgst deine Konfigurationsdatei (2):

Verzeichnis der Konfigurationsdatei

Pfade für die Datei config.gateway.json

UmgebungPfadPfad getestet?
Unifi Controller /srv/unifi/data/sites/<site> ja
Auf einem Windows System C:\Users\%username%\Ubiquiti UniFi\data\sites\<site> nein*
Auf einem Raspberry Pi (siehe auch Kapitel 2.1.1
/var/lib/unifi/sites/<site>
ja

*Falls du diesen Dateipfad bei dir einsetzt und bestätigen kannst, dass er richtig ist, dann lass mich das in einem Kommentar wissen, sodass ich die Tabelle anpassen kann. Danke dir.

2.1.1 Raspberry Pi

Ich habe das hier aus den Kommentaren übernommen (Danke Jens)

Beim Raspberry PI als Controller einfach mit WIN-SCP die angepasste config.gateway.json ins Homeverzeichnis (/home/pi/) kopieren und dann mit Putty auf dem PI einloggen. Mit den folgenden Schritten wird die Datei dann ins richtige Verzeichins kopiert. Das Unifi-Verzeichnis ist gesperrt, also als Superuser arbeiten.

  1. sudo su
  2. cd /home/pi
  3. cp config.gateway.json /var/lib/unifi/sites/default/
  4. exit

Dann wie beschrieben provisionieren und mit der Modem-IP (bei mir FritzBox 7430 für Amazon-60€, die 7362SL ebay-20€ läuft als Telefonzentrale) zugreifen.

 2.2 Konfigurationsdatei am USG bereitstellen (aktivieren)

Als letzten Schritt musst du nun die Konfiguration noch Bereitstellen (provision). Dazu wählst du im UniFi Controller dein USG aus (1), selektierst den Reiter "Config" (2) und stellst die Konfiguration bereit (3: provision)

Provisionieren

Bestätige nun, dass du das wirklich machen möchtest: Confirm (1)

10

3. Funktionalität prüfen

Nach dem die Bereitstellung fertig ist, solltest du nun dein Modem über den Browser deiner Wahl über die IP-Adresse des Modems (hier: 192.168.2.1) erreichen können.

9 Kommentare

Michael
gepostet von: Michael
Sonntag, 08 Dezember 2019 16:14

Hallo, da ich mir nicht sicher bin ob mein erste Post angekommen ist. Hier noch mal. :-)

Wenn ich die Konfiguration wie oben übernehmen bekomme ich folgenden Fehler gemeldet:

Gateway Konfiguratinsfehler. Fehlermeldung: {"COMMIT":{"error":"￾[ interfaces ethernet eth0 ]\nAddress 192.168.2.100/24 is present on multiple interfaces\n\n￿0\nCommit failed\n","failure":"1","success":"1"},"DELETE":{"failure":"0","success":"1"},"SESSION_ID":"db588291e9164d29002e955635","SET":{"failure":"0","success":"1"}}

Habe meine Modem natürlich vorher entsprechend angepasst.

Gruß
Michael

Michael
gepostet von: Michael
Sonntag, 08 Dezember 2019 14:32

Hallo, ich habe folgende Situation. Habe eine USG von Unifi aktuell eine FB die ich aber ablösen möchte. Davor soll das Vigor 130 Moden geschalten. Wenn ich jetzt wie Du oben beschrieben hast meine Konfiguration für die USG anpassen bekomme ich folgenden Fehler von Controller Log ausgegeben. Firma ist bei allen Geräten aktuell.

Hier der Fehler aus dem Log:
Gateway Konfiguratinsfehler. Fehlermeldung: {"COMMIT":{"error":"￾[ interfaces ethernet eth0 ]\nAddress 192.168.2.100/24 is present on multiple interfaces\n\n￿0\nCommit failed\n","failure":"1","success":"1"},"DELETE":{"failure":"0","success":"1"},"SESSION_ID":"db588291e9164d29002e955635","SET":{"failure":"0","success":"1"}}

Was kann ich dagegen tun. Und ist es richtige das ich in der USG dann auch PPPOe nutzen kann für die Einwahl über das Modem. Dies ist bereits fertig in Brigde Mode konfiguriert.

Gruß
Michael

Matthias
gepostet von: Matthias
Mittwoch, 18 September 2019 13:09

Hi und zunächst mal vielen Dank für die Erklärungen!
Ich habe ein Vigor165 und USG und konnte so fast alles 1zu1 übernehmen, hatte aber leider keinen Erfolg.
Ich kann das Modem vom USG aus nichtmal anpingen, show interfaces ethernet zeigt mir unter WAN auch keine IP an.
Ich habe das Modem im PPPoE Modus und unter den LAN Einstellungen die Nat-IP eingestellt. IP-Routing ist deaktiviert, DHCP-Server aktiv.
Muss ich am Modem etwas anders einstellen? Über einen Tipp würde ich mich sehr freuen, danke im Voraus!

vugyocky
gepostet von: vugyocky
Samstag, 17 August 2019 13:41

Hi,

danke für die Anleitung. Dies funktioniert super. :)

Mich würde jetzt nur noch interessieren, wie ich auch noch IPv6 ans laufen bekomme.

Ich bin soweit, das IPv6 beim USG ankommt. Ich kann nach einem Login per SSH auf den USG dort einen IPv6 Ping erfolgreich absetzen. Alles was hinter dem USG hängt, bekommt eine IPv6-Adresse zugewiesen hat aber keinen Internetzugriff per IPv6.

Kann mir hier jemand helfen? Danke! :)

HU
gepostet von: HU
Sonntag, 11 August 2019 14:01

Hallo,
bei mir klappt das leider mit einer Fritzbox im Bridgemodus nicht. Hat das jemand erfolgreich zum Laufen bekommen? Das virtuelle Interface wird korrekt erstellt, die NAT-Regel ist auch vorhanden. Ich kann die Fritzbox aber nicht erreichen.

USG läuft intern mit 192.168.2.0/24
Fritzbox läuft auf 192.168.178.1
peth0 ist 192.168.178.100

config.gateay.json:
{
"interfaces": {
"pseudo-ethernet": {
"peth0": {
"address": ["192.168.178.100/24"],
"description": "Zugriff auf Modem",
"link": ["eth0"]
}
}
},
"service": {
"nat": {
"rule": {
"5000": {
"destination": {
"address": ["192.168.178.1"]
},
"outbound-interface": ["peth0"],
"type": "masquerade"
}
}
}
}

Entweder kann man ueber einen Port im Bridgemodus nicht auf die Fritzbox zugreifen oder ich mache irgendwo was falsch...

--HU

Daniel Einhaus
gepostet von: Daniel Einhaus
Dienstag, 02 Juli 2019 19:56

Moin moin. Bei mir ist ähnliche Hardware verbaut. USG4Pro und Vigor 130. Ich habe versucht entsprechend des Beitrages die Einstellungen vorzunehmen.

Meine Konfiguration
USG4Pro
eth0 (lan) 192.168.1.1
eth2 (wan) 192.168.2.2

Vigor 130
eth0 (lan) 192.168.2.1

das JSON-File habe ich natürlich an meine Umgebung angepasst. Die Einstellungen sind nach dem Provisionieren im Gateway vorhanden (per SSH geprüft). Leider bekomme ich trotzdem keine Verbindung.

Ich habe auch schon versucht die Einstellungen von Hand zu setzen, leider ohne Erfolg.

set interfaces pseudo-ethernet peth0 link eth2
set interfaces pseudo-ethernet peth0 address 192.168.2.2/24
set interfaces pseudo-ethernet peth0 description "Zugriff auf Modem"

set service nat rule 5000 description 'MASQ Zugriff auf Modem'
set service nat rule 5000 log disable
set service nat rule 5000 outbound-interface peth0
set service nat rule 5000 protocol all
set service nat rule 5000 source group network-group corporate_network
set service nat rule 5000 destination address 192.168.2.1
set service nat rule 5000 type masquerade

Vielleicht gibt es eine einfache Lösung, nur sehe ich sie nicht.
Ich bin für jeden Ratschlag dankbar.

Kraehe
gepostet von: Kraehe
Sonntag, 17 März 2019 18:34

Alexander, vergiss bitte alles, was ich gesagt habe. Ich war einfach zu dämlich...ich habe den Controller in einer vm laufen auf einem Debian System....dank Jens komme ich natürlich jetzt an das Verzeichnis......

Jens
gepostet von: Jens
Sonntag, 17 März 2019 17:41

Hallo,
es klappt wunderbar.
Beim Raspberry PI als Controller einfach mit WIN-SCP die angepasste config.gateway.json ins Homeverzeichnis (/home/pi/) kopieren und dann mit Putty auf dem PI einloggen. Das Unifi-Verzeichnis ist gesperrt, also als Superuser arbeiten. 1.: sudo su 2.: cd /home/pi 3.: cp config.gateway.json /var/lib/unifi/sites/default/ 4.: exit . Dann wie beschrieben provisionieren und mit der Modem-IP (bei mir FritzBox 7430 für Amazon-60€, die 7362SL ebay-20€ läuft als Telefonzentrale) zugreifen.

Top, Top, Top und danke für die Anleitung! So wollte ich es haben!
PS. Bei Freizeit und Langeweile suche ich eine verständliche Anleitung für eine Zertifikateinbindung ohne Browsergemecker für ein solides Bild bei der Gäste-Voucher-Anmeldung!

Alexander Grözinger
gepostet von: Alexander Grözinger
Freitag, 25 Januar 2019 18:59

Konnte ich euch mit diesem Artikel helfen? Lasst es mich wissen :=)

Bitte anmelden, um einen Kommentar zu posten