OpenWRT Low Cost Router für LAN bzw. VLAN Routing inklusive OpenVPN Server
Dieses Tutorial ist eine Anleitung wie man mit einfachen Mitteln aus einem preiswerten DSL Router der 25 Euro Klasse einen Mehrport Ethernet Router mit 5 IP LAN Interfaces ohne NAT machen kann. Der Router eignet sich damit um zwischen LANs und VLANs unabhängig von Servern und anderer externer Hardware zu routen.
On Top beitet das System noch dynmaisches Routing (RIP, OSPF) und einen OpenVPN Server für den sicheren und einfachen remoten Zugang über VPN
Das Tutorial wendet sich ausdrücklich nicht an blutige Anfänger, da es etwas Lötarbeit und das Flashen eines Linux Images erfordert.
Der Router ist leider im Fachhandel fast nicht mehr erhältlich, da Edimax die Produktion eingestellt hat. Wie immer wird man aber meist bei eBay fündig !
Generell sind diese Schritte aber ebenso mit jeglichem OpenWRT Router durchführbar.
Auf welcher Router Hardware OpenWRT sonst läuft, entnimmt man dem OpenWRT_Wiki.
Das Projekt ist im Internet unter:
http://midge.vlad.org.ua/wiki/Main
beschrieben, allerdings in englischer Sprache so das dieses HowTo ein grobe deutsche Beschreibung liefern soll. Das Midge Projekt bietet die Möglichkeit Packete nachzuladen, so das dieser Router z.B. sehr einfach auf ein sehr preiswertes OpenVPN Gateway für einen Netzwerk VPN Zugang erweiterbar ist. Dies ist im
ct' Magazin Ausgabe 11, 2007 auf Seite 174
detailiert beschrieben.
Dieses HowTo beschreibt alle diese Funktionen inkl. DHCP und dynamisches Routing !
Für die erweiterte OpenVPN Funktion oder als begleitende Lektüre sei auf den o.a. ct' Artikel verwiesen. Wer die ct' Ausganbe nicht besitzt kann den Artikel mit der genauen Beschreibung HIER herunterladen !
Der Router hat die Möglichkeit eines Firmwareupdates über die LAN Schnittstelle, allerdings funktioniert das nur für Firmware Images des Herstellers. Man ist also auf einen internen Terminalanschluss angewiesen den der Router aber mitbringt.
Nachteil ist das dieser interne Terminal Anschluss nur mit 3 Volt funktioniert und nur über die Platine selber verfügbar ist. Er ist also nicht extern hinausgeführt so das etwas Bastelarbeit erforderlich ist um aus dem Edimax eine richtigen 5 Port IP Router zu machen.
Schliesst man an diesem Terminal Port eine normale serielle Schnittstelle (RS232, COM Port) des PCs mit +-12 V an, zerstört man diesen Terminal Anschluss. Es muss also ein Pegelwandler her....
Sehr einfache Abhilfe schafft hier ein serielles Datenkabel DCA-500 (IP40) für Siemens Mobiltelefone (S45 u.a.) das man für unter 10 Euro billig im Fachhandel oder bei eBay erwerben kann.
Mit einem einfachen Terminal Program wie dem Windows Hyperterm Terminal (unter Zubehör -> Kommunikation) oder TeraTerm ist man dann für die kleine Umrüstung bereit.
Das neue Firmware Image für den Router muss man vorher von:
http://midge.vlad.org.ua/firmware/latest/bin/openwrt-adm5120-2.4-squash ...
herunterladen und auf dem Rechner mit dem man per Hyperterm zugreift speichern.
Verbinden des seriellen Terminalanschlusses:
Nach dem Öffnen des Gehäuses mit den 4 Schrauben am Boden gelangt man an die eigentliche Platine.
Nun kommt das serielle Siemens Mobiltelefon Datenkabel (DCA 500/IP40) ins Spiel ! Von diesem ist der Stecker fürs Telefon abzukneifen oder abzulöten und die Adern freizulegen.
Relevant sind folgende Pins bzw. Aderfarben:
Genaue Infos zur Steckerbelegung stehen bei hier Es gilt die Slim Lumberg Belegung !!!
Dieser Anschluss muss nun mit dem Stecker JP2 (siehe Photo oben) verbunden werden. Entweder direkt anlöten oder wer mag, kann auch Pfostenfeldstecker einlöten und die Kabel stecken, dann kommt man später wieder leichter ganz ohne Löten an den Konsolanschluss heran und kann den seriellen Siemensstecker universell nutzen. (Vorteilhaft wenn man mehrere Edimax umrüsten will...)
Die Pinbelegung des Steckers JP2 auf der Platine ist folgende:
JP2
2-o 4o 6o o-8
1-o 3o 5o o-7
Die Eckpins 1 u.2 und 6 u.7 sind auf der Platine gekennzeichnet ein Verwechseln also nicht möglich sofern man zählen kann !
Pin 4 - nicht angeschlossen
Pin 5 - nicht angeschlossen
Pin 6 - nicht angeschlossen
Eine Platine mit angeschlossenem Stecker sieht dann so aus:
Flashen des Router Images:
Als nächstes wird der Stecker mit dem seriellen COM Port des PCs verbunden. Wer keinen COM Port mehr hat kann hier problemlos einen USB-Seriell(RS-232) Wandler verwenden.
Nun startet man das Hyperterm Terminalprogramm unter Windows (Zubehör -> Kommunikation) und stellt es auf folgende Verbindungsparameter ein:
(115200 Baud, 8 Bit, 1 Stopbit, keine Parity, keine Flusskontrolle)
Jetzt kann man das Router Netzteil mit dessen Stromversorgungsbuchse der Platine verbinden und sollte dann sofort die Bootmeldung des Betriebssystems im Terminalfenster sehen.
Um nun das neue Image zu flashen muss man die Prozedur wiederholen (Strom trennen und wieder aufstecken...)
Nach der Bootmeldung:
ADM5120 Boot:
muss man jetzt sofort 3 mal hintereinander ohne Verzögerung die Leertaste drücken. Darauf gelangt man in das Bootmenü:
ADM5120 Boot: <--- Hier Leertaste 3mal hintereinander drücken
Linux Loader Menu
(a) Download vmlinuz to flash ...
(b) Download vmlinuz to sdram (for debug) ...
(c) Exit
Please enter your key :
Hier wählt man nun die Option a.) und startet im Hyperterm mit Übertragung->Datei senden die Übertragung des neuen Firmware Images, das man unter dem o.a. URL vorher runtergeladen hat !
Als Protokoll ist unbedingt Xmodem zu wählen !
Die Ladeprozedur benötigt ca. 12-15 Minuten daraufhin schreibt der Router das Image selbsständig ins Flash und zeigt wieder das o.a. Bootmenü.
Nun wählt man die Menüoption c.) und der Router startet das neue Image.
Linux User werden sich bei der Ansicht der Bootmeldung gleich heimisch fühlen
Die Bootmessage kann man HIER vergleichen.
Nach dem Bootvorgang zeigt der Router einen Login Prompt, an dem man sich mit User:root und Password:midge anmelden kann und landet dann auf einer normalen Linux/Unix Terminal Oberfläche.
Setzen der IP Adressen pro LAN Port:
Um den Router nun nicht immer über das Terminal konfigurieren zu müssen sollte man ihm als Allererstes eine IP Adresse aus dem eigenen lokalen LAN vergeben (Beispiel: 172.16.1.254 255.255.255.0) um einen komfortablen Zugang per SSH Terminal wie z.B. dem bekannten PUTTY vom Netzwerk zu bekommen.
Leider besitzt das neue Router OS keinen komfortablen Editor wie man ihn gewöhnt ist und man muss mit dem vi Editor vorlieb nehmen, was nicht jedermanns Sache ist. Aber keine Angst für die paar Zeilen die man mit dem vi hier arbeiten muss ist es keine besondere Herausforderung ! (Viele bevorzugen allerdings gerade DIESEN Editor, was sicher Geschmackssache ist !)
Eine genaue Bedienungsanleitung zum vi Editor findet man HIER !
Unter /etc/network/ findet man die Datei interfaces und genau DIE gilt es nun zu editieren:
Das Interface eth0 beschreibt den WAN Port auf dem Router bzw. ist mit diesem identisch. Wer das Editieren mit dem vi scheut kann auch erstmal die als Default eingestellte IP Adresse 192.168.0.1 benutzen, denn die Interfaces haben per Default folgende Belegung:
WAN Port: 192.168.0.1/24 eth0
Port 1: 192.168.1.1/24 eth1
Port 2: 192.168.2.1/24 eth2
Port 3: 192.168.3.1/24 eth3
Port 4: 192.168.4.1/24 eth4
Mit dieser Adressbelegung ist der Router ohne Konfiguration sofort funktionsfähig, allerdings erfordert das dann natürlich ein Anpassen der Endgeräte (PCs etc.) auf diese IP Netzwerke !
Um die Bedienung des vi und die Anpassung der Interfaces kommt man aber letztlich nicht drumherum will man die Ethernet Ports auf seine individuellen Bedürfnisse und IP Adressen anpassen.
Wer den Midge Router analog so betreiben will wie die Standardkonfig des Edimax (1 WAN Port, 4 LAN Ports) muss die Datei /etc/midge.conf entsprechen anpassen:
Zusätzlich ist die Datei /etc/network/interfaces anzupassen
Damit hat man dann auf dem WAN Port die IP Adresse 192.168.0.254 /24 mit einem Default Gateway auf die 192.168.0.1.
Alle 4 restlichen Ports arbeiten untereinander als 4 Port Switch mit der IP Adresse 192.168.1.254 zum Router.
Ggf. ist das auf die individuellen IP Adressen anzupassen !
Um Namensauflösungen problemlos zu machen sollte man die Datei /etc/resolv.conf noch mit dem lokalen Nameserver bestücken.
Annahme hier ist ein lokaler vorhandener DSL Internet Router im WAN Netz mit der IP 192.168.0.254.
Dann sieht die Datei /etc/resolv.conf so aus:
domain localnet
nameserver 192.168.0.254
Hat man die WAN Port IP Adresse (eth0) oder die eines spezifischen Ethernet Ports (eth1 bis eth4) nach Wahl auf eine freie Adresse seines lokalen LANs angepasst und auch die resolv.conf Datei fürs DNS, sollte man als Allererstes diese Konfig sichern !
Dies geschieht mit dem Befehl: flash save !
Macht man das nicht sind alle Anpassungen nach einem Reboot des Routers verloren !
Nun kann man nach einem flash save beruhigt die Stromversorgung entfernen und das Terminal bzw. das serielle Kabel ebenfalls vom Platinenstecker JP2 entfernen und den Router mit seinen 4 Schrauben wieder zusammenschrauben und in seine ursprüngliche Form zurückverwandeln.
Schliesst man ihn nun mit dem vorher entsprechend IP konfigurierten Interface an sein lokales LAN an, erreicht man ihn problemlos mit einer SSH Session z.B. mit dem Programm PUTTY von jedem Rechner im LAN und/oder WLAN
Hier kann man jetzt in aller Ruhe mit dem vi die Datei /etc/network/interfaces auf seine IP Adressierungs Belange anpassen.
Auch die Datei /etc/resolv.conf sollte man editieren und den lokalen DNS Server (z.B. DNS Proxy am Internet Router) eintragen. Weitere externe statische Routen lassen sich mit dem Kommando route add... klassisch hinzufügen. Das Kommando flash save nach Anpassungen sollte nie vergessen werden um diese Einstellungen im Flash zu speichern, ansonsten sind die Änderungen nach dem nächsten Reboot verloren !
Um z.B. auf einem VLAN fähigen Layer 2 only Switch zu routen, also die VLANs auf IP Ebene zu verbinden, verbindet man die Ports des o.a. Routers mit jedem VLAN Segment und richtet auf den Clients dessen Adressen als Gateway ein. So ist auch eine VLAN Kommunikation ohne Layer 3 (Routing) fähigen Switch oder externem Server problemlos möglich.
Es muss lediglich die Konfigurationsdatei udhcpd-ethx.conf im Verzeichnis /etc/ angepasst werden.
Hier befindet sich eine Beispieldatei example.udhcpd-eth5.conf an der man sich orientieren kann und die man mit dem vi entsprechend seinen IP Daten auf dem Interface eth 1 anpasst.
Eine Beispieldatei die auf dem Interface eth1 das Netzwerk 192.168.1.0 mit der DHCP Bereich .100 bis .150 verteilt sähe dann so aus: (# sind Kommentarzeilen !)
Danach speichert man diese Datei und legt optional für jedes Interface auf dem man DHCP aktivieren möchte eine separate Konfigurations Datei nach diesem obigen Muster an z.B. udhcpd-eth2.conf , udhcpd-eth3.conf ,udhcpd-eth5.conf usw. !
Zum Schluss muss man noch den Dateinamen von example.udhcpd-eth5.conf in z.B. udhcpd-eth1.conf umbenennen mit dem mv Kommando z.B.
root@midge:/etc# mv example.udhcpd-eth5.conf udhcpd-eth5.conf !!
Diese Umbenennung ist zwingend nötig, da das Startscript S80udhcpd automatisch prüft ob diese Konfigurationsdatei vorhanden ist und dann den DHCP Server startet. Wichtig ist hier auch das der Name der Konfigatei unbedingt udhcpdxyz.conf lautet, wobei der Teil xyz frei wählbar ist !
Danach natürlich wieder flash save nicht vergessen um die Datei zu sichern.
Nach einem Reboot des Routers oder Aufruf des Startscripts mit /etc/init.rd/S80udhcpd start startet dann der DHCP Server und ist aktiv.
Wie diese Konfiguration bei einem VLAN Routing auf einem Tagged Ethernet Interface aussieht beschreibt der VLAN Abschnitt in diesem Tutorial im nächsten Kapitel.
Ein Tutorial das das Aktivieren von VLANs auf einem Windows bzw. Linux Server mit einer VLAN fähigen Netzwerkkarte beschreibt findet man hier:
VLANs über 802.1q Trunk auf Windows und Linux Rechnern realisieren
Mit diesem Router ist es dann möglich unabhängig vom Server zwischen den verschiedenen VLANs eines Switches zu routen, der selber keine Routing Fähigkeit hat !
Ein Prinzip Schaubild dieses Szenarios sieht so aus:
Den Router den Layer 3 (Routing) Switches intern haben, betreibt man hier quasi extern.
Wie geht man im Einzelnen vor:
Als Beispiel ist hier das LAN Interface 4 herangezogen auf dem 2 VLANs mit den VLAN IDs 10 und 20 eingerichtet sind, die auf einem Switchport eines Switches enden.
(Es sind natürlich mehr VLANs möglich, 2 sollen aber hier für die generelle Beschreibung der ToDos reichen.)
D.h. der Port eth4 des Routers ist mit einem tagged Interface des Switches verbunden auf dem ebenfalls beide VLANs aufliegen und ermöglicht so ein Routing zwischen den beiden (oder mehr) VLANs.
Werden weitere VLANs benötigt sind diese im Router lediglich in die Datei /etc/network/interfaces auf dem Router einzutragen wie im folgenden beschrieben: !
Der Inhalt dieser Datei sieht für die VLAN Konfiguration folgendermassen aus:
Konfiguration eines Cisco Catalyst Switches dazu (Router an Port 1, Endgeräte an Port 10 und 11)
Cisco_Switch#
!
interface FastEthernet0/1
description Tagged Link zum OpenWRT VLAN Router
switchport mode trunk
switchport trunk encapsulation dot1q
!
interface FastEthernet0/10
description Enduser Ports in VLAN 10
switchport access vlan 10
spanning-tree portfast
!
interface FastEthernet0/11
description Enduser Ports in VLAN 20
switchport access vlan 20
spanning-tree portfast
!
Konfiguration eines HP Switches: (Router an Port 1, Endgeräte an Port 10-11 und 12-13)
HP_Switch#
interface 1
name "VLAN Tagged Link zum OpenWRT VLAN Router"
exit
vlan 10
name "VLAN-10"
untagged 10-11
tagged 1
exit
vlan 20
name "VLAN-20"
untagged 12-13
tagged 1
exit
Die IP Adressen hier im Beispiel sind
VLAN-10
IP Netz: 192.168.4.0 Maske:255.255.255.0
Router IP: 192.168.4.254
VLAN-20
IP Netz: 192.168.40.0 Maske:255.255.255.0
Router IP: 192.168.40.254
Einstellen des DHCP Servers auf Tagged Interfaces:
Analog zur Beschreibung der DHCP Server Aktivierung sehen dann die DHCP Server Beispieldateien für die beiden VLANs 10 und 20 so aus:
VLAN 10
VLAN 20
Somit werden auf den beiden Beispiel VLANs 10 und 20 auch dynamische IP Adressen verteilt !
Dafür geht man folgendermaßen vor: (Beispiel hier mit dem Routing Protokoll OSPF)
Mit
ipkg install quagga
und
ipkg install quagga-ospfd (Wenn man RIP(v2) benötigt ist das ipkg install quagga-ripngd )
installiert man wie gehabt online die relevanten Pakete fürs dynamische Routing das dann alle Verzeichnisse und .conf Dateien einrichtet.
Leider richtet das Install Tool das Konfig Verzeichnis mit falschem Owner ein so das etwas Handarbeit gefordert ist um das zu korrigieren !
Ein chown quagga.quagga /etc/quagga und chmod 766 /etc/quagga/*.conf korrigiert das Problem umgehend.
Nun kann man den Router mit
zebra -d
und
ospfd -d
starten.
Sehr bequem ist bei Zebra/Quagga das der Router eine Cisco Command Line Oberfläche hat zum Konfigurieren was für viele das Konfigurieren erheblich vereinfacht. Diese Cisco Oberfläche erreicht man mit dem folgenden Kommando innerhalb der OpenWRT Konsole auf dem Router:
nc localhost 2604 (Default Passwort quagga !)
Natürlich kann man die Router Konsole einfacher auch direkt von außen per Telnet erreichen mit z.B.demm allseits bekannten Putty indem man die IP des Routers und den Zielport gemäß unten stehender Portliste eingibt:
Ein Telnet Connect auf die IP des Routers mit dem Zielport 2604 (OSPF) ergibt dann dieses Bild:
Die anderen Zugriffsports lauten folgendermaßen:
zebra: 2601
ripd: 2602
ripng: 2603
ospfd: 2604
bgpd: 2605
ospf6d: 2606
Hier kann man jetzt den Hostnamen neu setzen, das Passwort anpassen und die OSPF Konfig vervollständigen.
Mit
network 192.168.7.0/24 area 0.0.0.0
network 192.168.3.0/24 area 0.0.0.0
network 192.168.4.0/24 area 0.0.0.0
setzt man die Netzwerke .7.0 (eth0/WAN) .3.0 (eth3) und .4.0 (eth4) in die OSPF Area 0 und propagiert dort die Routen.
Mit wr sichert man diese Konfiguration und schon ist der OSPF Router betriebsbereit.
Will man RIP nutzen startet man einfach den RIP Daemon statt des OSPF Daemons.
Die Router Konfiguraton ist analog zur Cisco Syntax so das man sich eng daran halten kann um das System auf seine Belange anzupassen.
Mit dem Hilfsmitteln ? und der TAB Taste kann man im Menü navigieren wie auf einem Cisco Router.
Sind die Konfig Dateien geschrieben sichert man diese mit
cp /etc/quagga/ospfd.conf /etc/quagga/ospfd.conf.sav
cp /etc/quagga/zebra.conf /etc/quagga/zebra.conf.sav
damit sie bei der erneuten Installation nach z.B. einem Reboot nicht überschrieben werden !
Dann mit flash save im Flash sichern !
Leider ist das Flash System des Routers wieder zu klein um das Routing Paket zu sichern, deshalb bastelt man sich wie unten bei der OpenVPN Erweiterung eine kleine Start Datei in /etc/start-router die man mit chmod a+x danach ausführbar macht !
So sieht sie aus:
Jetzt alles unbedingt mit flash save sichern !!
Nach einem Reboot des Routers kann man dann mit /etc/start-router den OSPF Router starten.
Soll diese automatisch bei Systemstart passieren kopiert man diese Datei einfach als S97router ins Verzeichnis /etc/init.d/
Hier die Outputs in einem LAN mit einem Cisco Router:
LowCost Router:
root@midge:/etc# nc localhost 2604
Hello, this is Quagga (version 0.98.5).
Copyright 1996-2005 Kunihiro Ishiguro, et al.
User Access Verification
Password: Geheim
edimax> ena
ena
router# sh ip ospf neigbor
Neighbor ID Pri State Dead Time Address Interface RXmtL RqstL DBsmL
192.168.7.169 1 Full/DR 00:00:31 192.168.7.169 eth0:192.168.7.1 0 0 0
edimax#
Cisco Router:
Cisco#sh ip ospf nei
Neighbor ID Pri State Dead Time Address Interface
1.7.168.192 1 FULL/BDR 00:00:33 192.168.7.1 Ethernet1
Cisco#
Man kann ihm aber bei Bedarf auf noch zusätzlich einen VPN Server einpflanzen der den remoten Zugriff auf lokale Recourcen in diesen Netzen erlaubt für externe Benutzer.
Die OpenVPN Aktivierung lehnt sich an das hier im Forum bereits bestehende Tutorial zur Aktivierung eines OpenVPN Servers auf Routern mit der alternativen dd-wrt Firmware oder der kostenfreien Firewall Pfsense:
OpenVPN Server installieren auf pfSense Firewall, Mikrotik. DD-WRT oder GL.inet Router
Etwas ganz wichtiges für OpenVPN vorweg: Das OpenVPN Paket von Midge hat einen Bug mit der Verwendung von Zertifikaten !!! Nicht so das OpenVPN Paket aus dem Whiterussian OpenWRT Repository. Damit man das RICHTIGE Paket lädt sind vorher ein paar kleine Änderungen zu machen:
Da das Flash zum Schreiben des OpenVPNs zu klein ist muss das OpenVPN Paket beim Starten nachgeladen werden. Es ist also wichtig eine bestehende Internet Verbindung zu haben !
Alle OpenVPN relevanten Dateien finden Platz im Verzeichnis /etc/openvpn, das man sich nachdem man den Router per Putty und SSH verbunden hat mit dem Kommando mkdir /etc/openvpn.
Um das Nachladen zu automatisieren erzeugt man sich hier nun mit dem vi ein Startscript start-openvpn.
..das man mit chmod a+x /etc/openvpn/start-openvpn ausführbar macht.
Wichtig sind nun noch die Zertifikate die man sich aber ganz einfach mit der Anleitung HIER bei OpenVPN.net mit dem Windows Client im Verzeichnis /easy-rsa erzeugt.
Die 4 Dateien im Windows OpenVPN Verzeichnis /keys die für den Server bestimmt sind:
ca.crt
dh1024.pem
server.crt
server.key
..kopiert man dann ganz einfach mit WinSCP auf den Router ins Verzeichnis /etc/openvpn/ !
(Achtung WinSCP muss beim Verbinden auf SCP only eingestellt sein !)
Nun noch das Konfigurations Profil für den OpenVPN Server mit dem vi auf dem Router erstellen:
port 1194
proto udp
dev tun0
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh1024.pem
server 172.16.2.0 255.255.255.0
push "route 192.168.4.0 255.255.255.0"
keepalive 10 120
comp-lzo
persist-key
persist-tun
verb 3
(IP Adressen nach lokalen Bedingungen anpassen !)
Und einem ersten Test steht nichts mehr im Wege !
Man sollte zuerst händisch den Server starten im zu sehen das er fehlerfrei hochfährt.
Das macht man mit dem Kommando openvpn --config /etc/openvpn/server.conf.
Der Output sollte dann folgendermaßen aussehen:
root@midge:/etc/openvpn# openvpn --config server.conf
Sat Jul 18 23:20:26 2009 OpenVPN 2.0.8 mipsel-linux [SSL] [LZO] [EPOLL] built on Jan 30 2007
Sat Jul 18 23:20:26 2009 Diffie-Hellman initialized with 1024 bit key
Sat Jul 18 23:20:26 2009 TLS-Auth MTU parms [ L:1542 D:138 EF:38 EB:0 ET:0 EL:0 ]
Sat Jul 18 23:20:26 2009 TUN/TAP device tun0 opened
Sat Jul 18 23:20:26 2009 /sbin/ifconfig tun0 172.16.2.1 pointopoint 172.16.2.2 mtu 1500
Sat Jul 18 23:20:26 2009 /sbin/route add -net 172.16.2.0 netmask 255.255.255.0 gw 172.16.2.2
Sat Jul 18 23:20:26 2009 Data Channel MTU parms [ L:1542 D:1450 EF:42 EB:135 ET:0 EL:0 AF:3/1 ]
Sat Jul 18 23:20:26 2009 UDPv4 link local (bound): [undef]:1194
Sat Jul 18 23:20:26 2009 UDPv4 link remote: [undef]
Sat Jul 18 23:20:26 2009 MULTI: multi_init called, r=256 v=256
Sat Jul 18 23:20:26 2009 IFCONFIG POOL: base=172.16.2.4 size=62
Sat Jul 18 23:20:26 2009 Initialization Sequence Completed
Ist das der Fall ist alles funktionsbereit !
WICHTIG: Alles noch einmal sichern mit flash save !!!
Nun den Router rebooten indem man aus- einschaltet.
Jetzt kann man den Router mit /etc/openvpn/start-openvpn komplett starten, der OpenVPN Server ist dann als Daemon aktiv.
Natürlich ist das auf die Dauer etwas nervig immer manuell den VPN Server per SSH Login starten zu müssen.
Es geht natürlich auch bequemer !!
Das Kommando cp /etc/openvpn/start-openvpn /etc/init.d/S96openvpn kopiert das Start Script als automatisches Startscript ins System so das es bei Systemstart automatisch ausgeführt wird.
WICHTIG: Alles wieder sichern mit flash save !!!
Eine Internet Verbindung vorausgesetzt, wird jetzt beim Einschalten der Server komplett automatisch installiert und gestartet und eine VPN Verbindung mit dem OpenVPN Client
Windows_Version
Mac_Version
ist im Handumdrehen aufgebaut !
Mit all diesen Optionen bekommt man fast so etwas wie eine eierlegende Wollmilchsau mit diesem Consumer System !
Wer dennoch nicht von den mannigfachen Möglichkeiten der Software überzeugt ist kann ganz einfach die original Edimax Firmware wieder zurückflashen:
Die Prozedur ist gleich wie der obige Flashvorgang mit XModem zu bewerkstelligen.
Allerdings muss man zwingend die Edimax Firmware Datei mit der Endung EDIxyz.bin zuvor in die Endung EDIxyz.bin.csys umbenennen damit sie vom Flash erkannt wird.
Letzte Änderung 05/2010
On Top beitet das System noch dynmaisches Routing (RIP, OSPF) und einen OpenVPN Server für den sicheren und einfachen remoten Zugang über VPN
Das Tutorial wendet sich ausdrücklich nicht an blutige Anfänger, da es etwas Lötarbeit und das Flashen eines Linux Images erfordert.
Inhaltsverzeichnis
Die Hardware
Ausgangshardware ist ein Consumer DSL Router der Fa. Edimax BR6104K_oder_KP ohne integriertes DSL Modem. Der Router ist ein Einchipsystem mit einem Open Source Image und im Versandhandel für Preise um 25 Euro oder weniger wie z.B. hier erhältlich.Der Router ist leider im Fachhandel fast nicht mehr erhältlich, da Edimax die Produktion eingestellt hat. Wie immer wird man aber meist bei eBay fündig !
Generell sind diese Schritte aber ebenso mit jeglichem OpenWRT Router durchführbar.
Auf welcher Router Hardware OpenWRT sonst läuft, entnimmt man dem OpenWRT_Wiki.
Das Projekt ist im Internet unter:
http://midge.vlad.org.ua/wiki/Main
beschrieben, allerdings in englischer Sprache so das dieses HowTo ein grobe deutsche Beschreibung liefern soll. Das Midge Projekt bietet die Möglichkeit Packete nachzuladen, so das dieser Router z.B. sehr einfach auf ein sehr preiswertes OpenVPN Gateway für einen Netzwerk VPN Zugang erweiterbar ist. Dies ist im
ct' Magazin Ausgabe 11, 2007 auf Seite 174
detailiert beschrieben.
Dieses HowTo beschreibt alle diese Funktionen inkl. DHCP und dynamisches Routing !
Für die erweiterte OpenVPN Funktion oder als begleitende Lektüre sei auf den o.a. ct' Artikel verwiesen. Wer die ct' Ausganbe nicht besitzt kann den Artikel mit der genauen Beschreibung HIER herunterladen !
Der Router hat die Möglichkeit eines Firmwareupdates über die LAN Schnittstelle, allerdings funktioniert das nur für Firmware Images des Herstellers. Man ist also auf einen internen Terminalanschluss angewiesen den der Router aber mitbringt.
Nachteil ist das dieser interne Terminal Anschluss nur mit 3 Volt funktioniert und nur über die Platine selber verfügbar ist. Er ist also nicht extern hinausgeführt so das etwas Bastelarbeit erforderlich ist um aus dem Edimax eine richtigen 5 Port IP Router zu machen.
Schliesst man an diesem Terminal Port eine normale serielle Schnittstelle (RS232, COM Port) des PCs mit +-12 V an, zerstört man diesen Terminal Anschluss. Es muss also ein Pegelwandler her....
Sehr einfache Abhilfe schafft hier ein serielles Datenkabel DCA-500 (IP40) für Siemens Mobiltelefone (S45 u.a.) das man für unter 10 Euro billig im Fachhandel oder bei eBay erwerben kann.
Mit einem einfachen Terminal Program wie dem Windows Hyperterm Terminal (unter Zubehör -> Kommunikation) oder TeraTerm ist man dann für die kleine Umrüstung bereit.
Das neue Firmware Image für den Router muss man vorher von:
http://midge.vlad.org.ua/firmware/latest/bin/openwrt-adm5120-2.4-squash ...
herunterladen und auf dem Rechner mit dem man per Hyperterm zugreift speichern.
Flashen des neuen Firmware Images
Verbinden des seriellen Terminalanschlusses:
Nach dem Öffnen des Gehäuses mit den 4 Schrauben am Boden gelangt man an die eigentliche Platine.
Nun kommt das serielle Siemens Mobiltelefon Datenkabel (DCA 500/IP40) ins Spiel ! Von diesem ist der Stecker fürs Telefon abzukneifen oder abzulöten und die Adern freizulegen.
Relevant sind folgende Pins bzw. Aderfarben:
- Telefonstecker Pin 1 - rot - + (4,5-5V)
- Telefonstecker Pin 2 - schwarz - GND (Masse)
- Telefonstecker Pin 3 - weiss - Data Out (TX)
- Telefonstecker Pin 4 - grün - Data In (RX)
Genaue Infos zur Steckerbelegung stehen bei hier Es gilt die Slim Lumberg Belegung !!!
Dieser Anschluss muss nun mit dem Stecker JP2 (siehe Photo oben) verbunden werden. Entweder direkt anlöten oder wer mag, kann auch Pfostenfeldstecker einlöten und die Kabel stecken, dann kommt man später wieder leichter ganz ohne Löten an den Konsolanschluss heran und kann den seriellen Siemensstecker universell nutzen. (Vorteilhaft wenn man mehrere Edimax umrüsten will...)
Die Pinbelegung des Steckers JP2 auf der Platine ist folgende:
JP2
2-o 4o 6o o-8
1-o 3o 5o o-7
Die Eckpins 1 u.2 und 6 u.7 sind auf der Platine gekennzeichnet ein Verwechseln also nicht möglich sofern man zählen kann !
- Pin 1 - Routerplatine RX-Daten -> verbinden mit weißer Ader (Pin 3 Telefonstecker Siemenskabel)
- Pin 2 - Routerplatine +3.3V -> verbinden mit roter Ader (Pin 1 Telefonstecker Siemenskabel)
Pin 4 - nicht angeschlossen
Pin 5 - nicht angeschlossen
Pin 6 - nicht angeschlossen
- Pin 7 - Routerplatine TX-Daten -> verbinden mit grüner Ader (Pin 4 Telefonstecker Siemenskabel)
- Pin 8 - Routerplatine Masse -> verbinden mit schwarzer Ader (Pin 2 Telefonstecker Siemenskabel)
Eine Platine mit angeschlossenem Stecker sieht dann so aus:
Flashen des Router Images:
Als nächstes wird der Stecker mit dem seriellen COM Port des PCs verbunden. Wer keinen COM Port mehr hat kann hier problemlos einen USB-Seriell(RS-232) Wandler verwenden.
Nun startet man das Hyperterm Terminalprogramm unter Windows (Zubehör -> Kommunikation) und stellt es auf folgende Verbindungsparameter ein:
(115200 Baud, 8 Bit, 1 Stopbit, keine Parity, keine Flusskontrolle)
Jetzt kann man das Router Netzteil mit dessen Stromversorgungsbuchse der Platine verbinden und sollte dann sofort die Bootmeldung des Betriebssystems im Terminalfenster sehen.
Um nun das neue Image zu flashen muss man die Prozedur wiederholen (Strom trennen und wieder aufstecken...)
Nach der Bootmeldung:
ADM5120 Boot:
muss man jetzt sofort 3 mal hintereinander ohne Verzögerung die Leertaste drücken. Darauf gelangt man in das Bootmenü:
ADM5120 Boot: <--- Hier Leertaste 3mal hintereinander drücken
Linux Loader Menu
(a) Download vmlinuz to flash ...
(b) Download vmlinuz to sdram (for debug) ...
(c) Exit
Please enter your key :
Hier wählt man nun die Option a.) und startet im Hyperterm mit Übertragung->Datei senden die Übertragung des neuen Firmware Images, das man unter dem o.a. URL vorher runtergeladen hat !
Als Protokoll ist unbedingt Xmodem zu wählen !
Die Ladeprozedur benötigt ca. 12-15 Minuten daraufhin schreibt der Router das Image selbsständig ins Flash und zeigt wieder das o.a. Bootmenü.
Nun wählt man die Menüoption c.) und der Router startet das neue Image.
Linux User werden sich bei der Ansicht der Bootmeldung gleich heimisch fühlen
Die Bootmessage kann man HIER vergleichen.
Nach dem Bootvorgang zeigt der Router einen Login Prompt, an dem man sich mit User:root und Password:midge anmelden kann und landet dann auf einer normalen Linux/Unix Terminal Oberfläche.
Konfigurieren der Interfaces
Setzen der IP Adressen pro LAN Port:
Um den Router nun nicht immer über das Terminal konfigurieren zu müssen sollte man ihm als Allererstes eine IP Adresse aus dem eigenen lokalen LAN vergeben (Beispiel: 172.16.1.254 255.255.255.0) um einen komfortablen Zugang per SSH Terminal wie z.B. dem bekannten PUTTY vom Netzwerk zu bekommen.
Leider besitzt das neue Router OS keinen komfortablen Editor wie man ihn gewöhnt ist und man muss mit dem vi Editor vorlieb nehmen, was nicht jedermanns Sache ist. Aber keine Angst für die paar Zeilen die man mit dem vi hier arbeiten muss ist es keine besondere Herausforderung ! (Viele bevorzugen allerdings gerade DIESEN Editor, was sicher Geschmackssache ist !)
Eine genaue Bedienungsanleitung zum vi Editor findet man HIER !
Unter /etc/network/ findet man die Datei interfaces und genau DIE gilt es nun zu editieren:
root@midge:/etc/network> cat interfaces
Configure Loopback
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 172.16.1.254
netmask 255.255.255.0
gateway 172.16.1.1
...
WAN Port: 192.168.0.1/24 eth0
Port 1: 192.168.1.1/24 eth1
Port 2: 192.168.2.1/24 eth2
Port 3: 192.168.3.1/24 eth3
Port 4: 192.168.4.1/24 eth4
Mit dieser Adressbelegung ist der Router ohne Konfiguration sofort funktionsfähig, allerdings erfordert das dann natürlich ein Anpassen der Endgeräte (PCs etc.) auf diese IP Netzwerke !
Um die Bedienung des vi und die Anpassung der Interfaces kommt man aber letztlich nicht drumherum will man die Ethernet Ports auf seine individuellen Bedürfnisse und IP Adressen anpassen.
Wer den Midge Router analog so betreiben will wie die Standardkonfig des Edimax (1 WAN Port, 4 LAN Ports) muss die Datei /etc/midge.conf entsprechen anpassen:
# VLAN_MX is interface to port definition (port bitmask)
# 0x41=1000001b; 0x42=1000010b; 0x44=1000100b; 0x48=1001000b; 0x50=1010000b; 0x60=1100000b;
#VLAN_MX="0x41,0x42,0x44,0x48,0x50,0x60" # 6 ethernet ifaces
VLAN_MX="0x41,0x5E,0,0,0,0" # 2 ethernet ifaces (like edimax 1WAN, 4LAN)
#VLAN_MX="0x5F,0,0,0,0,0" # 1 ethernet iface (5LAN)
#USB_MOUNT=yes
ETH0_PORTS="0"
ETH1_PORTS="1234"
ETH2_PORTS=
ETH3_PORTS=
ETH4_PORTS=
# Configure Loopback
#
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.0.254
netmask 255.255.255.0
gateway 192.168.0.1
auto eth1
iface eth1 inet static
address 192.168.1.254
netmask 255.255.255.0
Alle 4 restlichen Ports arbeiten untereinander als 4 Port Switch mit der IP Adresse 192.168.1.254 zum Router.
Ggf. ist das auf die individuellen IP Adressen anzupassen !
Um Namensauflösungen problemlos zu machen sollte man die Datei /etc/resolv.conf noch mit dem lokalen Nameserver bestücken.
Annahme hier ist ein lokaler vorhandener DSL Internet Router im WAN Netz mit der IP 192.168.0.254.
Dann sieht die Datei /etc/resolv.conf so aus:
domain localnet
nameserver 192.168.0.254
Hat man die WAN Port IP Adresse (eth0) oder die eines spezifischen Ethernet Ports (eth1 bis eth4) nach Wahl auf eine freie Adresse seines lokalen LANs angepasst und auch die resolv.conf Datei fürs DNS, sollte man als Allererstes diese Konfig sichern !
Dies geschieht mit dem Befehl: flash save !
Macht man das nicht sind alle Anpassungen nach einem Reboot des Routers verloren !
Nun kann man nach einem flash save beruhigt die Stromversorgung entfernen und das Terminal bzw. das serielle Kabel ebenfalls vom Platinenstecker JP2 entfernen und den Router mit seinen 4 Schrauben wieder zusammenschrauben und in seine ursprüngliche Form zurückverwandeln.
Schliesst man ihn nun mit dem vorher entsprechend IP konfigurierten Interface an sein lokales LAN an, erreicht man ihn problemlos mit einer SSH Session z.B. mit dem Programm PUTTY von jedem Rechner im LAN und/oder WLAN
Hier kann man jetzt in aller Ruhe mit dem vi die Datei /etc/network/interfaces auf seine IP Adressierungs Belange anpassen.
Auch die Datei /etc/resolv.conf sollte man editieren und den lokalen DNS Server (z.B. DNS Proxy am Internet Router) eintragen. Weitere externe statische Routen lassen sich mit dem Kommando route add... klassisch hinzufügen. Das Kommando flash save nach Anpassungen sollte nie vergessen werden um diese Einstellungen im Flash zu speichern, ansonsten sind die Änderungen nach dem nächsten Reboot verloren !
Um z.B. auf einem VLAN fähigen Layer 2 only Switch zu routen, also die VLANs auf IP Ebene zu verbinden, verbindet man die Ports des o.a. Routers mit jedem VLAN Segment und richtet auf den Clients dessen Adressen als Gateway ein. So ist auch eine VLAN Kommunikation ohne Layer 3 (Routing) fähigen Switch oder externem Server problemlos möglich.
Aktivieren des DHCP Servers für die LAN Interfaces
Das Aktivieren eines DHCP Servers auf dem Router gestaltet sich sehr einfach, da die Midge OpenWRT Firmware einen DHCP Server gleich mit an Bord hat.Es muss lediglich die Konfigurationsdatei udhcpd-ethx.conf im Verzeichnis /etc/ angepasst werden.
Hier befindet sich eine Beispieldatei example.udhcpd-eth5.conf an der man sich orientieren kann und die man mit dem vi entsprechend seinen IP Daten auf dem Interface eth 1 anpasst.
Eine Beispieldatei die auf dem Interface eth1 das Netzwerk 192.168.1.0 mit der DHCP Bereich .100 bis .150 verteilt sähe dann so aus: (# sind Kommentarzeilen !)
interface eth1
max_leases 50
opt subnet 255.255.255.0
opt dns 192.168.1.254
opt router 192.168.1.1
# opt wins 192.168.1.100
# opt domain midge.local
# opt tftp 192.168.1.100
# Static addresses:
# static_lease 00:00:21:D1:C6:1E 192.168.1.2
# static_lease 00:03:47:CA:70:C4 192.168.1.3
# static_lease 00:50:22:8C:FF:A8 192.168.1.4
# Dynamic addresses:
start 192.168.1.100
end 192.168.1.150
Zum Schluss muss man noch den Dateinamen von example.udhcpd-eth5.conf in z.B. udhcpd-eth1.conf umbenennen mit dem mv Kommando z.B.
root@midge:/etc# mv example.udhcpd-eth5.conf udhcpd-eth5.conf !!
Diese Umbenennung ist zwingend nötig, da das Startscript S80udhcpd automatisch prüft ob diese Konfigurationsdatei vorhanden ist und dann den DHCP Server startet. Wichtig ist hier auch das der Name der Konfigatei unbedingt udhcpdxyz.conf lautet, wobei der Teil xyz frei wählbar ist !
Danach natürlich wieder flash save nicht vergessen um die Datei zu sichern.
Nach einem Reboot des Routers oder Aufruf des Startscripts mit /etc/init.rd/S80udhcpd start startet dann der DHCP Server und ist aktiv.
Wie diese Konfiguration bei einem VLAN Routing auf einem Tagged Ethernet Interface aussieht beschreibt der VLAN Abschnitt in diesem Tutorial im nächsten Kapitel.
VLAN Routing über 802.1q tagged Interfaces
Viel effizienter ist es aber über ein sog. tagged Interface zu routen bei dem alle VLANs mit einem VLAN Tag bzw. einer VLAN ID übertragen werden. Ein Routing ist so viel Port effizienter möglich, da es nur über ein einziges physisches Ethernet Interface passiert.Ein Tutorial das das Aktivieren von VLANs auf einem Windows bzw. Linux Server mit einer VLAN fähigen Netzwerkkarte beschreibt findet man hier:
VLANs über 802.1q Trunk auf Windows und Linux Rechnern realisieren
Mit diesem Router ist es dann möglich unabhängig vom Server zwischen den verschiedenen VLANs eines Switches zu routen, der selber keine Routing Fähigkeit hat !
Ein Prinzip Schaubild dieses Szenarios sieht so aus:
Den Router den Layer 3 (Routing) Switches intern haben, betreibt man hier quasi extern.
Wie geht man im Einzelnen vor:
Als Beispiel ist hier das LAN Interface 4 herangezogen auf dem 2 VLANs mit den VLAN IDs 10 und 20 eingerichtet sind, die auf einem Switchport eines Switches enden.
(Es sind natürlich mehr VLANs möglich, 2 sollen aber hier für die generelle Beschreibung der ToDos reichen.)
D.h. der Port eth4 des Routers ist mit einem tagged Interface des Switches verbunden auf dem ebenfalls beide VLANs aufliegen und ermöglicht so ein Routing zwischen den beiden (oder mehr) VLANs.
Werden weitere VLANs benötigt sind diese im Router lediglich in die Datei /etc/network/interfaces auf dem Router einzutragen wie im folgenden beschrieben: !
Der Inhalt dieser Datei sieht für die VLAN Konfiguration folgendermassen aus:
auto eth4.10
iface eth4.10 inet static
address 192.168.4.1
netmask 255.255.255.0
pre-up ip link set eth4 up
pre-up vconfig add eth4 10
pre-up ip link set eth4.10 up
post-down vconfig rem eth4.10
auto eth4.20
iface eth4.20 inet static
address 192.168.40.1
netmask 255.255.255.0
pre-up ip link set eth4 up
pre-up vconfig add eth4 20
pre-up ip link set eth4.20 up
post-down vconfig rem eth4.20
Konfiguration eines Cisco Catalyst Switches dazu (Router an Port 1, Endgeräte an Port 10 und 11)
Cisco_Switch#
!
interface FastEthernet0/1
description Tagged Link zum OpenWRT VLAN Router
switchport mode trunk
switchport trunk encapsulation dot1q
!
interface FastEthernet0/10
description Enduser Ports in VLAN 10
switchport access vlan 10
spanning-tree portfast
!
interface FastEthernet0/11
description Enduser Ports in VLAN 20
switchport access vlan 20
spanning-tree portfast
!
Konfiguration eines HP Switches: (Router an Port 1, Endgeräte an Port 10-11 und 12-13)
HP_Switch#
interface 1
name "VLAN Tagged Link zum OpenWRT VLAN Router"
exit
vlan 10
name "VLAN-10"
untagged 10-11
tagged 1
exit
vlan 20
name "VLAN-20"
untagged 12-13
tagged 1
exit
Die IP Adressen hier im Beispiel sind
VLAN-10
IP Netz: 192.168.4.0 Maske:255.255.255.0
Router IP: 192.168.4.254
VLAN-20
IP Netz: 192.168.40.0 Maske:255.255.255.0
Router IP: 192.168.40.254
Einstellen des DHCP Servers auf Tagged Interfaces:
Analog zur Beschreibung der DHCP Server Aktivierung sehen dann die DHCP Server Beispieldateien für die beiden VLANs 10 und 20 so aus:
VLAN 10
root@midge:/etc# cat udhcpd-eth4-10.conf
interface eth4.10
max_leases 50
opt subnet 255.255.255.0
opt dns 192.168.7.254
opt router 192.168.4.1
# opt wins 192.168.4.100
opt domain router.local
# opt tftp 192.168.4.100
# Static addresses:
# static_lease 00:00:21:D1:C6:1E 192.168.4.2
# static_lease 00:03:47:CA:70:C4 192.168.4.3
# static_lease 00:50:22:8C:FF:A8 192.168.4.4
# Dynamic addresses:
start 192.168.4.10
end 192.168.4.20
root@midge:/etc# cat udhcpd-eth4-20.conf
interface eth4.20
max_leases 50
opt subnet 255.255.255.0
opt dns 192.168.7.254
opt router 192.168.40.1
# opt wins 192.168.4.100
# opt domain router.local
# opt tftp 192.168.4.100
# Static addresses:
# static_lease 00:00:21:D1:C6:1E 192.168.5.2
# static_lease 00:03:47:CA:70:C4 192.168.5.3
# static_lease 00:50:22:8C:FF:A8 192.168.5.4
# Dynamic addresses:
start 192.168.40.10
end 192.168.40.20
Dynamisches Routing mit RIP, OSPF, BGP
Manchmal muss man so einen Router in eine Umgebung mit dynamischen Routing integrieren. Auch das ist kein Problem mit diesem Router, denn dafür gibt es das Zebra/Quagga Routing Tool das einen dynmaischen Router mit RIP(v2), OSPF oder BGP installiert.Dafür geht man folgendermaßen vor: (Beispiel hier mit dem Routing Protokoll OSPF)
Mit
ipkg install quagga
und
ipkg install quagga-ospfd (Wenn man RIP(v2) benötigt ist das ipkg install quagga-ripngd )
installiert man wie gehabt online die relevanten Pakete fürs dynamische Routing das dann alle Verzeichnisse und .conf Dateien einrichtet.
Leider richtet das Install Tool das Konfig Verzeichnis mit falschem Owner ein so das etwas Handarbeit gefordert ist um das zu korrigieren !
Ein chown quagga.quagga /etc/quagga und chmod 766 /etc/quagga/*.conf korrigiert das Problem umgehend.
Nun kann man den Router mit
zebra -d
und
ospfd -d
starten.
Sehr bequem ist bei Zebra/Quagga das der Router eine Cisco Command Line Oberfläche hat zum Konfigurieren was für viele das Konfigurieren erheblich vereinfacht. Diese Cisco Oberfläche erreicht man mit dem folgenden Kommando innerhalb der OpenWRT Konsole auf dem Router:
nc localhost 2604 (Default Passwort quagga !)
Natürlich kann man die Router Konsole einfacher auch direkt von außen per Telnet erreichen mit z.B.demm allseits bekannten Putty indem man die IP des Routers und den Zielport gemäß unten stehender Portliste eingibt:
Ein Telnet Connect auf die IP des Routers mit dem Zielport 2604 (OSPF) ergibt dann dieses Bild:
Die anderen Zugriffsports lauten folgendermaßen:
zebra: 2601
ripd: 2602
ripng: 2603
ospfd: 2604
bgpd: 2605
ospf6d: 2606
Hier kann man jetzt den Hostnamen neu setzen, das Passwort anpassen und die OSPF Konfig vervollständigen.
Mit
network 192.168.7.0/24 area 0.0.0.0
network 192.168.3.0/24 area 0.0.0.0
network 192.168.4.0/24 area 0.0.0.0
setzt man die Netzwerke .7.0 (eth0/WAN) .3.0 (eth3) und .4.0 (eth4) in die OSPF Area 0 und propagiert dort die Routen.
Mit wr sichert man diese Konfiguration und schon ist der OSPF Router betriebsbereit.
Will man RIP nutzen startet man einfach den RIP Daemon statt des OSPF Daemons.
Die Router Konfiguraton ist analog zur Cisco Syntax so das man sich eng daran halten kann um das System auf seine Belange anzupassen.
Mit dem Hilfsmitteln ? und der TAB Taste kann man im Menü navigieren wie auf einem Cisco Router.
Sind die Konfig Dateien geschrieben sichert man diese mit
cp /etc/quagga/ospfd.conf /etc/quagga/ospfd.conf.sav
cp /etc/quagga/zebra.conf /etc/quagga/zebra.conf.sav
damit sie bei der erneuten Installation nach z.B. einem Reboot nicht überschrieben werden !
Dann mit flash save im Flash sichern !
Leider ist das Flash System des Routers wieder zu klein um das Routing Paket zu sichern, deshalb bastelt man sich wie unten bei der OpenVPN Erweiterung eine kleine Start Datei in /etc/start-router die man mit chmod a+x danach ausführbar macht !
So sieht sie aus:
#!/bin/sh
ipkg install quagga
ipkg install quagga-ospfd
chown quagga.quagga /etc/quagga
cp /etc/quagga/ospfd.conf.sav /etc/quagga/ospfd.conf
cp /etc/quagga/zebra.conf.sav /etc/quagga/zebra.conf
zebra -d
ospfd -d
Nach einem Reboot des Routers kann man dann mit /etc/start-router den OSPF Router starten.
Soll diese automatisch bei Systemstart passieren kopiert man diese Datei einfach als S97router ins Verzeichnis /etc/init.d/
Hier die Outputs in einem LAN mit einem Cisco Router:
LowCost Router:
root@midge:/etc# nc localhost 2604
Hello, this is Quagga (version 0.98.5).
Copyright 1996-2005 Kunihiro Ishiguro, et al.
User Access Verification
Password: Geheim
edimax> ena
ena
router# sh ip ospf neigbor
Neighbor ID Pri State Dead Time Address Interface RXmtL RqstL DBsmL
192.168.7.169 1 Full/DR 00:00:31 192.168.7.169 eth0:192.168.7.1 0 0 0
edimax#
Cisco Router:
Cisco#sh ip ospf nei
Neighbor ID Pri State Dead Time Address Interface
1.7.168.192 1 FULL/BDR 00:00:33 192.168.7.1 Ethernet1
Cisco#
Aktivieren eines OpenVPN Servers
Eigentlich ist der Router mit dem Abschluss der o.a. DHCP Konfiguration fertig zum Ensatz als Router in LAN und VLAN Umgebungen.Man kann ihm aber bei Bedarf auf noch zusätzlich einen VPN Server einpflanzen der den remoten Zugriff auf lokale Recourcen in diesen Netzen erlaubt für externe Benutzer.
Die OpenVPN Aktivierung lehnt sich an das hier im Forum bereits bestehende Tutorial zur Aktivierung eines OpenVPN Servers auf Routern mit der alternativen dd-wrt Firmware oder der kostenfreien Firewall Pfsense:
OpenVPN Server installieren auf pfSense Firewall, Mikrotik. DD-WRT oder GL.inet Router
Etwas ganz wichtiges für OpenVPN vorweg: Das OpenVPN Paket von Midge hat einen Bug mit der Verwendung von Zertifikaten !!! Nicht so das OpenVPN Paket aus dem Whiterussian OpenWRT Repository. Damit man das RICHTIGE Paket lädt sind vorher ein paar kleine Änderungen zu machen:
- Datei /etc/ipkg.conf editieren.
- Zeile mit src kamikaze http:/midge.... mit einem "#" einkommentieren !
- Zeile die mit #src whiterussian.... begint durch Entfernen des "#" aktivieren !
- mit "flash save" sichern.
- ipkg update aufrufen.
- Fertig, nun wird das richtige bugfreie OpenVPN Paket geladen...
Da das Flash zum Schreiben des OpenVPNs zu klein ist muss das OpenVPN Paket beim Starten nachgeladen werden. Es ist also wichtig eine bestehende Internet Verbindung zu haben !
Alle OpenVPN relevanten Dateien finden Platz im Verzeichnis /etc/openvpn, das man sich nachdem man den Router per Putty und SSH verbunden hat mit dem Kommando mkdir /etc/openvpn.
Um das Nachladen zu automatisieren erzeugt man sich hier nun mit dem vi ein Startscript start-openvpn.
#!/bin/sh
mkdir /dev/net
mknod /dev/net/tun c 10 200
sleep 3
ipkg install openvpn
ipkg install ntpclient
ntpclient -s -h de.pool.ntp.org
openvpn --config /etc/openvpn/server.conf --daemon
Wichtig sind nun noch die Zertifikate die man sich aber ganz einfach mit der Anleitung HIER bei OpenVPN.net mit dem Windows Client im Verzeichnis /easy-rsa erzeugt.
Die 4 Dateien im Windows OpenVPN Verzeichnis /keys die für den Server bestimmt sind:
ca.crt
dh1024.pem
server.crt
server.key
..kopiert man dann ganz einfach mit WinSCP auf den Router ins Verzeichnis /etc/openvpn/ !
(Achtung WinSCP muss beim Verbinden auf SCP only eingestellt sein !)
Nun noch das Konfigurations Profil für den OpenVPN Server mit dem vi auf dem Router erstellen:
port 1194
proto udp
dev tun0
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh1024.pem
server 172.16.2.0 255.255.255.0
push "route 192.168.4.0 255.255.255.0"
keepalive 10 120
comp-lzo
persist-key
persist-tun
verb 3
(IP Adressen nach lokalen Bedingungen anpassen !)
Und einem ersten Test steht nichts mehr im Wege !
Man sollte zuerst händisch den Server starten im zu sehen das er fehlerfrei hochfährt.
Das macht man mit dem Kommando openvpn --config /etc/openvpn/server.conf.
Der Output sollte dann folgendermaßen aussehen:
root@midge:/etc/openvpn# openvpn --config server.conf
Sat Jul 18 23:20:26 2009 OpenVPN 2.0.8 mipsel-linux [SSL] [LZO] [EPOLL] built on Jan 30 2007
Sat Jul 18 23:20:26 2009 Diffie-Hellman initialized with 1024 bit key
Sat Jul 18 23:20:26 2009 TLS-Auth MTU parms [ L:1542 D:138 EF:38 EB:0 ET:0 EL:0 ]
Sat Jul 18 23:20:26 2009 TUN/TAP device tun0 opened
Sat Jul 18 23:20:26 2009 /sbin/ifconfig tun0 172.16.2.1 pointopoint 172.16.2.2 mtu 1500
Sat Jul 18 23:20:26 2009 /sbin/route add -net 172.16.2.0 netmask 255.255.255.0 gw 172.16.2.2
Sat Jul 18 23:20:26 2009 Data Channel MTU parms [ L:1542 D:1450 EF:42 EB:135 ET:0 EL:0 AF:3/1 ]
Sat Jul 18 23:20:26 2009 UDPv4 link local (bound): [undef]:1194
Sat Jul 18 23:20:26 2009 UDPv4 link remote: [undef]
Sat Jul 18 23:20:26 2009 MULTI: multi_init called, r=256 v=256
Sat Jul 18 23:20:26 2009 IFCONFIG POOL: base=172.16.2.4 size=62
Sat Jul 18 23:20:26 2009 Initialization Sequence Completed
Ist das der Fall ist alles funktionsbereit !
WICHTIG: Alles noch einmal sichern mit flash save !!!
Nun den Router rebooten indem man aus- einschaltet.
Jetzt kann man den Router mit /etc/openvpn/start-openvpn komplett starten, der OpenVPN Server ist dann als Daemon aktiv.
Natürlich ist das auf die Dauer etwas nervig immer manuell den VPN Server per SSH Login starten zu müssen.
Es geht natürlich auch bequemer !!
Das Kommando cp /etc/openvpn/start-openvpn /etc/init.d/S96openvpn kopiert das Start Script als automatisches Startscript ins System so das es bei Systemstart automatisch ausgeführt wird.
WICHTIG: Alles wieder sichern mit flash save !!!
Eine Internet Verbindung vorausgesetzt, wird jetzt beim Einschalten der Server komplett automatisch installiert und gestartet und eine VPN Verbindung mit dem OpenVPN Client
Windows_Version
Mac_Version
ist im Handumdrehen aufgebaut !
Mit all diesen Optionen bekommt man fast so etwas wie eine eierlegende Wollmilchsau mit diesem Consumer System !
Wer dennoch nicht von den mannigfachen Möglichkeiten der Software überzeugt ist kann ganz einfach die original Edimax Firmware wieder zurückflashen:
Die Prozedur ist gleich wie der obige Flashvorgang mit XModem zu bewerkstelligen.
Allerdings muss man zwingend die Edimax Firmware Datei mit der Endung EDIxyz.bin zuvor in die Endung EDIxyz.bin.csys umbenennen damit sie vom Flash erkannt wird.
Letzte Änderung 05/2010
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 60574
Url: https://administrator.de/contentid/60574
Ausgedruckt am: 21.11.2024 um 17:11 Uhr
1 Kommentar