Žilinská univerzita > Fakulta riadenia a informatiky > Katedra informačných sietí

CLIP smerovač pod Linuxom



Dokument spracovali : Michal Palúch, Samuel Olach, Peter Zeman, Martin Jašica, Martin Šimurka, Juraj Homoľa

Vypracované ako smestrálna práca predmetu Širokopásmové siete v šk. roku 2005/06 pri realizácií Linux ATM smerovača pre CLIP.

 

ATM pod Linuxom

Podpora sietí ATM v Linuxe je rozdelená do dvoch častí. Prvá časť je obsiahnutá v jadre - kerneli operačného systému. Sem patria ovládače ATM sieťových rozhraní a samotná podpora protokolov CLIP, LANE a MPOA. Druhá časť pozostáva z pomocných programov, ktoré pracujú v užívateľskom prostredí a zabezpečujú špecializované funkcie - ATM signalizáciu, udržiavanie ARP tabuliek, prípadne plnia úlohu LECS, LES, BUS, ATMARP či MARS serverov.
 

Základná podpora ATM protokolov

V našom prípade sme používali distribúciu Debian Gnu/Linux, Kernel 2.6.8-2-K7, kde bola už podpora ATM k dispozícii hneď po nainštalovaní Linuxu. V našom prípade nebolo potrebné jadro skompilovať nanovo.

Po inštalácii sa ovládač skompiloval do 3 modulov: idt77252.o, suni.o a nicstar.o. Ovládač suni.o je suni PHY driver (155Mbps). Ovládač idt77252.o je podporou pre karty s čipom IDT 77252. Ovládač nicstar.o je podporou sieťových kariet NICSTAR. Všetky moduly nahráme do kernelu nasledovnými príkazmi.

modprobe nicstar modprobe idt77252
 
Pričom modul suni.o by sa mal natiahnut automaticky po štarte modulu idt77252.o, čiže nie je potrebné ho štartovat.
A aby bol celý proces spúšťania IP over ATM úplne automatický, je možné príslušný skript vložiť (jednoduchý spôsob) do tzv. linuxáckeho autoexecu, teda do súboru /etc/rc.local . Ale je možné, že v niektorých distribúciach sú to rozdielne súbory.

 

Signalizačný démon

Signalizačný démon atmsigd je súčasťou balíka ATM Tools, ktorý treba zvyčajne doinštalovať. Pre debian to robíme príkazom: apt-get install atm-tools. Implementuje ATM UNI signalizačný protokol. Požiadavky na vytvorenie, akceptovanie alebo ukončenie spojenia sú kernelom (pomocou relatívne jednoduchého protokolu) zasielané signalizačnému démonu, ktorý udržuje kontakt so sieťou.
Signalizačný démon nie je schopný vytvárať a rušiť spojenia, pokým nie je lokálnemu rozhraniu ATM pridelená ATM adresa démonom ilmid, alebo ručne nakonfigurovaná použitím nástroja atmaddr. Nasledovným príkazom spusítíme signalizačný démon, voľba -b znamená, že po inicializácií pobeží na pozadí.

atmsigd -b 

ILMI démon

ILMI zabezpečuje mechanizmus pre automatickú konfiguráciu ATM adresy. Ak nemáme ATM switch alebo switch nepodporuje ILMI protokol, musí byť adresa nastavená ručne nástrojom atmaddr. ILMI nemusí byť používaný na rozhraniach, ktorým sme adresu nakonfigurovali ručne.
Ak nie je nastavené číslo rozhrania, ilmid použije rozhranie 0. Nástrojom atmaddr môžete odskúšať, či registrácia adresy cez ILMI prebehla úspešne.
Nasledovným príkazom spustíme ILMI démon, voľba -b znamená, že po inicializácií pobeží na pozadí.
ilmid -b 

Classical IP over ATM - CLIP

Aby mohol bežať protokol IP cez protokol ATM je nutné zabezpečiť mapovanie IP adries na ATM adresy. Situácia je obdobná ako pri mapovaní MAC adresy sieťovej karty v sieti Ethernet na IP adresu. Mapovanie ATM adries na IP adresy zabezpečuje ATMARP. ATMARP je v Linuxe implementovaný ako user space démon, ktorý je použitý na generovanie a odpovedanie na ARP dopyty. Súčasná časť obsluhy v kerneli udržuje malú prekladovú tabuľku obsahujúcu čiastočné informácie potrebné na obsluhu ARP požiadaviek.

ATMARP protokol je podľa špecifikácie dokumentov RFC1577 a RFC1755 implementovaný ako user space démon v programe atmarpd. Pred spustením atmarpd musí už bežať signalizačný démon atmsigd a musí byť správne nakonfigurovaná ATM adresa, buď ručne nástrojom atmaddr, alebo automaticky, použitím démona ilmid, implementujúceho protokol ILMI.

ATMARP požiadavky sú kernelom (použitím relatívne jednoduchého protokolu) zasielané ATMARP démonu, ktorý udržuje kontakt so sieťou.
Atmarpd môže fungovať ako ATMARP klient alebo ako ATMARP server. Tiež podporuje možnosť pridelenia jednému ATM rozhraniu viacerých ATM adries.

Atmarpd nemá svoj konfiguračný súbor. Po spustení je konfigurovaný nástrojom atmarp, priloženom v balíku ATM Tools. Ak je zapnuté vypisovanie ladiacich správ (debugging messages), tak po každej zmene ATMARP tabuľky je tabuľka zapísaná do súboru /var/run/atmarpd.table (voľbou -D je možné zmeniť adresár do ktorého je tabuľka zapisovaná). Nasledovným príkazom spustime ATM ARP démon, voľba -b znamená, že po inicializácií pobeží na pozadí.

atmarpd -b 

Program atmarp je nástroj na konfigurovanie ATMARP démona. Po tom, ako už bežia podporné programy atmsigd, ilmid a atmarpd pristúpime k vytvoreniu ATM rozhrania a konfigurácii rozhrania programom ifconfig. Nasledovným príkazom vytvoríme ATM rozhranie a príkazom ifconfig mu nastavíme IP adresu 192.168.0.10 .

atmarp -c atm0
ifconfig atm0 192.168.0.10

Ak počítač vystupuje ako ATMARP server, nepotrebuje žiadnu prídavnú konfiguráciu. Inak musí byť ATM adresa ATMARP servera zapísaná v ATMARP tabuľke. Toto dosiahneme príkazom atmarp, voľba -s slúži na zadanie podsiete, prípadne adresu stanice, pre ktorú sa bude arpserver poskytovať. Za túto adresu napíšeme ATM adresu nášho arpservera.

atmarp -s 192.168.0.10 47.0005.80FFE1000000F20F3877.0020485B5210.00 arpsrv

Táto adresa je iba ilustračná a slúži len na znázornenie formátu, v ktorom je potrebné adresu zadávať.

Po nakonfigurovaní CLIP (Classical IP over ATM) môžeme prevádzkovať na vybudovanej sieti aplikácie používajúce protokol IP bez nutnosti nového kompilovania alebo konfigurovania. Programy vlastne ani nevedia, že bežia cez ATM.

Nakoniec ešte malá poznámočka: všetky príkazy je potrebné zadávať ako superužívateľ.
 

Príklad konfigurácie

Ako bude vyzarať zapojenie:

  • Majme 2 stanice s ATM kartami (ATM ForeRunner LE155) a aj ATM switch ForeRunner do ktorého sú stanice pripojené.
  • Jedno PC bude slúžiť ATM ARP server
  • Druhé PC bude slúžiťiba ako klient.

Nasledovné skripty obsahujú príkaz &&, ktorý slúži napr. na ladenie. Presne slúži na zastavenie skriptu v prípade chyby v aktuálnom príkaze.
 

#**********************SKRIPT PRE ARP SERVER**********************
#!/bin/bash

modprobe nicstar &&
modprobe idt77252 &&
modprobe suni

# killnutie demonov, ak nahodou existuju
for i in atmsigd ilmid atmarpd
do
killall $i
done

# loadnutie demonov
atmsigd -b &&
ilmid -b &&
atmarpd -b &&

# nahodenie interfacu
atmarp -c atm0 &&
ifconfig atm0 192.168.0.10
#********************************EOF********************************

#**********************SKRIPT PRE KLIENTA*************************
#!/bin/bash

modprobe nicstar &&
modprobe idt77252 &&
modprobe suni

# killnutie demonov, ak nahodou existuju
for i in atmsigd ilmid atmarpd
do
killall $i
done

# loadnutie demonov
atmsigd -b &&
ilmid -b &&
atmarpd -b &&

# nahodenie interfacu
atmarp -c atm0 &&
ifconfig atm0 192.168.0.8

# atmarp client mode: connect na IP a ATMMAC adresa servera
atmarp -s 192.168.0.10 47.0005.80FFE1000000F20F3877.0020485B5210.00 arpsrv
#*****************************EOF**********************************