Tag-Archive for ◊ router ◊

OpenWRT on Linksys WRT54GL
Thursday, July 09th, 2009 | Author: AlexJ

Cu o nouă ocazie de a mă juca cu Linksys-ul meu WRT54GL, am decis să schimb DD-WRT [1] cu OpenWRT [2].

OpenWRT este tot un firmware Open Source bazat pe Linux special făcut pentru routerele de acasă. Deși interfața web OpenWRT, la prima vedere, este mai primitivă decât cea DD-WRT, ea este, de fapt, mult mai flexibilă, permițând mult mai multe configurații. Dar, implicit, nu oferă la fel de multe servicii.

Linia de comanda (acces tot prin ssh), mai exact, structura directoarelor și a serviciilor este mult mai asemănătoare cu o structură a unei distribuții Linux.

Un utilitar foarte interesant este package manager-ul opkg care este asemănător cu dpkg/apt-get sau rpm/yum. Pachete noi pot fi instalate dintr-un repository de pe Internet folosind comanda opkg. În interfața web există o pagină dedicată administrăii pachetelor.

În rest, orice ce se poate face pe o mașină Linux, se poate face pe OpenWRT. Singura problemă este spațiul pus la dispoziție de flash-ul routului.

[1] http://alexj.info/?p=845

[2] http://www.openwrt.org/

DD-WRT on Linksys WRT54GL
Tuesday, April 21st, 2009 | Author: AlexJ

După ce am mutat reţeaua de acasă de pe un vechi router Linksys pe un Linux-box, am găsit scuze pentru a cumpăra un rotuer wireless Linksys WRT54GL.  Ce este bun la acest model este faptul că firmware-ul poate fi schimbat cu un third party firmware open source. Intre OpenWRT şi DD-WRT (şi altele) am ales să testez pe al doilea.

DD-WRT [1] este disponibil pentru o mulţime de modele de routere SOHO şi oferă o multitudine de servicii. Am început printr-o documentare foarte riguroasă asupra procedurii de flash-uire folosind wiki-ul [2] şi canalul de IRC [3] al comunităţii. Am fost foarte atent pentru că este foarte periculos şi poate aduce routerul într-o stare de ‘cărămidă’ (de nefolosit).

Deşi interfaţa GUI(web) implicită Linksys este destul de bună, cea oferită de DD-WRT este mult superioară. De asemenea firmware-ul nou oferă mute servicii, cum ar fi serverul de Telnet sau de SSH pentru administrare din linia de comandă. Prin accesarea CLI-ului avem acces la o interfată GNU/Linux (asta include utilitare ca vi, ifconfig, iptables, scp). Suportă VLAN-uri şi encapsulări pentru trunk-uri.

Interfaţa web ofertă statistici despre trafic şi totul poate fi urmărit de syslogd. Liste de acces, Tunele Virtuale, NAT şi QoS pot fi configurate din interfaţă. Routerul pote fi înregistrat ca HotSpot prin reţeaua Sputnik [4] (serviciu ce oferă o pagină de înregistrare pentru vizitatorii instituţiei unde este routerul, ce au nevoie de acces la Internet prin Wireless).

Una din necesităţile pentru reţeaua în care este routerul a fost să poată routa mai multe reţele. Folosind nişte scripturi este posibil ca Access Point-ul să difuzeze mai multe SSID-uri mapate pe domenii de broadcast diferite. Un tutorial pentru fi găsit aici [5]. Astfel, se pot crea reţele cu nivele diferite de protecţie.

Concluzia: Open Souce Software on Cisco Hardware is a good combination.

[1] http://www.dd-wrt.com/

[2] http://www.dd-wrt.com/wiki/index.php/

[3] irc://freenode/dd-wrt

[4] http://www.sputnik.com/

[5] http://www.pennock.nl/dd-wrt/Multiple_BSSIDs.html

Home Routers: GNS3 & IPv6
Thursday, November 13th, 2008 | Author: AlexJ

Termenul de care aud mult prea des in ultimul timp este IPv6. Don’t get me wrong, sunt pro IPv6, doar ca nu imi place ca se vorbeste prea mult si se implementeaza prea putin. In curiculumul nou de CCNA4 exista o buna bucata de IPv6 (desi calitatea lui lasa de dorit, precum si lipsa laboratoarelor practice).

Am decis sa fac un mini-lab in GNS3 (btw, ati putea sa va uitat peste Introul la GNS3) in care sa implementez basic IPv6 cu RIP ca protocol de rutare. O topologie cu 4 routere, legate astfel:

Primul lucru pe care il vom face e sa aplicam adresele. Ce mi-a placut mie la IPv6 e faptul ca merge mai usor configurarea pentru ca e mai putin de scris (cel putin daca folosesc adrese simple, pentru laburi). Desi adresa v6 este mult mai lunga, exista o metoda de a prescurta o adresa prin neglijarea zerourilor (ex. 0001:0000:0000:0000:0000:0000:0000:0002 se poate scrie doar 1::2). Pe langa prescurtarea adresei se prescurteaza si subnetul (deci vom folosi notatia cu / ex. /64).

Vom folosi patru retele /96 de exemplu (asta inseamna ca fiecare retea va avea disponibile atatea adrese IP pentru hosturi cat tot spatiul de adresare IPv4…cool huh? :P merge impotriva a tot ce am invatat despre conservarea IPurilor :P ). Si vom avea retele 1::0, 2::0, 3::0 si 4::0 /96.  Configuarea va arata cam asa:

R1>en

R1#configure terminal

R1(config)#interface f0/0

R1(config-if)#ipv6 address 1::1/96

R1(config-if)#no shutdown

R1(config)#end

Practic singura diferenta este faptul ca in loc de “ip address” avem “ipv6 addess”. Atentie, o interfata poate avea ambele adrese IP, si v4 si v6.

Facem o verificare daca am configurat cum trebuie cu #show ipv6 interface brief.

Facusem o greseala si vroiam sa va atrag atentia Pe R1 am setat gresit adresa ip (v6) si apoi am setat-o si pe cea buna. Nu se suprascrie peste cea veche… pot fi mai multe adrese asociate unei interfete. Am corectat dupa. Daca incercati sa dati show ip int brief veti vedea ca nu este nimic acolo. Sunt stackuri diferite… saterile ipv4 cu cele ipv6 nu au nici o legatura.

Hai sa trecem la routare. Prima data trebuie sa activam forward-area de pachete ipv6 prin comanda data pe toate routerele

R1(config)#ipv6 unicast-routing

Next, pornim RIP-ul. RIPv6 seamana putin cu OSPF deoarece putem lansa mai multe instante, doar ca in loc sa fie identificate prin numar de proces, sunt identificate printr-un nume. Activarea RIP se face prin

R1(config)#ipv6 router rip nume

R1(config-rtr)#exit

Spre deosebire de RIPul vechi, nu vom mai specifica retelele pe care facem schimb de route, ci vom specifica interfetele.

R1(config-if )#ipv6 rip nume enable

Verificam daca au fost invatate rutele prin show ipv6 route

Informatile despre procesele RIP le aflat prin show ipv6 rip

In tabele din show ip route nu se va produce nici o modificare deoarece, dupa cum am zis, sunt stive diferite.

Un ping intre oricare adrese va demonsta ca avem o convergenta.

That’s all.

Home Routers: Dynagen tips & tricks
Friday, September 05th, 2008 | Author: AlexJ

Continuare la introul despre Dynagen si Dynamips, as vrea sa prezint niste feature-uri din acestea.
Accesul la routerele emulate se face prin telnet. By default, clinetul este telnet-ul din Windows sau Linux (care in cazul Windows sucks…parerea mea…si asta daca el este instalat, a se vedea Vista). Eu prefer sa folosesc Putty in loc de orice telnet. Programul cu care se face accesul se poate modifica, foarte usor. Din fisierul dynagen.ini din directorul radacina al Dynagen comentati linia cu telnet (cu un # in fata liniei) si decomentati-o pe cea cu Putty de exemplu (verificati ca path-ul sa fie corect spre executabil).

Un element important in Dynamips este IdlePC-ul. Acesta este o valoarea numerica, on cod care optimizeaza procesul de rulzare a IOS-ului, micsorand semnificativ consumul de procesor.

Rularea unei topologii in Dynagen se face prin deschiderea fisierelor .net (unde este descrisa topologia). Se deschide o interfata command line de unde se pot porni routerele ( start ROUTER_ NAME ), accesa routerele (telnet ROUTER_NAME) si se pot gasi si valorile IdlePC ce pot optimiza ruterele ce ruleaza pe sistem (idlepc get ROUTER_NAME). Vor returna pana la 10 valori, unele mai performante, alte nu. Aplicati una din ele. Exista totusi posibilitatea ca dynamips-ul sa dea eroare si sa pice.

Singurul lucru care m-a impresionat cu adevarat la dynagen este faptul ca pot face interactiunea intre routerul emulat si interfetele fizice de pe masina gazda.

Un fisier .net arata astfel:

[[ROUTER R1]]

f0/0 = R2 f0/0

[[ROUTER R2]]

f0/0 = R1 f0/0

Pe scrut, interfata_locala = echipament_vecin interfata_ecipament_vecin.

Putem face legatura cu o interfata fizica printr-o linie interfata_locala = cale_interfata. Acesta cale poate fi aflata scriptul Network device list (este un .bat in Windows sau un bash script in Linux). Dynagen-ul va presupune ca interfata routerului si interfata fizica a calculatorului gazda sunt conectate la un switch virtual. Tot ce trebuie sa faceti e sa puneti IP-uri din aceeasi retea si aveti legatura.

Iata o topologie simpla. Un router ‘conectat’ la un PC.

Routerul are adresa 192.168.238.2 si calculatorul 192.168.238.1. Ping succesfull :) .

Home Routers: GNS3/dynagen/dynamips Intro
Wednesday, August 20th, 2008 | Author: AlexJ

Daca vreti sa va jucati cu un router Cisco si nu aveti acces la un echipament adevarat, aveti nevoie de un soft care sa va ofere aceleasi functii ca the real deal. Am mai mentionat Packet Tracer, un tool oferit de Cisco cu multe functii oferite (cel putin de la versiunea 4 in sus). Imi place foarte mult sa il folosesc si il recomand. Dar Packet Tracer este un simulator. Aceasta inseamna ca doar simuleaza ce ar trebui sa faca adevaratul router. In spate sunt doar niste if-uri si else-uri si in functie de ce comanda este introdusa si anumiti parametrii se returneaza un output.

O alta varianta ar fi un emulator. Diferenta este ca in loc sa simuleze ce ar face codul IOS-ului (sistemul de operare al routerelor Cisco), el chiar ruleaza codul doar ca nu pe platforma routerului (Power PC) ci pe o platforma de PC (i386).  Un astfel de soft este Dynamips, care ruleaza IOS-ul pe un PC sub forma unui daemon (serviciu), accesibil prin telnet pe un port pe localhost. Pentru a crea o retea de astfel de routere avem nevoie de un al doilea program care sa le lege. Aici intervine Dynagen. Acesta controleaza instante de dynamips in functie de setarile fisierului .net unde se mentioneaza routerele si felul in care sunt conectate (prin interfete Ethernet/ Seriale, switch virtual sau nor de Frame Relay).

Dar interfata dynagen este foarte user unfriendly (command line care mai ales in Windows e..well..Windows). Aici intervine GNS3. Este o interfata grafica care ruleaza deasupra lui dynagen si dynamips si este la fel de usor de folosit ca Packet Tracer. Puteti downloada installerul de Windows complet cu toate pachetele necesare (inclusiv dynamips si WinPCAP- pachetul ce captureaza pachetele pe pe interfete) de aici.

Dupa instalare, la prima rulare a GNS3 trebuie specificata calea catre executabilul dynamips (ar trebui sa fie detectat automat) si, mai important, calea catre un IOS. Atentie! Dynamips este doar emulatorul, programul de baza PESTE care ar rula un IOS. Asta inseamna ca de sistemul de operare al routerului trebuie sa faceti rost voi (Cisco IOS este un sistem de operare proprietar si closed-source… trebuie sa aveti drep de folosire al lui). IOS-ul vine sub forma unui fisier .bin, cu o dimensiunea de 10-50MB in functie de capabilitatile versiunii respective. Trebuie sa asociati modele de routere din GNS3 cu anumite sisteme de operare.

Designul unei topologii este foarte usor. All drag’n'drop. Adaugati echipamente din meniul din stanga si le conectati cu cablurile respective.

(Don’t mind the quality of the images…all done in MSPaint :P )

Pasul urmator este sa porniti routerele…

Dupa pornire, puteti sa accesati routerele prin Telnel. Din acelasi meniu ca si Start aveti Console. Rezultatul:

Si asta ar fi GNS3 in 10 minute. Recunosc ca sistemul nu e chiar usor pentru un incepator, dar de multe ori merita.

Pros and Cons: Proul este ca e un emulator si nu un simulator, deci permite cea mai realistica simulare a unui router. Cons-urile sunt mai multe: in primul rand mananca o cantitate imensa de resurse (RAM si CPU). In al doilea rand, trebuie sa procurati IOS-ul (ceea ce nu e usor). Si de simulat, nu putem emula decat routere si PIX-uri (cu ceva munca am inteles ca se poate emula si un Switch Layer3).

Am zis ca o introducere in acest sistem este necesara deoarece as dori sa revin cu alte exemple de lucruri ce pot fi facute cu aceste tooluri.