Soluții - PC Magazine Romania, Septembrie 2003
La plajă
Răzvan Sandu
Motto:
"și de aceea niciodată să nu faci întrebare pentru cine bat clopotele - pentru tine bat."
[Ernest Hemingway - introducere la romanul "Pentru cine bat clopotele"]
Cobor fereastra și privesc absent afară. În dimineața proaspătă de vară, trenul de Constanța se strecoară încetișor printre arbuștii umezi care ating vagonul. Locul acesta tăcut îmi e familiar ca o întâlnire cu copilăria. "Drumul santinelei", îi spun cei vechi din cartier. Pe poteca năpădită de verdeață, scrâșnește încă, egal și fantomatic, pasul soldatului german care păzea linia ferată aici, sus, lângă Gara Regală de la Băneasa. E atât de bine ales și ascuns postul acesta strategic, încât vuietul șoselei de dedesubt, de la piciorul podului, nici nu se mai aude…
Astăzi, domnilor, am plecat către libertate! Poate că vă așteaptă și pe Dvs. litoralul, cu răsărituri de soare, spumă de valuri, nostalgie, prieteni, fete, discoteci … Au rămas în urmă aerul condiționat, telefoanele care sună, tastatura, hârtiile, problemele… și totuși, seara, poate că atmosfera intimă de club a vreunui Internet-café local vă face să vă "frigă" degetele ! Poate un e-mail de la prietena rămasă acasă, poate vreun telefon urgent de la șef … Pentru aceia dintre Dvs. care nu se pot "rupe" complet de birou nici în vacanță, vom vorbi despre "firul subțire" care vă leagă de computerul de zi cu zi ! Poate un modem, poate un VPN, poate …
Urmașii lui Graham Bell
Nu cred că există întrebări pe care să le primesc mai frecvent decât de cele legate de modemuri. Aceste aparate par să exercite fascinație, mai ales într-o țară de dial-up-eri cum este România ! Totuși, datorită complexității și diversității, abordarea subiectului cere o oarecare doză de curaj… ☺
Un modem (MODulator/DEModulator) este un dispozitiv electronic care transformă semnalele electrice digitale, specifice computerelor, în semnale analogice, specifice telefoniei clasice. Operația de conversie de la digital la analogic poartă numele de modulare: informația digitală este "codificată" cu ajutorul unui semnal numit undă purtătoare (carrier). În sens opus, "extragerea" conținutului digital din unda purtătoare modulată se numește demodulare.
Principala clasificare a modemurilor se face în funcție de construcția lor. Modemurile pot fi interne, dacă iau forma unui circuit care se montează în calculator, într-un slot al plăcii de bază sau externe, dacă se conectează la acesta prin intermediul unui port (de obicei, serial sau USB).
Modemurile interne sunt preferate atunci când se dorește o construcție compactă și un preț mai redus; pentru mediile de lucru profesionale soluția rămâne însă existența unui modem extern, care nu ocupă loc în unitatea centrală, nu consumă resurse ale sistemului, nu generează instabilități software și poate fi transferat ușor de la o mașină la alta.
Indiferent de tipul modemului folosit, comunicația peste o linie telefonică este o comunicație serială. Așa cum sugerează și denumirea, în cazul unei comunicații seriale datele sunt codificate și transmise bit cu bit prin linia telefonică. De aceea, comunicația serială este, prin definiție, mai lentă decât alte tipuri de legături (de exemplu, rețeaua Ethernet).
Desigur, comunicația printr-o linie serială (de obicei o pereche de fire de cupru aparținând circuitului telefonic) nu este perfectă, ci se face cu un anumit procent de pierderi. De aceea, protocoalele de comunicații seriale includ metode de verificare a datelor transmise, care garantează că acestea au fost transferate fără pierderi/denaturări prin linia telefonică (datele greșit recepționate sunt retransmise).
De aceea, în cadrul unei comunicații seriale, prin linia telefonică nu se transferă numai informația originală, utilă, ci și coduri de control, checksum-uri, etc. (specifice protocolului folosit), care asigură fiabilitatea legăturii de date. Acest lucru face ca viteza de transfer a informației primare să fie și mai mică.
Viteza de funcționare a conexiunii se măsoară în biți pe secundă (bps) sau kilobiți pe secundă (kbps). Primele modemuri apărute atingeau o viteză de 2.400 bps, apoi 4.800 bps; modemurile actuale, care realizează compresia datelor înainte de a le transmite, reușesc să ajungă la viteze standard de 28.800 bps, 33.600 bps sau 56.000 bps. Pentru comparație, viteza de realizare a unei comunicații fax uzuale este de 9.600 bps sau 14.400 bps.
În cazul a două calculatoare conectate prin comunicație serială, lanțul COMPUTER1 -MODEM1 - LINIE - MODEM2 - COMPUTER2 trebuie privit ca un întreg. Desigur, "veriga" cea mai slabă (ca viteză) va impune performanța întregului lanț: dacă ISP-ul Dvs. vă oferă o conexiune Internet prin modemuri de doar 33,6 kbps, nu trebuie să vă mirați că nu puteți atinge viteza maximă de 56 kbps permisă de modemul Dvs. de acasă. Un parametru pe care mulți îl omit din calcule este chiar și viteza de comunicație între calculator și modem: calculatoarele "antice", dotate cu porturi seriale de tip mai vechi, nu vor putea comunica la viteză maximă cu un modem recent.
Medic de picior stâng
Pentru Dvs., utilizatori de Linux, alegerea unui modem (ca și a unei imprimante) este o operație delicată; și asta nu pentru că Linux ar fi prea "pretențios" cu modemul folosit, ci … Dar mai bine să vă explic în continuare.
Operația de realizare a unei legături seriale este foarte "solicitantă" pentru procesorul sistemului, și asta pentru că acesta trebuie să "acorde atenție" fiecărui bit sosit prin legătură. Modemurile "normale", pe care le vom numi în continuare full-hardware, încearcă să minimizeze aceasta încărcare, preluând pe cont propriu cea mai mare parte din sarcinile stabilirii și menținerii legăturii seriale. Din păcate, industria de hardware a "hotărât", în numele nostru, că un procesor actual (de la Pentium încoace) este suficient de puternic și rapid pentru a-și asuma sarcinile legate de funcționarea legăturii. Așa că astăzi se fabrică numeroase modemuri în construcția cărora s-a omis includerea unor circuite electronice (controllere ș.a.), scopul fiind diminuarea prețului modemului. În schimb, funcția circuitelor lipsă este preluată de procesorul central al sistemului, care gestionează funcționarea legăturii executând niște module software incluse în driverele modemului. Aceste "semi-modemuri" poartă denumirea, dupa caz, de modemuri software (software modems) sau modemuri fără controller (controllerless modem).
Socoteala producătorilor de hardware ar putea fi corectă, cu următoarele observații:
1. Computerul Dvs. trebuie să aibă o rezervă suficientă de putere (viteză) pentru ca încărcarea suplimentară a procesorului să nu fie vizibilă nici atunci când se execută și alte programe mari consumatoare de resurse. În caz contrar, suprapusă peste alte încărcări ale sistemului, funcționarea modemului software devine supărătoare.
2. Modulele-driver ale modemului trebuie să fie bine scrise de producător și 100% compatibile cu procesorul și cu sistemul de operare folosit. În caz contrar (și, din păcate, aceasta este situația cea mai frecventă) iau naștere blocaje, funcționare lentă a sistemului și a legăturii, întreruperea aleatoare a conexiunii, etc.
3. Dvs. trebuie să aveți (sau să puteți procura ușor) module-driver pentru orice sistem de operare alegeți să instalați. Din nefericire, marea majoritate a producătorilor de modemuri software nu "se obosesc" să ofere altceva decât software de Windows pe CD-ul care însoțește aparatul. Dacă folosiți Linux, Unix sau orice alt sistem de operare non-Windows, trebuie ca Dvs. să vă faceti rost de modulele software necesare. Dacă nu le găsiți pe situl producătorului, împreună cu instrucțiunile de instalare, nu vă rămâne decât alternativa de a le lua de la o terță persoană sau firmă sau de a vi le scrie singur. Pentru ca lucrurile să stea și mai rău, cei mai mulți producători nu numai că nu vând decât software de Windows, dar refuză, pur și simplu, să ofere suficiente detalii tehnice despre modem care să permită unui alt programator scrierea modulelor necesare. În acest ultim caz, modemul Dvs. este complet inutilizabil sub alt sistem de operare.
În timp, de la o generație la alta, modulele software pentru Windows pot deveni și ele incompatibile (de exemplu, modulele care funcționau sub Windows 98 nu vor mai funcționa sub Windows 2000). Vă puteți trezi nu numai în situația de a nu putea instala Linux (dacă vreți să folosiți modemul), ci și în aceea de a fi obligat să rămâneți la Windows 98, să zicem.
În ceea ce mă privește, eu refuz, pur și simplu, ca cineva să-mi aplice asemenea constrângeri și, din experiență, vă sfătuiesc cu căldură să procedați la fel. Soluția este una singură: să cumpărați un modem full-hardware, acceptând prețul lui ceva mai mare, și să vă asigurați că modelul ales funcționează "standard" sub toate sistemele de operare dorite. Ideal este un model extern (cum este familia "clasică" de la 3Com/U.S. Robotics, dar nu numai) care nu vă va impune nici măcar limitarea legată de slot ISA sau PCI.
Din cauza problemelor prezentate mai sus, multe modemuri software și-au câștigat denumirea de winmodemuri - ele funcționează exclusiv sub Windows. Pentru alte modele, programatori ingenioși și insistenți au găsit soluția funcționării (și) sub Linux - aceste modele au fost botezate linmodemuri. Pe Internet, situri cum ar fi www.linmodems.org și www.idir.net/ ~gromitkc/ winmodem.html vă pot oferi indicații în ce categorie se încadrează diversele modemuri pe care le găsiți. În alte cazuri, singura soluție de a alege este testarea înainte de cumpărare, garanția fermă a producătorului/vânzătorului sau cunoașterea prealabilă a modelului dorit.
Încercând să particularizăm pentru piața românească, vă pot spune că, din motive de preț, marea majoritate a vânzătorilor pe care îi cunosc oferă winmodem-uri. Personal, am încercat zadarnic să conving pe câțiva dintre ei de faptul că trebuie să existe și alternative, chiar și la costuri ceva mai mari. Unii nici nu mi-au acordat prea multa atenție - cum să iei în serios un om care are ciudățenia să folosească altceva decât Windows? ☺
În final, soluții practice am reușit să găsesc folosind unele modele de modemuri interne PCI Intel cu chipset Ambient (modemuri software cu drivere Linux oferite de producător), modemuri mai vechi Askey Davicom (slot ISA, 33,6 kbps) sau familiile externe SpeedCom+ și 3Com/U.S. Robotics (FaxModem 56K, FaxModem Message și excelentul Courier V.Everything). De remarcat că unele modemuri U.S. Robotics par a fi asamblate (fabricate?) în România și funcționează foarte bine.
Un alt aspect ce nu trebuie neglijat este cel al trimiterii și recepționării de faxuri. Câteva distribuții importante vin, în mod standard, cu programul mgetty+sendfax al lui Gert Doering (http://alpha.greenie.net). Pentru a funcționa, acesta are nevoie de un modem care să "știe" cel puțin clasa de faxing 2, dacă nu chiar 2.0 - și acestea nu sunt prea ușor de găsit pe piața românească. O alternativă este și programul efax, care suportă și modemuri cu clasa de faxing 1.
În fine, în cercetările Dvs. prin magazine veți întâlni multe modemuri cu conectare USB. Puteți alege și unul dintre aceste modele, dar trebuie să vă asigurați că îl puteți folosi sub Linux (multe dintre ele sunt winmodem-uri). În plus, în unele distribuții Linux suportul USB nu este pe deplin finisat.
"Inima-i un telefon…"
Aceia dintre Dvs. care au fost mai hotărâți în alegerea modemului se vor fi plictisit deja, așteptând să ajungem la momentul configurării. Iată:
Un modem extern se conectează la un port serial sau USB al calculatorului. Acesta poate fi oricare, dar trebuie să știți denumirea sa exactă. Un modem intern include un port serial propriu și va "răpi" sistemului anumite resurse (IRQ, I/O port). Următorul tabel vă poate ajuta să vă orientați - el conține setările cele mai uzuale:
Pentru modemurile interne, în funcție de tipul plăcii, de setările din BIOS și de capacitatea PnP a componentelor, pot exista mai multe moduri de a stabili parametrii de mai sus. Voi spune doar că v-aș recomanda ca în BIOS să avem pus "PnP OS Present= No". Plăcile ISA se configurează cu ajutorul utilitarelor isapnp și pnpdump, iar pentru plăci PCI lspci va afișa setările alocate de sistem. În fine, parametrii portului serial (viteza, întreruperea, etc.) pot fi afișați și stabiliți cu comanda setserial.
Primul test de funcționare pentru modemul Dvs. va fi efectuat cu programul minicom. Acesta va trebui configurat să lucreze pe portul serial la care ați conectat modemul (lansați-l, mai întâi, cu comanda minicom -s și indicați-i /dev/ttyS-ul corespunzător). În minicom, modemul ar trebui să răspundă comenzilor AT, similar cu felul în care o face în HyperTerminal sau în meniul Diagnostics al Windows-ului. Aceasta este, de obicei, prima indicație dacă (win)modem-ul Dvs. este "văzut" de sistem.
Mai departe, există o multitudine de moduri în care Dvs. puteți configura modemul, în funcție de scopurile la care vreți să îl utilizați (Internet, fax, acces la BBS, etc.). Pentru prima variantă, vă recomand să folosiți programul wvdial, împreună cu utilitarul său auxiliar wvdialconf. Acesta din urmă va scrie în /etc/wvdial.conf un fișier de configurare atât de asemănător cu fișierele .ini ale Windows-ului, încât nu voi face nici un fel de comentariu special. Sintaxa sa exactă se găsește în pagina manual.
Pentru cei absolut începători, voi spune doar că un număr de telefon poate fi format în impulsuri (modul PULSE), ca la vechile aparate telefonice cu disc sau cu semnalizare DTMF (modul TONE). Liniile telefonice moderne suportă atât TONE (preferat) cât și PULSE, dar o linie telefonică veche nu va "înregistra" un număr format în modul TONE. Modemul poate fi instruit să formeze numărul provider-ului de Internet într-un mod sau altul cu comenzile:
ATDP,1234567
sau
ATDT,1234567
Virgula indică o pauză de 2 s în formarea numărului - în cazul nostru, timpul necesar ca pe linia telefonică să "vină tonul".
Tot în fișierul /etc/wvdial.conf puteți seta și secventa de comenzi AT folosită de modem pentru initializare. Pentru a afla cum se face ea în Windows, deschideți cu un editor de texte fișierul .inf al modemului (de pe dischetă sau CD-ROM) și căutați liniile InitString1= InitString2= . Puteți adăuga aici și comenzi de genul ATM0 sau ATM1, pentru modificarea volumului difuzorului modemului.
În funcție de distribuția de Linux pe care o folosiți, pot exista diverse utilitare grafice, mai mult sau mai puțin reușite, pentru a seta conexiunea Internet. În Red Hat, utilitarul în cauză seamănă izbitor cu Internet Setup Wizard din Windows. În orice situație, vor lua naștere una sau mai multe interfețe seriale (numite pppo, ppp1, etc.) care vor fi activate sau dezactivate după nevoie (ifconfig pppo up, respectiv ifconfig pppo down). Veți auzi modemul formând numărul, conectându-se, etc. Este posibil ca setarea inițială a unei astfel de conexiuni să necesite puține experimentări, dar, odată pusă la punct…
Configurarea modemului pentru a trimite și recepționa faxuri (cu ajutorul programelor mgetty+sendfax sau efax) constituie un subiect vast, despre care vom vorbi separat. Voi spune aici doar că fișierele de configurare sunt /etc/mgetty+sendfax/mgetty.config și /etc/mgetty+sendfax/sendfax.config și că există o excelentă pagină info pentru aceste programe (info mgetty).
Abatele Faria
Ei, prieteni, eu tot vorbesc aici despre configurarea modemului și despre dial-up si Dvs. poate nici nu aveți așa ceva! În schimb, poate că așteptați cu nerăbdare să vă spun ce trebuie să facem pentru a realiza un tunel între rețeaua Dvs. privată de acasă, conectată permanent la Internet, și rețeaua Internet-café-ului din satul de vacanță!
Răspunsul nu este unul singur. Dacă aveți o legătură permanentă la Internet (adrese IP publice fixe) puteți crea un tunel între cele două rețele, cu condiția să aveți acces la ambele capete (la cel distant, poate, prin ssh, sau prin intermediul unei alte persoane care vă poate ajuta). Avantajul unui tunel este că cele două rețele pot comunica în mod liber.
Există mai multe protocoale prin care se poate realiza un tunel în Linux, dintre care voi aminti IPIP (IP in IP Encapsulation), GRE și CIPE. Dacă la cele două capete se întâmplă să aveți versiuni recente de Red Hat Linux, puteți crea tunele CIPE (criptate) direct din utilitarul grafic de configurare a rețelei. Dacă nu, vom folosi protocolul GRE, ca mai jos.
Să presupunem că există două rețele private A și B, 192.168.1.0 și 192.168.2.0 între care se dorește a fi realizat tunelul. Pe rețeaua A, există un router Linux având adresa publică 10.10.10.1, iar pe cea de-a doua routerul are 20.20.20.2 (adrese oarecare, alese cu rol de exemplu).
Mai întâi, verificați că cele două Linux-uri au, în kernel, suport pentru GRE - dacă nu, activați acest suport pe amândouă, incluzând modulul ip_gre.o:
modprobe ip_gre
Folosind o cheie comună, 22.33.44.55, aleasă aleator, creați capătul tunelului pe rețeaua apropiată, locală:
/sbin/ip tunnel del vacanta 2> /dev/null
/sbin/ip tunnel add mode gre vacanta
local 10.10.10.1 remote 20.20.20.2 key 22.33.44.55 ttl 255
/sbin/ifconfig vacanta 192.168.10.1
pointopoint 192.168.10.2
/sbin/route add -net 192.168.2.0 netmask
255.255.255.0 gw 192.168.10.2
Aici 192.168.10.1 și 192.168.10.2 sunt adresele capetelor de tunel, pe cele două rețele.
Pe rețeaua distantă, scrieți:
/sbin/ip tunnel del acasa 2> /dev/null
/sbin/ip tunnel add mode gre acasa
local 20.20.20.1 remote 10.10.10.1 key 22.33.44.55 ttl 255
/sbin/ifconfig acasa 192.168.10.2 pointopoint
192.168.10.1
/sbin/route add -net 192.168.1.0 netmask
255.255.255.0 gw 192.168.10.1
Includeți aceste comenzi în scripturi care se execută la lansare, spre exemplu în /etc/rc.d/rc.local. Odată lansate cele două scripturi, tunelul Dvs. ar trebui să fie activ.
Încheiere
Dacă ați activat acest tunel comod, iată că puteți lucra din nou - nu mai sunteți în vacanță ☺ !
Până la întâlnirea noastră viitoare, vă aștept cu întrebări și sugestii pe
www.linuxwill.go.ro și
pe [email protected].
|