luni, 11 aprilie 2011

Configurarea modemului si a pppd-ului pentru a folosi linii inchiriate pe 2 fire

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.

Niciun comentariu:

Trimiteți un comentariu