Internetiin ISDN:n avulla


Yleistä, Tuetut kortit, Asentaminen, isdn-config , kisdn

Yleistä

(ISDN on tänä päivänä sen verran historiakamaa, että seuraavassa päivityksessä tämä sivu katoaa historiaosastolle...)

Modeemiyhteyden rinnalle kotikäytössä internet-yhteyksien ottamiseen on vihdoinkin yleistynyt isdn-yhteys. Linux oli pitkään järjestelmä, jossa ei kovin hyvää isdn-tukea ollut, mutta tänä päivänä asia on jo toisin. Käytännössä kaikki yleiset isdn-kortit ovat tuettuja Linuxissa.

Isdn-yhteyden luomiseksi tarvitaan Linuxiin ns. isdn4k-utilities-paketti. Tämä tulee nykyisin automaattisesti uusimpien Linux-jakelupakettien mukana, joten sitä ei enää tarvitse muualta etsiä. RedHatissa paketti on ollut mukanaaa 6.1-versiosta alkaen. Tämän dokumentin asennus on testattu RedHatin 6.2-versiossa, mutta kyseisen isdn4k-paketin asennuksen jälkeen tämä toimii aiemmissakin versioissa.

Suurin osa nykyisistä isdn-sovittimista on ns. passiivi-isdn-sovittimia ja näistäkin valtaosa kyseisen mallisia kortteja. Tällä sivulla asetetaan toimimaan juuri tällainen passiivi-isdn-kortti. Ohje ei sellaisenaan käy ulkoiselle sovittimelle. Nämä toimivat samoin kuten ulkoiset modeemit ja näiden kanssa tarvitaan siis ohjelma, joka osaa "matkia" modeemia.

Asennuksessa käytetyt skriptit perustuvat Pekka Koivusen muuntelemiin ja osoitteesta http://www.saunalahti.fi/pkoivune/ löytyviin skripteihin. Nuo ovat kuitenkin varsin yleisisiä ja monesta paikasta löytyviä, joten minulla ei ole tietoa, kuka ne on alun perin tehnyt. Joka tapauksessa ne ovat varsin selkeät ja toimivat.


Tuetut kortit

Asennuksen aluksi on syytä tarkistaa, oman isdn-kortin merkki ja tyyppi. Suuri osa nykyisistä myynnissä olevista halpakorteista on varustettu Winbondin piirillä, jonka tyypiksi on määritelty 36. Lisäksi on syytä tietää kortin keskeytys sekä muistiosoite. Näitä ei välttämättä tarvitse kertoa konfigurointitiedostoissa jokaisen kortin kohdalla. Joissakin ohjeissa mainitaan, että kerneliin pitäisi kääntää Winbond-tuki, mutta ainakiin RH 6.2:ssa homma pelasi ihan hyvin aivan suoraan.

Tuetut kortit löytyvät tiedostosta /usr/src/linux/Documentation/isdn/README.HiSax. 6.2-RedHat kuitenkin tukee seuraavia kortteja:

Supported cards
---------------

Teles 8.0/16.0/16.3 and compatible ones
Teles 16.3c
Teles S0/PCMCIA
Teles PCI
Teles S0Box
Creatix S0Box
Creatix PnP S0
Compaq ISDN S0 ISA card
AVM A1 (Fritz, Teledat 150)
AVM Fritz PCMCIA
AVM Fritz PnP
AVM Fritz PCI
ELSA Microlink PCC-16, PCF, PCF-Pro, PCC-8
ELSA Quickstep 1000
ELSA Quickstep 1000PCI
ELSA Quickstep 3000 (same settings as QS1000)
ELSA Quickstep 3000PCI
ELSA PCMCIA
ITK ix1-micro Rev.2
Eicon.Diehl Diva 2.0 ISA and PCI (S0 and U interface, no PRO version)
Eicon.Diehl Diva 2.01 ISA and PCI
Eicon.Diehl Diva Piccola
ASUSCOM NETWORK INC. ISDNLink 128K PC adapter (order code I-IN100-ST-D)
Dynalink IS64PH (OEM version of ASUSCOM NETWORK INC. ISDNLink 128K adapter)
PCBIT-DP (OEM version of ASUSCOM NETWORK INC. ISDNLink)
HFC-2BS0 based cards (TeleInt SA1)
Sedlbauer Speed Card (Speed Win, Teledat 100, PCI, Fax+)
Sedlbauer Speed Star/Speed Star2 (PCMCIA)
Sedlbauer ISDN-Controller PC/104
USR Sportster internal TA (compatible Stollmann tina-pp V3)
ith Kommunikationstechnik GmbH MIC 16 ISA card
Traverse Technologie NETjet PCI S0 card
Dr. Neuhaus Niccy PnP/PCI
Siemens I-Surf 1.0
Siemens I-Surf 2.0 (with IPAC, try type 12 asuscom) 
ACER P10
HST Saphir
Berkom Telekom A4T
Scitel Quadro
Gazel ISDN cards
HFC-PCI based cards
Winbond W6692 based cards

Note: PCF, PCF-Pro: up to now, only the ISDN part is supported
      PCC-8: not tested yet
      Teles PCMCIA is EXPERIMENTAL
      Teles 16.3c is EXPERIMENTAL
      Teles PCI is EXPERIMENTAL
      Teles S0Box is EXPERIMENTAL
      Eicon.Diehl Diva U interface not tested

Korttien tyyppinumerot taas ovat seuraavat:

    Type                Required parameters (in addition to type and protocol)

    1   Teles 16.0               irq, mem, io
    2   Teles  8.0               irq, mem
    3   Teles 16.3 (non PnP)     irq, io
    4   Creatix/Teles PnP        irq, io0 (ISAC), io1 (HSCX)
    5   AVM A1 (Fritz)           irq, io
    6   ELSA PCC/PCF cards       io or nothing for autodetect (the iobase is
                                 required only if you have more than one ELSA
                                 card in your PC)
    7   ELSA Quickstep 1000      irq, io  (from isapnp setup)
    8   Teles 16.3 PCMCIA        irq, io
    9   ITK ix1-micro Rev.2      irq, io
   10   ELSA PCMCIA              irq, io  (set with card manager)
   11   Eicon.Diehl Diva ISA PnP irq, io
   11   Eicon.Diehl Diva PCI     no parameter
   12   ASUS COM ISDNLink        irq, io  (from isapnp setup)
   13   HFC-2BS0 based cards     irq, io
   14   Teles 16.3c PnP          irq, io
   15   Sedlbauer Speed Card     irq, io
   15   Sedlbauer PC/104         irq, io
   15   Sedlbauer Speed PCI      no parameter
   16   USR Sportster internal   irq, io
   17   MIC card                 irq, io
   18   ELSA Quickstep 1000PCI   no parameter
   19   Compaq ISDN S0 ISA card  irq, io0, io1, io (from isapnp setup io=IO2)
   20   NETjet PCI card          no parameter
   21   Teles PCI                no parameter
   22   Sedlbauer Speed Star (PCMCIA) irq, io (set with card manager)
   24   Dr. Neuhaus Niccy PnP    irq, io0, io1 (from isapnp setup)
   24   Dr. Neuhaus Niccy PCI    no parameter
   25   Teles S0Box              irq, io (of the used lpt port)
   26   AVM A1 PCMCIA (Fritz!)   irq, io (set with card manager)
   27   AVM PnP (Fritz!PnP)      irq, io  (from isapnp setup)
   27   AVM PCI (Fritz!PCI)      no parameter
   28   Sedlbauer Speed Fax+     irq, io (from isapnp setup)
   29   Siemens I-Surf 1.0       irq, io, memory (from isapnp setup)   
   30   ACER P10                 irq, io (from isapnp setup)   
   31   HST Saphir               irq, io
   32   Telekom A4T              none
   33   Scitel Quadro            subcontroller (4*S0, subctrl 1...4)
   34   Gazel ISDN cards (ISA)   irq,io
   34   Gazel ISDN cards (PCI)   none
   35   HFC 2BDS0 PCI            none
   36   W6692 based PCI cards    none

Noiden tietojen perusteella voidaankin sitten virittää kortti toimimaan


Asentaminen

Asentaminen tapahtuu taas pääkäyttäjänä (root). Idea on viilata paria asetustiedostoa. Aluksi kirjoitetaan seuraavat lisäykset tiedostoon /etc/rc.d/rc.local

/sbin/modprobe isdn 
/sbin/modprobe slhc 
/sbin/modprobe ppp
/sbin/modprobe hisax type=36 protocol=2     
  # Tässä siis kerrotaan kortin tyyppi. 
 
/usr/sbin/isdnctrl addif ippp0 
/usr/sbin/isdnctrl addslave ippp0 ippp1
/usr/sbin/isdnctrl secure ippp0 on
/usr/sbin/isdnctrl secure ippp1 on
 
/usr/sbin/isdnctrl addphone ippp0 out 1234567 
/usr/sbin/isdnctrl addphone ippp1 out 1234567 
  #Vaihda oma palveluntarjoajasi soittosarjanumero
 
/usr/sbin/isdnctrl l2_prot ippp0 hdlc 
/usr/sbin/isdnctrl l3_prot ippp0 trans 
/usr/sbin/isdnctrl encap ippp0 syncppp
 
/usr/sbin/isdnctrl l2_prot ippp1 hdlc 
/usr/sbin/isdnctrl l3_prot ippp1 trans 
/usr/sbin/isdnctrl encap ippp1 syncppp
 
/usr/sbin/isdnctrl huptimeout ippp0 3600 
/usr/sbin/isdnctrl huptimeout ippp1 3600 
   #Jos ei liikennettä, katkaistaan linja 3600 sekunnin kuluttua
   # Tämän saa toki muuttaa...
/usr/sbin/ipppd /dev/ippp0 /dev/ippp1

Tämän  jälkeen määritellään käyttäjätunnukset ja salasanat. Ne asetetaan tiedostoon /etc/ppp/pap-secrets

# Secrets for authentication using PAP
# client    server      secret                  IP addresses
tunnus      *     salasana
  • tunnus-kohtaan laitat siis oman käyttäjätunnuksen
  • sen jälkeen painat tab-näppäintä
  • nyt kirjoitetaan sitten * ja painetaan uudelleen tabia
  • lopuksi oma salasanasi

Vaikka salasana tuleekin tuonne ihan selväkielisenä, se on kuitenkin turvassa, sillä voit huoleti ottaa kaikilta muilta oikeudet kuin rootilta oikeudet pois tuohon tiedostoon, eli chmod 600 pap-secrets.

Tämän jälkeen vielä pitää luoda /etc/ppp/ioptions-tiedosto:

ipcp-accept-local
ipcp-accept-remote # idea: hyvksytään se ip-osoite, jota vastapuoli tarjoaa.
noipdefault
defaultroute
-chap
user tunnus   #laita oma käyttäjätunnus tähän. 
bsdcomp 10
+mp
lock
mru 1500
mtu 1500
debug

Tästäkin tiedostosta otetaan muilta oikeudet pois: chmod 700 ioptions

Seuraavaksi tehdään soittoskriptit. Talleta nämä /bin-hakemistoon ja anna nimeksi vaikkapa soita.

#!/bin/bash
/sbin/ifconfig ippp0 up
/usr/sbin/isdnctrl dial ippp0
sleep 7
/sbin/route add default ippp0
/usr/X11R6/bin/xterm -geom 40x15+5+5 -fn 5x7 -e /usr/sbin/imon
/usr/sbin/isdnctrl hangup ippp0
/sbin/ifconfig ippp0 down

Homman idea on seuraava: xterm-päätteeseen käynnistetään imon-ohjelma, jolla kontrolloidaan linjaa. Tämän seurauksena ruudun vasempaan yläkulmaan ilmestyy tällainen ikkuna:

imon-ikkuna

Nyt voit Q:lla sulkea tämän ikkunan ja samalla suljetaan myös puhelinlinja.

Jos halutaan toinenkin linja käyttöön, tehdään sitä varten toinen skripti (nimeksi vaikkapa soita2):

#!/bin/bash
/sbin/ifconfig ippp0 up
/sbin/ifconfig ippp1 up
sleep 4
/usr/sbin/isdnctrl dial ippp0
/usr/sbin/isdnctrl dial ippp1
sleep 7
/sbin/route add default ippp0
/usr/X11R6/bin/xterm -geom 40x15+5+5 -fn 5x7 -e /usr/sbin/imon
/usr/sbin/isdnctrl hangup ippp1
/usr/sbin/isdnctrl hangup ippp0
ifconfig ippp1 down
ifconfig ippp0 down

Nyt ei ole enää jäljellä kuin nimipalvelimen määrittäminen. Se tehdään tiedostoon /etc/resolv.conf

nameserver XXX.XXX.XXX.XXX    #palveluntarjoajan nimipalvelin osoite

xxx:t korvataan nimipalvelimen ip-osoitteella.

Näiden jälkeen bootataan kone ja sen jälkeen soittamaan.

Huom! Tämä skripti vaatii sen, että soittaja kirjautuu sisään roottina. Yleensäkään ei ole turvallista eikä mielekästä käyttää rootin oikeuksia jokapäiväisessä työskentelyssä. Sen takia pitää antaa tavalliselle käyttäjälle oikeus käyttää soittoskriptiä. Sen voi tehdä esim. sudo-ohjelmalla.

Isdn-config

RedHat 6.2:n mukana tulee isdn-config-niminen ohjelma. jolla voi asettaa graafisessa tilassa isdn-kortin toimimaan. Tämäkin ohjelma vaatii rootin oikeuksia toimiakseen, joten oikeudet tulee antaa tai sitten tietää rootin salasana:

kortin valinta

Harware-välilehdellä valitaan listasta kortin tyyppi. IRQ-rivillä valitaan kortin keskeytys oikein ja IO-riville taas annetaan kortin muistiosoite.  Sen jälkeen voidaan mennä Provider-välilehdelle valitsemaan palveluntarjoaja ja valita sieltä "create new"-valinta. (choose-listassa on tällä hetkellä vain englantilaisia ja saksalaisia palveluntarjoajia valmiina)

  • Provider name-kohtaan laitetaan joku kuvaava nimi palveluntarjoajalle
  • area code on ainoa ruutu, johon ei tarvitse kirjoittaa mitään, jos soitetaan ilman suuntanumeroa
  • phone number on luonnollisesti palveluntarjoajan puhelinnumero
  • MSN/EAZ-kohtaan kirjoitetaan se puhelinnumero, jonka takana sinun isdn-korttisi on.
  • autenthication on yleensä PAP, jonka alle laitetaan sitten käyttäjätunnus ja salasana, joka näkyy tähtinä
  • DNS:ään verkon nimipalvelimen osoite
  • ja Domain-name-kohtaan verkkodomainin nimi.

Tämän jälkeen mennään Dial-välilehdelle, valitaan  palveluntarjoaja listasta ja painetaan connect-nappulaa. Jos kaikki on kunnossa, yhteyden pitäisi muodostua.

Huom! Kokeilin edellisiä "sekaisin" luomalla ensiksi soittoskriptit ja sen jälkeen määrittelin isdn-configin kuntoon. Jälkimmäinen tuntui tekevän sellaisia asetuksia, että se sotki tehokkaasti ensin mainitun menetelmän toimintaa. Näin ollen näyttäisi siltä, että kannattaa valita jompi kumpi tapa ja käyttää sitä, muttei molempia sekaisin.


KISDN ynnä muut mahdolliset netistä löytyvät isdn-ohjelmat

Näitä ei kannata enää mistään imuroida. Niiden kehitys on käytännössä loppunut jokaisen kohdalta. Jokaisessa distribuutiossa on nykyään mukana tarvittavat ohjelmat, jos vielä pitää isdn:ää käyttää.


Alkuun