Internet via ISDN unter FreeBSD

    2. Fassung, September 2001, FLorian Heigl

Dies hier soll einen transparenten Weg zur Einwahl zu einem beliebigen Internet - Provider bieten. Es wird hier der Weg ueber User-PPP gewaehlt, da sich dieses bequem steuern und einrichten laesst.

Ein kleiner Hinweis:

Unter freebsd-isdn@freebsd.org gibt es eine Mailinglist; falls (insbes. Hardware)probleme auftreten sollten, sind die Archive dieser Liste sehr, sehr empfehlenswert.

  1. Hardwarevorraussetzungen:

Eine unterstuetzte ISDN - Karte gehoert selbstverstaendlich dazu. Ausserdem muss bei Pre-PnP Karten auch auf eine entsprechende Freigabe der Ressourcen im BIOS des Computers geachtet werden.

Eine aktuelle Uebersicht der unterstuetzen ISDN - Karten findet sich in /sys/i386/conf/LINT . Eine Warnung: Beim momentanen Stand wird die AVM Fritz!PCI nicht als Version 2.0 unterstuetzt. Beim Kauf ggf. darauf achten. Es ist jedoch ein Linuxtreiber in seinen Anfaengen, so dass sie auch hier irgendwann unterstuetzt werden sollte.

2. Kerneloptionen:

Abweichend zum GENERIC - Kernel sind einige Optionen erforderlich:

#(S)PPP - Support:

pseudo-device   ppp     2               #Point-to-point protocol
pseudo-device           tun     2
pseudo-device   sppp


# Hardwaresupport
# Fuer die Einstellungen zur jeweiligen Karte bitte das LINT als Referenz nehmen # S0/16.3 options TEL_S0_16_3 device isic0 at isa? port 0xd80 irq 10 flags 3 # ISDN - Software / Treiber / Schnittstellen pseudo-device "i4bq921"
pseudo-device "i4bq931"
pseudo-device "i4b"
pseudo-device "i4btrc" 4
pseudo-device "i4bctl" pseudo-device "i4brbch" 4 #das brauchen wir gleich! pseudo-device "i4btel" 2 pseudo-device "i4bipr" 4 options IPR_VJ options IPR_LOG=32 pseudo-device "i4bisppp" 4 #EOF

3. isdnd Konfiguration

Der isdnD von Hellmuth Michaelis und die Kerneltreiber darumherum bieten alle Funktionen die wir brauchen. Ich lasse jetzt gezielt erstmal alle - tollen - Features aussen vor, in der /usr/share/doc/isdnd.rc.sample sind alle Optionen wie Anrufbeantworter usw. aufgelistet und vorkonfiguriert.

Die Konfiguration wird in der /etc/isdnd/isdnd.rc vorgenommen:

Die Sektion 'System' kann man im Originalzustand belassen, nur fuer eine evtl. Abrechnung sollte folgender Wert angepasst werden:

#---

ratesfile       = /etc/isdn/isdnd.rates.D 

#---

Nun kommt's zum ernsten Teil, als Beispiel habe ich hier mal Mobilcom eingestellt, einfach weil ich die Nummer im Kopf habe.

#=======================================================================
# entry section: PPP example
#====================================================================== entry name = userppp usrdevicename = rbch usrdeviceunit = 0 isdncontroller = 0 isdnchannel = -1 local-phone-incoming = *
remote-phone-incoming = *
local-phone-dialout = 183424 #Hier bitte die MSN, d.h. Rufnummer ohne Vorwahl eintragen remote-phone-dialout = 0101901929 dialin-reaction = ignore remdial-handling = first dialout-type = normal b1protocol = hdlc idletime-incoming = 240 idletime-outgoing = 30 ratetype = 0 unitlength = 90 unitlengthsrc = aocd dialretries = 3 dialrandincr = on recoverytime = 25 usedown = off downtries = 2 downtime = 30 #EOF

4. PPP Konfiguration

Noch ein paar Zeilen in die /etc/ppp/ppp.conf und - fertig. Das hier ist eine Standardkonfig. Spielerein wie MPPP _funktionieren_! Da mein Provider das aber AFAIK nicht anbietet, muss ich auf die zugehoerige Doku unter /usr/share/examples/ppp/ verweisen.

mobilcom_isdn:

# ISDN Raw PPP
 set    log local phase chat ipcp ccp tun command
 set    redial          10              4
 set    timeout         1800            300
 set    ifaddr          10.0.0.1/0      10.0.0.2/0
 add    default         HISADDR
 set    phone           0101901929
 set    authname        chucky
 set    authkey         I_eat_penguins 
 set    dial    
 set    login
 set    hangup
 # Waehle einfach den jeweils freien B Kanal.  
 set    device          /dev/i4brbch0   /dev/i4brbch1   
 set    speed           sync
 nat    enable          yes

 # Settings aus /usr/share/examples/ppp - Erforderlich!
 enable         lqr                     
 set            lqrperiod  45
 disable        pred1   deflate mppe

#End of section

papchap:

 set     AUTHNAME        chucky
 set     AUTHKEY         I_eat_penguins


# EOF
5. Aenderungen in /etc/rc.conf
ifconfig_isp0="inet 0.0.0.0 0.0.0.1 link1"

6. Einwahl

Fuer meine Zwecke reicht diese Loesung so aus:

echo "isdnd" >> /etc/rc.local
echo "ppp -auto default" >> /etc/rc.local

Mit den folgenden Settings wird ppp beim Booten betriebsbereit gemacht, sobald Traffic aufkommt, waehlt sich der Rechner ein und trennt die Verbidung - hoffentlich - nach der konfigurierten Zeit.

#rc.conf

isdn_enable="YES"
ppp_enable = "YES"
ppp_mode = "auto"
ppp_profile = "mobilcom_isdn"
ppp_user= "root"

mailto:Florian.NOSPAMHeigl@m4f.net

Ich hoffe, dem einen oder anderen hier mal weiterhelfen gekonnt zu haben, Florian.