Linii inchiriate Mini-HOWTO Rob van der Putten, rob@sput.nl v2.1, 3 August 2000 Traducerea: Victor Plugaru(vuk@go.ro). Cu scuzele de rigoare pentru eventualele greseli si/sau inadvertente. Configurarea modemului dumneavoastra si a pppd-ului pentru a folosi linii inchiriate pe 2 fire. _________________________________________________________________________ Table of Contents 1. Introducere 1.1 Ce este o linie inchiriata 1.2 Presupuneri 2. Modemul 2.1 Configuratia modemului 2.2 Test 2.3 Exemple 2.3.1 Hi-Tech 2.3.2 Tornado FM 228 E 2.3.3 Tron DF 2.3.4 US Robotics Courier V-Everything 3. PPPD 3.1 Configurarea 3.2 Script-uri 3.2.1 Pornirea lui pppd si mentinerea lui in functiune 3.2.2 Configurarea rutelor 3.3 Test ______________________________________________________________________ Cea mai recenta versiune a acestui document poate fi gasita la: http://www.sput.nl/software/leased-line/ 1. Introducere 1.1. Ce este o linie inchiriata. Orice legatura de date punct la punct pentru comunicatie, care este permanenta, fixa, inchiriata de la un operator de telefonie sau organizatie similara, consituie o linie inchiriata. Linia inchiriata implica cabluri, ca perechi torsadate , coaxiale sau fibre optice si poate implica tot soiul de alte echipamente, bobine, transformatoare, amplificatoare si regeneratoare. Acest document se ocupa de : Configurarea modemului si daemonului pppd pentru a utiliza linii inchiriate pe 2 fire torsadate. Acest document nu se ocupa de: SLIP, obtinerea si instalarea lui pppd, comunicatii sincrone de date, modemuri in banda de baza, xDSL. 1.2. Presupuneri. Va trebui sa aveti deja daemonul pppd capabil de a functiona in sistemul dvs. De asemenea, trebuie sa aveti Minicom sau un program similar pentru a va configura modemul. 2. Modemul O linie inchiriata nu este conectata la centrala telefonica, nu transporta curent continuu, ton de apel, ton de ocupat sau semnal de apel. Asta inseamna ca modemurile dvs. sunt pe cont propriu si vor trebui sa fie capabile sa functioneze in atare situatie. Ar trebui sa aveti doua modemuri identice (inclusiv versiunea firmware), externe, care sa suporte modurile de lucru pentru linie inchiriata si mod "orb". Asigurati-va ca modemurile dvs. pot functiona astfel. De asemenea, asigurati-va ca modemurile sunt bine documentate. Mai aveti nevoie de: - 2 cabluri RS232 ecranate si cablate complet. Ecranul ar trebui sa fie conectat la carcasa conectorului la ambele capete (nu la pinul 1 si nu doar la un capat). - Un conector RS232 de test poate fi avantajos daca il aveti. - 2 cabluri cu mufe RJ11, unul la fiecare capat al liniei inchiriate. - Cunostinte fundamentale privind comenzile AT. 2.1. Configurarea modemului. O observatie privind configuratia modemului si sirurile de initializare in general: Configurati-va software-ul de modem (Minicom) sau (m)getty, pentru a putea folosi cea mai mare viteza posibila: 57600 bps pentru modem de 14.4 k si 115200 bps pentru modem de 28.8 k sau mai rapid. Multi utilizatori folosesc siruri de initializare lungi si complicate, adesea incepand cu sirul AT&F si continand o multime de siruri specifice anumitor modemuri. Oricum, acestea sunt inutil de complicate. Majoritatea programelor se descurca bine cu cateva configurari simple, asa ca de ce sa nu scriem aceste configurari in memoria non-volatila pentru toate modemurile dvs. si sa folositi doar comanda ATZ ca sir de initializare in programe. Astfel puteti interschimba sau imbunatati modemurile fara sa faceti reconfigurari in programe. Multe programe necesita sa folositi urmatoarele setari: - Baud-rate fix. - Contol de flux (flow control) RTS-CTS hardware bidirectional (nu xon-xoff) - 8 biti, fara paritate, 1 bit de stop - Modemul va trebui sa genereze starea REALA a semnalului DCD (&C1) - Modemul va trebui sa NU ignore starea semnalului DTR (&D2 sau &D3) Verificati acestea cu AT&V sau AT&Ix (consultati documentatia modemului) Aceste setari nu sunt neaparat implicite din fabrica (&F), asa incat initierea modemului cu un sir de initializare cu AT&F nu este intotdeauna o idee buna. Un lucru inteligent este probabil folosirea stringului AT&F atunci cand avem motive sa credem ca sirul de initializare stocat in memoria nevolatila a modemului nu este bun. Daca veti crede ca ati gasit sirul potrivit de initializare a modemului, stocati-l in memoria nevolatila cu comanda AT&W si testati-l amanuntit cu protocolul de transfer Z-modem pentru ambele tipuri de fisiere, atat ASCII cat si binar. Daca toate acestea merg perfect, configurati-va astfel modemurile pentru linia inchiriata. Aflati cum sa treceti modemul in modul "dumb" (orb, brut) si, si mai important, cum sa scoateti modemul din acest mod. Modemul poate fi reconfigurat doar cand nu este in modul "dumb". Asigurati-va ca ati configurat modemul pentru cea mai mare viteza posibila. Odata intrat in modul "dumb", modemul va ignora toate comenzile AT, si nu isi va ajusta viteza dupa cea a portului serial, dar va utiliza viteza pentru care a fost configurat (aceasta configurare de viteza este stocata intr-un registru S, datorita sirului stabilit si stocat in memoria nevolatila). Acum configurati modemul dupa cum urmeaza: - Resetati DTR-ul (&D3, uneori e vorba de un registru S). Aceasta setare este ceruta uneori de unele ISP-uri. - Modul linie inchiriata (&L1 sau &L2, consultati documentatia modemului) - Modemul corespondent pe auto-raspuns (S0=1), modemul local pe initiere (S0=0) - Dezactivati codurile de rezultat (Q1, uneori modul "dumb" inlocuieste aceasta) - Modul "dumb" (\D1 sau %D1, uneori e vorba de un jumper). In modul "dumb", modemul va ignora comenzile AT (uneori va trebui chiar sa dezactivati caracterul ESC) Scrieti configuratia in memoria nevolatila (AT&W) 2.2. Test Conectati modemurile la doua computere folosind 2 cabluri RS232 si conectati modemurile intre ele folosind un cablu RJ11. Folositi un program pentru modem, cum ar fi Minicom-ul din Linux, Procomm sau Telix (DOS) pe ambele calculatoare, pentru a testa modemurile. Ar trebui sa puteti tasta si afisa text de pe un calculator pe celalalt si vice-versa. Daca pe ecrane apar caractere ciudate, verificati viteza portului serial si alte asemenea configurari. Apoi deconectati si reconectati cablul RJ11. Asteptati sa se restabileasca conexiunea. Deconectati si reconectati cablurile RS232, inchideti si deschideti modemurile, opriti si porniti Minicom-ul. Modemurile vor trebui sa se reconecteze intotdeauna la cea mai mare viteza posibila (unele modemuri au LED-uri indicatoare a vitezei). Verificati daca modemurile ignora intr-adevar caracterul ESC (+++). Daca e necesar, dezactivati caracterul ESC. Daca toate acestea functioneaza, veti dori poate sa reconfigurati modemurile. Dezactivati sunetul pentru modemul de la distanta (M0) si setati volumul la minim pentru modemul local (L1). 2.3. Exemple 2.3.1. Hi-Tech Acesta este un modem aproximativ "no name". Sirul de initializare este tipic si ar trebui sa functioneze pentru majoritatea modemurilor. Initiator (local): ATL1&C1&D3&L2%D1&W&W1 Raspuns (la distanta): ATM0L1&C1&D3&L2%D1S0=1&W&W1 2.3.2. Tornado FM 228 E Asta ar trebui sa mearga: Originate (local): ATB15L1Q1&C1&D3&L2&W&W1 Answer (remote): ATM0B15M0Q1&C1&D3&L2S0=1&W&W1 Mutati jumperul pentru modul "dumb" de la 2-3 la 1-2. Datorita unui bug in firmware, modemurile se vor conecta abia dupa un reset hard (alimentare curent oprit si pornit) cand DTR este high. Am pus la punct un circuit care reseteaza hard modemul la trecerea lui DTR de pe low pe high. Daemonul pppd din BSD nu e prea "incantat" de aceasta. Combinand setarea &D0 cu un circuit care reseteaza la trecerea din starea high in low, problema poate fi evitata. 2.3.3. Tron DF Caracterul ESC ar trebui dezactivat, setand S2 > 127 ; Initiator: ATL1&L1Q1&C1&D3S2=171\D1&W Raspuns: ATM0&L2Q1&C1&D3S0=1S2=171\D1&W 2.3.4. US Robotics Courier V-Everything USR Sportster si USR Courier-I nu suporta linii inchiriate. Va trebuie versiunea Courier V-everything pentru aceasta. Exista o pagina WEB pe site-ul USR care "explica" cum se configureaza Courier-ul pentru linie inchiriata. Daca veti urma aceastei instructiuni veti sfarsi prin a aduce modemul in "moarte cerebrala" , care nu poate fi controlata sau monitorizata de pppd. USR Courier poate fi configurat din DIP-switch-uri (comutatoare). Oricum, trebuie sa ii furnizati sir de initializare intai. Asigurati-va ca folositi setarea de fabrica potrivita. Spre deosebire de alte modemuri, acesta are trei setari de fabrica: &F0, &F1 si &F2. Daca ii dati comanda AT&F va incarca setarea &F0. Pentru a reseta comutarea DTR, trebuie sa setati bitul 0 in registrul S13. Aceasta inseamna ca trebuie sa setati S13=1. Mai departe, trebuie sa il setati pentru lucrul pe linie inchiriata cu &L1: ATS13=1&L1&W . Microcomutatoarele sunt in starea implicita, cu urmatoarele exceptii: 3 OFF Dezactiveaza codurile de rezultat 4 ON Dezactiveaza comenzile off-line 5 ON pentru initiere, OFF pentru raspuns 8 OFF Dumb mode 3. PPPD Aveti nevoie de daemonul pppd (Point to Point Protocol) si de oarece cunostinte despre cum lucreaza. Consultati RFC-urile potrivite sau PPP-HOWTO din Linux daca este necesar. Cum nu veti folosi vreo procedura de login, nu folositi (m)getty nu veti furniza vreun utilizator fals pentru autentificare pppd. Nu veti forma numar de telefon, asa ca nu aveti nevoie nici de script chat. De fapt, configuratia si circuitul de modem pe care tocmai l-ati pus la punct seamana cu o legatura seriala null-modem. Pentru o legatura fiabila, ar trebui sa indepliniti urmatoarele criterii: - Imediat dupa boot-area sistemului de operare, pppd ar trebui sa "ridice" semnalul DTR in portul RS232, sa astepte semnalul DCD, sa intre in starea "sus", si sa negocieze legatura. - Daca sistemul de la distanta este oprit, pppd ar trebui sa astepte pana este pornit din nou. - Daca legatura functioneaza si intamplator se opreste, pppd ar trebui sa reseteze modemul (prin "coborarea" si "ridicarea" semnalului DTR) dupa care sa incerce sa se reconecteze. - Daca calitatea legaturii se deterioreaza prea mult, pppd ar trebui sa reseteze modemul si sa restabileasca legatura. - Daca pppd "crapa", un program watchdog ("caine de paza") ar trebui sa il reporneasca. 3.1. Configurarea. Sa presupunem ca modemul este conectat la COM2, adresa iP locala este "Loc_Ip" si adresa IP distanta este "Rem_Ip". Vrem sa folosim MTU (Maximum Transmit Unit) cu valoarea 576. Fisierul /etc/ppp/options.ttyS1 ar arata cam asa: crtscts mru 576 mtu 576 passive Loc_Ip:Rem_Ip -chap modem #noauth -pap persist Parametri ca "Asyncmap 0", "Lock", "Modem" and "-detach" sunt probabil deja specificati in fisierul /etc/ppp/options. Daca nu sunt , adaugati-i in fisierul /etc/ppp/options.ttyS1. Asa ca, daca sistemul local este 192.168.1.1 si sistemul de la distanta este 10.1.1.1, fisierul /etc/ppp/options.ttyS1 este: crtscts mru 576 mtu 576 passive 192.168.1.1:10.1.1.1 -chap modem #noauth -pap persist Fisierul options.ttyS1 de pe sistemul de la distanta este: crtscts mru 576 mtu 576 passive 10.1.1.1:192.168.1.1 -chap modem #noauth -pap persist Optiunea "passive" limiteaza numarul de incercari de reconectare. Optiunea "persist" va mentine pppd in stare de functionare in caz de deconectare sau cand nu se poate conecta de prima data. Daca folositi intens telnet in timp ce faceti transfer de fisiere (FTP sau web), va trebui sa folositi valori mai mici pentru MTU si MRU, cum ar fi 296. Aceasta va face sistemul de la distanta sa raspunda mai rapid. Daca nu va pasa de telnet, puteti folosi valori de 1500 pentru MTU si MRU. Aveti in vedere oricum ca pachetele UDP nu pot fi fragmentate. Programul Speakfreely foloseste de pilda pachete UDP de 512 bytes. Deci MTU minim pentru Speakfreely este 552 bytes. Optiunea "noauth" poate fi necesara in distributiile noi. 3.2. Script-uri 3.2.1 Pornirea lui pppd si mentinerea lui in functiune Ati putea porni pppd dintr-un script (rc) de boot. Oricum, daca faceti asta, si pppd moare, ramaneti fara legatura. O solutie mult mai stabila este aceea de a porni pppd din fisierul /etc/inittab: s1:23:respawn:/usr/sbin/pppd /dev/ttyS1 115200 Astfel, pppd va fi restartat daca "moare". Asigurati-va ca aveti optiunea "-detach" ("nodetach" in distributiile mai noi), altfel inittab va porni mai multe pppd-uri, "plangandu-se" cu mesaje de genul "respawning too fast". NOTA: unele sisteme mai vechi nu accepta viteza de 115200. In acest caz folositi 38400 si parametrul "spd_vhi" pentru comanda "setserial". Unele sisteme se asteapta sa folositi dispozitivul /dev/cua in loc de /dev/ttySx. 3.3.2. Configurarea rutelor. Ruta implicita poate fi configurata cu optiunea "defaultroute" sau cu scriptul /etc/ppp/ip-up; #!/bin/bash case $2 in /dev/ttyS1) /sbin/route add -net 0.0.0.0 gw Rem_Ip netmask 0.0.0.0 ;; esac ip-up poate fi folosit de asemeni pentru a va sincroniza ceasul calculatorului cu comanda "netdate". Bineinteles, ruta setata cu ip-up nu este in mod necesar ruta implicita. Ip-up seteaza ruta catre reteaua de la distanta in timp ce scriptul ip-up de la distanta seteaza ruta catre reteaua locala. Daca reteaua dvs locala este 192.168.1.0 si interfata dvs ppp este 192.168.1.1, scriptul ip-up de pe masina de la distanta arata cam asa: #!/bin/bash case $2 in /dev/ttyS1) /sbin/route add -net 192.168.1.0 gw 192.168.1.1 netmask 255.255.255.0 ;; esac Bitii "case $2" si "/dev/ttyS1)" apar in caz ca folositi mai multe conexiuni ppp. Ip-up va rula ori de cate ori apare o conexiune, dar doar partea dintre "/dev/ttySx)" si ";;" va fi executata, stabilind ruta potrivita pentru fiecare dispozitiv ttySx potrivit. Puteti afla mai multe despre rutare in documentul Linux Networking HOWTO la sectiunea rutare. 3.3. Test Testati toata configuratia exact ca in cazul modemurlor. Daca functioneaza, luati bicicleta si porniti sistemul de la distanta. Daca nu functioneaza, verificati viteza portului COM. De obicei o greseala frecventa este de a configura legatura cu Minicom cu o viteza si apoi configurarea pppd cu alta viteza . Asa NU va functiona. Folositi aceiasi viteza permanent.