ISDN Konfigurasjon i Linux

 

Første trinn er å installere ISDN-programmene. Disse ligger i en pakke som heter isdn4k-utils-2.0.tar.gz (eller nyere versjon). Denne ligger på ftp://ftp.franken.de/pub/isdn4linux/. Det kan være litt problematisk å få kompilert alle programmene som følger med denne pakken. Du må ha disse: ipppd og isdnctrl. Hvis kompileringen kræsjer, så kan du kopiere disse manuelt til /sbin katalogen. Husk å kjør "make devices" for å lage device filene som brukes i forbindelse med ISDN. Se forøvrig README-filen som følger med for mer hjelp angående installasjon av disse programmene.

Installering av ISDN-drivere

Her kan man velge mellom to forskjellige drivere: den gamle Teles driveren, eller den nyere HiSax driveren. HiSax driveren er en mer generell driver, med støtte for flere forskjellige typer ISDN-kort. Teles driveren følger med alle kjerner opp til og med 2.0.30. For å bruke HiSax driveren må en patch installeres mot 2.0.30 kjernen. Installasjon av Teles-driveren kan du lese mer om i den gamle versjonen av dette dokumentet. Denne siden tar kun for seg den nyere HiSax driveren. HiSax patch for kjerne 2.0.30 finnes på ftp://ftp.franken.de/pub/isdn4linux/v2.0/.

Dette oppsettet benytter moduler og kjerne v2.0.30 med en patch installert. Fordelen med å bruke en modul-basert kjerne er at driverne kan lastes flere ganger uten at man behøver å boote. ISDN-kortet er et Teles 16.3 ISDN-kort (ikke PnP).

Driverne slhc.o og isdn.o må være lastet, i tillegg til synkron PPP støtte. Scriptet isdn-driver.sh under vil laste HiSax-driveren. Parameterne til modprobe vil fungere på et 16.3-kort. Hvis du har et Teles-kort av an annen type, så må parameterne tilpasses dette. Se manualen for hvilket oppsett kortet ditt støtter. IO-adresse settes med en dip-switch på selve kortet, mens interrupt kan velges fritt. Unngå å bruke interrupt 15 på maskiner med 2 integrerte ide-kontrollere (dvs, ikke bruk irq 15 på Pentium- og nye 486-maskiner). For å se hvilke interrupter som er i bruk, kjør "cat /proc/interrupts".

isdn-driver.sh

-

#!/bin/bash

 

#load HiSax-driver configured for Teles 16.3 card

/sbin/modprobe hisax type=3 protocol=2 io=0x180 irq=15 id=teles_1

 

-

En indikasjon på at driveren fungerer som den skal, kan du se i /var/log/messages (evnt. /var/adm/messages). Se etter følgende linjer:

Jul 27 13:08:13 brutus kernel: HiSax: Revisions 1.14/1.10/1.10/1.29/1.8

Jul 27 13:08:13 brutus kernel: HiSax: Card 1 Protocol EDSS1 Id=teles_1 (0)

Jul 27 13:08:13 brutus kernel: HiSax: Teles IO driver Rev. 1.11

Jul 27 13:08:13 brutus kernel: HiSax: Teles 16.3 config irq:15 isac:980 cfg:d80

Jul 27 13:08:13 brutus kernel: HiSax: hscx A:180  hscx B:580

Jul 27 13:08:13 brutus kernel: Teles3: HSCX version A: V2.1  B: V2.1

Jul 27 13:08:13 brutus kernel: Teles3: ISAC 2086/2186 V1.1

Jul 27 13:08:13 brutus kernel: HiSax: DSS1 Rev. 1.15

Jul 27 13:08:13 brutus kernel: HiSax: 2 channels added

Jul 27 13:08:13 brutus kernel: HiSax: module installed

Denne driveren vil gi feilmeldinger hvis kortet ikke blir funnet, i motsetning til den gamle Teles-driveren. Se README-filen for HiSax-driveren for hvilke parametere den tar, og hvilke andre ISDN-kort driveren støtter.

Konfigurasjon av ISDN for dial-out - en kanal

Denne konfigurasjonen bruker PAP som autentisering, og det fungerer mot oppsettet av dial-in under. Det fungerer også mot Telenor Internetts ISDN-servere. VJ header-kompresjon brukes hvis serveren man ringer støtter dette.

Valg av lokalt IP-nummer er dynamisk og blir bestemt av serveren du ringer til. Dette gjelder også IP-nummer til gateway. De oppgitte IP-nummerne under er dummy-number, som brukes inntil oppkoblingen er aktiv. Dette var ikke tilfelle med oppsettet på den gamle versjonen av dette dokumentet.

isdn-config1.sh

-

#!/bin/sh

 

# isdn-configuration script by tommy@break.org

# 27. Jul. 1997

# needs pre-configured Teles-card, /etc/ppp/pap-secrets for authentication

 

USERNAME="someone"

LOCAL_NUMBER="88888888"

REMOTE_NUMBER="99999999"

LOCAL_IP="1.1.1.1"               #dummy IP

REMOTE_IP="10.10.10.10" #dummy IP

DEVICE="ippp0"

 

# turn on debugging, 64 is full debugging

/sbin/telesctrl teles_1 1 64

 

/sbin/isdnctrl addif $DEVICE             # Create ISDN device

/sbin/isdnctrl addphone $DEVICE out $REMOTE_NUMBER   # Set outgoing phone-number

/sbin/isdnctrl eaz $DEVICE $LOCAL_NUMBER             # Set local EAZ .. 

/sbin/isdnctrl l2_prot $DEVICE hdlc      # for sync PPP: set Level 2 to HDLC

/sbin/isdnctrl l3_prot $DEVICE trans     # not really necessary, 'trans' is default

/sbin/isdnctrl encap $DEVICE syncppp     # encap the IP Pakets in PPP frames

/sbin/isdnctrl huptimeout $DEVICE 600    # Hangup-Timeout

/sbin/isdnctrl chargehup $DEVICE off     # Hangup before next Charge-Info

/sbin/isdnctrl secure $DEVICE off        # Accept only configured phone-number

 

/sbin/ifconfig $DEVICE $LOCAL_IP pointopoint $REMOTE_IP netmask 255.255.255.0

/sbin/route add default ippp0

 

/sbin/ipppd \

        user $USERNAME \

        :$REMOTE_IP \

        ipcp-accept-remote \

        ipcp-accept-local \

        noipdefault \

               defaultroute \

        -bsdcomp \

               passive \

        debug \

        /dev/ippp0 &

-

En oppringning vil bli foretatt hvis ekstern nettaktivitet settes i gang. Hvis linjen "/sbin/route add default ippp0" sløyfes, vil en oppringning bare bli foretatt når "isdnctrl dial ippp0" kjøres. Når forbindelsen er aktiv, vil ipppd selv legge til en default-route.

Konfigurasjon av ISDN for dial-out - to kanaler (channel bundling)

Dette oppsettet er likt med eksempelet over. I tillegg benytter det to kanaler, slik at overføringshastigheten blir 128 kbps. Oppsettet er testet mot Telenor Internetts ISDN-servere. Legg merke til den ekstra opsjonen "+mp" til ipppd. Denne muliggjør sammenslåing av flere kanaler.

isdn-config2.sh

-

#!/bin/sh

 

# isdn-configuration script by tommy@break.org

# 28. Jul. 1997

# needs pre-configured Teles-card, /etc/ppp/pap-secrets for authentication

 

LOCAL_NUMBER="88888888"

REMOTE_NUMBER="99999999"

LOCAL_IP="1.1.1.1"       #dummy IP

REMOTE_IP="10.10.10.10"        #dummy IP

DEVICE="ippp0"

SLAVE="ippp1"

 

/sbin/isdnctrl addif $DEVICE

/sbin/isdnctrl addphone $DEVICE out $REMOTE_NUMBER

/sbin/isdnctrl eaz $DEVICE $LOCAL_NUMBER

/sbin/isdnctrl l2_prot $DEVICE hdlc

/sbin/isdnctrl l3_prot $DEVICE trans

/sbin/isdnctrl encap $DEVICE syncppp

/sbin/isdnctrl huptimeout $DEVICE 600

/sbin/isdnctrl chargehup $DEVICE off

/sbin/isdnctrl secure $DEVICE off

 

# configure slave device

/sbin/isdnctrl addslave $DEVICE $SLAVE

/sbin/isdnctrl addphone $SLAVE out $REMOTE_NUMBER

/sbin/isdnctrl eaz $SLAVE $LOCAL_NUMBER

/sbin/isdnctrl l2_prot $SLAVE hdlc

/sbin/isdnctrl l3_prot $SLAVE trans

/sbin/isdnctrl encap $SLAVE syncppp

/sbin/isdnctrl huptimeout $SLAVE 600

/sbin/isdnctrl chargehup $SLAVE off

/sbin/isdnctrl secure $SLAVE off

 

/sbin/ifconfig $DEVICE $LOCAL_IP pointopoint $REMOTE_IP netmask 255.255.255.0

/sbin/route add default ippp0

 

/sbin/ipppd +mp \

        user oblarsen \

        :$REMOTE_IP \

        ipcp-accept-remote \

        ipcp-accept-local \

        noipdefault \

               defaultroute \

        -bsdcomp \

               passive \

        debug \

        /dev/ippp0 /dev/ippp1 &

-

Konfigurasjon av ISDN for dial-in

Dette oppsettet bruker PAP som autentisering. IP-nummerne 192.168.0.1 og 192.168.0.2 byttes ut med henholdsvis serverens IP-nummer og det IP-nummer som skal tildeles påkoblede maskiner. VJ header-kompresjon benyttes hvis mulig. Flere noder legges til ved å definere ippp[1-X]. Disse legges så til på slutten av kommandolinjen til ipppd slik som ippp0 under.

isdn-config3.sh

-

#!/bin/bash

 

# isdn-configuration script by tommy@break.org

# 27 Jul. 1997

# needs pre-configured Teles-card, /etc/ppp/pap-secrets for authentication

 

LOCAL_NUMBER="88888888"

LOCAL_IP="192.168.0.1"   # servers IP-nummer

REMOTE_IP="192.168.0.2"  # tildelt IP-nummer

DEVICE="ippp0"

 

# turn on debugging, 64 is full debugging

/sbin/telesctrl teles_1 1 64

 

# configure devices for dialin

echo "Configure device ippp0 for dialin"

/sbin/isdnctrl addif $DEVICE

/sbin/isdnctrl eaz $DEVICE $LOCAL_NUMBER

/sbin/isdnctrl addphone $DEVICE in "*"

/sbin/isdnctrl l2_prot $DEVICE hdlc

/sbin/isdnctrl l3_prot $DEVICE trans

/sbin/isdnctrl encap $DEVICE syncppp

/sbin/isdnctrl secure $DEVICE off

/sbin/isdnctrl huptimeout $DEVICE 600

/sbin/ifconfig ippp0 $LOCAL_IP pointopoint $REMOTE_IP netmask 255.255.255.0

/sbin/route add -host $REMOTE_IP ippp0

 

# run ipppd, listens for incoming calls

/sbin/ipppd useifip debug auth +pap -bsdcomp debug proxyarp /dev/ippp0

-

Dial-in oppsettet er testet mot følgende maskinvare/programvare:

Oppsettet støtter ikke sammenslåing av flere kanaler.

Konfigurasjon av PAP

Passord/login for PAP (Password Authentication Protocol) settes opp med filen /etc/ppp/pap-secrets. Et eksempel på en slik fil kan være:

# Secrets for authentication using PAP

# client     server               secret                             IP addresses

brukernavn               *               passord

Lag en slik fil, hvor du putter inn ditt brukernavn og passord. Mer informasjon om PAP finnes i manualsiden til ipppd/pppd.

Justering av ISDN-oppsett

Programmet isdnctrl kontrolerer en rekke parametere for hvordan ISDN-systemet oppfører seg. Dette programmet benyttes også, som over, til å sette opp ISDN-systemet. Her følger noen eksempler:

isdnctrl list ippp0 - Vis status til ippp0
isdnctrl dialmax 3 - Ring opptil tre ganger for å oppnå forbindelse
isdnctrl sdelay ippp0 10 - Vent 10 sekunder før slave-interface kobles opp
isdnctrl dial ippp0 - Tving interface ippp0 til å ringe opp