MiniHowTo für fli4l mit DHCP-Client und ISDN [V2.0.8]

 

TWIMC:

Dieses HowTo richtet sich an alle, die fli4l als kombinierten DHCP-Client- und ISDN-Router nutzen wollen.

 

Einleitung:

Mit steigender Tendenz bieten ISPs den Internetzugang als Ethernetlösung mit DHCP an. In vorliegenden Fall ein WLAN-Provider (DSL-on-Air, Deutsche Breitband Dienste GmbH - der Name ist so luftig wie trügerisch, es wird kein DSL, also PPP.. angeboten sondern reines, unverpacktes TCP/IP), der die Anbindung ans "schnelle Internet" (i.d.R. in Ermangelung einer DSL-Versorgung durch die Telekom) auch "auf dem Lande" ermöglicht. Aber auch in der Stadt macht das Konzept Sinn, denn WLAN-Internet ist mitunter schneller als das ADSL von T und Konsorten; außerdem ist man an ein Kabel nicht gebunden, also flexibel. Dazu stellt der ISP einige Hot Spots (APs), die man entweder direkt mit einer WLAN-Karte, einem externen WLAN-Adapter über z.B. USB, oder wie im vorliegenden Fall über eine externe WLAN-EthernetLAN-Bridge anzapfen kann. 
Der in der Regel schon vorhandenen ISDN Zugang kann auch weiterhin für andere Dienste genutzt werden (T-Mail, Banking über Classic-Gate, etc.), man hat zudem einen Reserve-Zugang ins WWW und braucht auch auf die Funktionalität des Imonc (Telmond, Fax, etc.) nicht ganz zu verzichten.  

 

Problemstellung:

Der DHCP-Client wird verwendet, um eine IP-Adresse für ein Interface des Routers zu beziehen. Auf der Netzbetreiberseite läuft ein DHCP-Server, welcher der am WLAN hängenden NIC eine IP zuteilt. Beim Start des Routers wird über das angegebene Interface eine IP-Adresse bezogen, dem Interface zugewiesen und die Default Route auf dieses Interface gelegt. Das eigentliche Problem besteht darin, dass sich der DHCP-Client nicht als Circuit konfigurieren lässt. Will man also zusätzlich ISDN-Routing benutzen, dann wird dort ein Circuit eingerichtet, der die Default Route auf das ISDN-Interface legt. Ein Zurück gibt es nicht mehr, weil für den DHCP-Client kein Circuit eingerichtet werden kann. 

 

Lösung: 

Die Lösung besteht nun darin, einen zweiten ISDN-Circuit als Dummy anzulegen und die dort hinterlegte Default Route auf das DHCP-Client Interface zu lenken. Durch diesen "Trick" kann man im Hauptfenster des Imonc auf der Seite 'Überblick' unter der Auswahlliste 'Default Route' den Dummy-Circuit (für DHCP) oder den ISDN-Circuit manuell auswählen. 

 

Hardware:

WLAN:
Wie bereits oben angedeutet, gibt es multiple Möglichkeiten, die WLAN Hot Spots anzuzapfen. Das vorliegende HowTo beschreibt nur die Konfiguration mittels WLAN-EthernetLAN-Bridge und Ethernet NIC als DHCP-Client. (Anm.: Die hier vorgestellte Lösung bietet eine kostengünstige und einfache Installation und dürfte sich von daher in vielen Fällen anbieten. - Es geht bei Bastlers aber auch anders, abhängig in erster Linie davon, was im Hobbykeller noch zu finden ist ;-).
Für die hier beschriebene Lösung werden benötigt :

ISDN und Übriges:
Keine Besonderheiten. Benötigt werden :

(techn. Anforderungen siehe Dokumentation)

 

Konfiguration:

Folgende Pakete sind erforderlich (zusätzliche nach Wunsch :-))):

Alle Einstellungen, die in diesem HowTo nicht erwähnt werden, sind gemäß Anleitung abzuarbeiten.

===> base.txt

#------------------------------------------------------------------------------
# Additional routes, optional
#------------------------------------------------------------------------------
IP_DEFAULT_GATEWAY='xxx.xxx.xxx.xxx'
IP_ROUTE_N='1'
IP_ROUTE_1='0.0.0.0 255.255.255.000 xxx.xxx.xxx.xxx' # network netmask gateway

In die Variable IP_DEFAULT_GATEWAY wird die Gatewayadresse des  WLAN Interface eingetragen. Da wir diese Adresse an mehreren Positionen verwenden, wird sie hier als xxx.xxx.xxx.xxx dargestellt. Wie wir diese Adresse ermitteln,  dazu später mehr unter Konfiguration vervollständigen.
Erst einmal für alle xxx.xxx.xxx.xxx die 192.168.200.1 schreiben. (Wenn Sie dieses Netz als LAN benutzen, suchen Sie sich eine andere Kombination aus.)
IP_ROUTE_N='1' - d.h. wir richten eine zusätzliche Route für den DHCP-Client ein.
IP_ROUTE_1='0.0.0.0 255.255.255.yyy xxx.xxx.xxx.xxx' Zunächst wird mit 0.0.0.0 die Default Route festgelegt. Es folgt die Netzmaske und schließlich wieder die Gatewayadresse. Die Notation der Netzmaske - hier als 255.255.255.yyy dargestellt - werden wir später unter Konfiguration vervollständigen ermitteln. 

#----------------------------------------------------------------------------
# Domain configuration:
#----------------------------------------------------------------------------

DNS_FORWARDERS='xxx.xxx.xxx.xxx.'

Hier wird die IP des DNS-Servers des WLAN-Providers angegeben. Die kann man beim Provider erfragen. Es genügt aber auch, die Gatewayadresse einzugeben. Der in fli4l implementierte ENS (DNS-Server) aktualisiert automatisch.

(Anm.: Bei einigen Providern (nicht bei DSL-on-Air) soll es Probleme mit der Namensauflösung (DNS-Quellport 53 geschlossen) geben.  In diesem Fall ist auf fli4l ein alternativer DNS-Server zu betreiben. Dann bleibt DNS_FORWADERS leer. Details hierzu: MiniHowTo fli4l und DHCP-Provider)

#----------------------------------------------------------------------------
# imond configuration:
#----------------------------------------------------------------------------
START_IMOND='yes'                    

Imond starten: Ja! Wir wollen den Imonc nutzen. Weitere Einstellungen nach Wunsch.

#----------------------------------------------------------------------------
# Generic circuit configuration:
#----------------------------------------------------------------------------
DIALMODE='manual'

Beim DHCP-Client wird nicht gewählt. Es besteht eine dauerhafte TCP/IP Verbindung. 
Die hier gewählte Einstellung 'manuelle Wahl' verhindert ein versehentliches Einwählen beim ISDN-Provider (ohne Flatrate kann das sehr teuer werden).

Weiter wird empfohlen syslogd und klogd einzuschalten. Hier gibt es wichtige Infos. Wenn später alles glatt läuft, kann man wieder abschalten.

===> dhcp.txt 

#------------------------------------------------------------------------------
# Optional package: DHCPCD ------- EXPERIMENTAL --------
#------------------------------------------------------------------------------
OPT_DHCPCD='yes'                 
DHCPCD_INTERFACES='eth1'        
DHCPCD_USEPEERDNS='yes'

Wir stören uns nicht am "Experimentstatus" und benutzen aus dem Paket den DHCPCD Dämonen, deshalb OPT_DHCPCD='yes'. Server und Client bleiben aus.
In der Variablen DHCPCD_INTERFACES wird festgelegt, welche Netzwerkkarte mit der Bridge verbunden ist und vom DHCP-Client für TCP/IP konfiguriert wird. Bei 2 NICs im Router ist dies die zweite Karte (eth1). Die erste NIC (eth0) ist das LAN Interface.
Mit DHCPCD_USEPEERDNS='yes'  wird der vom ISP übergebene DNS als Forwarder für den DNS auf dem Router verwendet - erster wurde dafür aktiviert  - siehe base.txt.

===> isdn.txt

#----------------------------------------------------------------------------
# Optional package: ISDN
#----------------------------------------------------------------------------
OPT_ISDN='yes' 

ISDN: Ja! Restliche Einstellungen nach Kartentyp und Vorgaben

#----------------------------------------------------------------------------
# ISDN Circuits:
#----------------------------------------------------------------------------
ISDN_CIRCUITS_N='2' 

Es werden 2 ISDN Circuits generiert. Der erste zum ISDN-Provider, der zweite als Dummy für den DHCP-Client.

#----------------------------------------------------------------------------
# Circuit 1: ISDN-Provider
#----------------------------------------------------------------------------
...
ISDN_CIRC_1_TIMES='Mo-Su:00-24:0.0:n'

. . . Alle Einstellungen lt. Dokumentation
In ISDN_CIRC_1_TIMES wird der 4. Parameter auf "n" gestellt. Damit legt der ISDN Circuit 1 (für die angegebene Zeit = ständig) nicht die Default Route fest. Er ist aber (jederzeit) im Imonc unter 'Default Route' manuell wählbar. Ebenso wie der jetzt noch zu konfigurierende Circuit 2.

#----------------------------------------------------------------------------
# Circuit 2: Dummy für DHCP-Client
# 
#----------------------------------------------------------------------------
ISDN_CIRC_2_NAME='DSL-on-Air' 
ISDN_CIRC_2_USEPEERDNS='no' 
ISDN_CIRC_2_LOCAL='' 
ISDN_CIRC_2_REMOTE='' 
ISDN_CIRC_2_ROUTE='0.0.0.0' 
ISDN_CIRC_2_DIALOUT='' 
ISDN_CIRC_2_DIALIN='' 
ISDN_CIRC_2_EAZ='' 
ISDN_CIRC_2_HUP_TIMEOUT='1' 
ISDN_CIRC_2_CHARGEINT='0' 
ISDN_CIRC_2_TIMES='Mo-Su:00-24:0.0:y'

ISDN_CIRC_2_NAME gibt den Namen des ISP an. Der erscheint dann im Imonc.
ISDN_CIRC_2_USEPEERDNS='no', denn wir nutzen den DNS Server über den DHCP-Client, das hier ist nur ein Dummy.
In ISDN_CIRC_2_Route wird die Default Route mit 0.0.0.0 festgelegt.
In ISDN_CIRC_2_TIMES wird der 4. Parameter auf "y" gestellt. Damit ist der ISDN Circuit 2 (für die angegebene Zeit = ständig) als Dummy für den DHCP-Client die erste Wahl (Automatic (LCR)).

===> Floppy erstellen und Router booten

Alle übrigen Einstellungen bitte entsprechend der Dokumentation erledigen. Jetzt kann die zum Booten des Routers erforderliche Diskette erstellt werden. Die WLAN-LAN-Bridge wird gemäß den Vorgaben des Providers konfiguriert und an die DHCP-Client NIC (eth1) angeschlossen. (Die Bridge arbeitet auf Schicht 2 des ISO-/OSI- Modells. Die Angabe einer IP ist deshalb fakultativ, aber zu Prüfzwecken -ping etc.- und zur Konfiguration unerlässlich.) Dann den Router hochfahren. 

===> Konfiguration vervollständigen

Jetzt ist noch die dem DHCP-Client zugewiesene IP und die Gatewayadresse zu ermitteln. Das machen wir an der Konsole des Routers, wer Telnet oder SSH aktiv hat, kann sich (wenn der Weg in den Keller zu lange ist) auch damit helfen. 
Auf der Shell den Befehl "route" eingegeben. Es erscheint die 'kernel routing tabel'. Hier ist jetzt die eth1 (DHCP-Client NIC) zwei mal gelistet. Wir interessieren uns nur für den Eintrag, bei dem unter 'Destination' die 0.0.0.0 (default) steht. Die in der gleichen Zeile angezeigte 'Gateway'(adresse) enthält die gesuchte IP xxx.xxx.xxx.xxx. Die so ermittelte Adresse bitte notieren und später in die Variablen IP_DEFAULT_GATEWAY, IP_ROUTE_1, DNS_FORWARDERS (base.txt) anstatt der vielen x eingetragen.
Jetzt auf der Shell den Befehl "ifconfig eth1" eingeben. Unter 'inet addr' erscheint die dem DHCP-Client zugewiesene IP-Adresse (bitte zur eigenen Kenntnis notieren - man weiß nie, wofür man die gebrauchen kann?!), dahinter die 'Broadcast'(adresse) und schließlich unter 'Mask' die gesuchte Subnetzmaske (bitte notieren). Die Maske später unter IP_Route_1 (base.txt) - bisher 255.255.255.000 -  eingetragen. Und wenn wir schon dabei sind, können wir auch noch die Hardwareadresse (MAC) von eth1 notieren. (Die ISP haben gerne vollständige Unterlagen über die an Ihr Netz kontaktierten Interfaces.) 
Mit den vervollständigten Einstellungen entweder eine neue Diskette erstellen oder per FernUpdate über den Imonc den Router neu booten.

Finito la musica!

 

Bedienung, Funktionalität:

Wie bereits oben ausgeführt, kann man den Router nun über den Imonc auf der Seite 'Überblick' unter der Auswahlliste 'Default Route' hinsichtlich der gewünschten Internetverbindung fern bedienen. (Abhängig von den Einstellungen der Variablen IMOND_DIAL und IMOND_ROUTE  im User- bzw. Admin-Modus.)  
Eine aktive Verbindung über den DHCP-Client (kein Circuit) wird im Verbindungsfenster nicht angezeigt und auf der Seite Verbindungen auch nicht protokolliert . Es erscheint folglich auch keine gelbe oder grüne LED (Verbindungsstatus) und auch kein Farbwechsel im Tray-Icon. Auch kann man den Email-Check außerhalb eines Circuits nicht benutzen. Darüber hinaus hat der Verfasser keine wesentlichen Veränderungen feststellen können. 

 

Hinweise:

Mit ähnlichen Themen beschäftigen sich die nachfolgend gelinkten HowTos
MiniHowTo fli4l und DHCP-Provider
und 
MiniHowTo fli4l als LAN-Router mit manuellem Fallback auf DSL/ISDN
Zur Vervollständigung bereits vorhandener Einsichten wird die Literatur dieser Werke empfohlen. 
Alle weiteren Infos bitte der Dokumentation und den entsprechenden HowTos entnehmen.

Viel Spaß im schnellen Internet mit fli4l !

2005/01/18 - Ergänzungen, Fehlerreports oder Kommentare bitte an: Karl M. Weckler

Klicken Sie hier, um die Seite auszudrucken.