CURSUL 06

Rutare

Durată: 113 min de predare Nivel: licență, anul III - fără cunoștințe prealabile Disciplină: Rețele Locale Laborator asociat: Laboratorul 05 PDF: descarcă suportul EN English version

Un ruter nu cunoaște Internetul. Nu are o hartă a lumii și nu întreabă pe nimeni unde e destinația. Are doar o listă de direcții și o regulă de alegere, pe care le aplică din nou și din nou, pentru fiecare pachet în parte. Cursul acesta arată cum arată acea listă, cum ajung rutele în ea și de ce ordinea liniilor contează atât de mult.

1Recapitulare5 min

Ce trebuie să aveți în minte
  • Adresa IP e ierarhică: partea de rețea plus partea de host, separate de mască.
  • ȘI între adresă și mască dă adresa de rețea. Această operație e inima cursului de azi.
  • Adresele IP rămân constante de la un capăt la altul; cele MAC se rescriu la fiecare salt.
  • TTL este decrementat de fiecare ruter și oprește buclele.

Rezultate ale învățării

  • Să explicați ce e o rută și ce rol are metrica
  • Să spuneți, pentru orice rută, din ce sursă provine și ce distanță administrativă are
  • Să citiți o tabelă de rutare și să prevedeți exact ce se întâmplă cu un pachet dat
  • Să configurați rute statice, cu next-hop sau cu interfață de ieșire, și să știți când merge fiecare
  • Să scrieți o rută implicită și o rută flotantă de rezervă
  • Să calculați o rută sumarizată și să folosiți interfața Null0

2Rolul și funcțiile ruterului9 min

Din punct de vedere arhitectural, un ruter este un calculator specializat: are procesor, memorie și dispozitive de intrare/ieșire. Diferențele față de un calculator obișnuit sunt însă semnificative, iar toate servesc aceluiași scop - să ia decizii de dirijare cât mai repede.

ComponentăRol într-un ruterSe pierde la repornire?
ROMcodul de pornire (bootstrap) și o imagine de urgențănu - e permanentă
Flashsistemul de operare, adică imaginea IOSnu
RAMconfigurația activă, tabela de rutare, tabela ARP, cozile de pacheteda - tot
NVRAMconfigurația de pornirenu
ASIC-uricircuite dedicate care execută comutarea pachetelor în hardware-
Distincția care salvează o configurație running-config trăiește în RAM și este ce rulează chiar acum. startup-config trăiește în NVRAM și este ce se va încărca la următoarea pornire.

O configurație perfectă, nesalvată cu copy running-config startup-config, dispare la prima pană de curent - sau la prima repornire făcută de altcineva. Este eroarea numărul unu în laboratoare și, din păcate, și în rețele reale.
De ce un ruter e mai lent decât un switch

Un switch citește primii 12 octeți ai cadrului - cele două adrese MAC - și caută într-o tabelă cu potrivire exactă. Operația se face în hardware, într-un singur ciclu.

Un ruter trebuie să decapsuleze nivelul 2, să citească antetul IP, să decrementeze TTL, să recalculeze suma de control, să caute în tabela de rutare cu potrivire de prefix - nu exactă - și apoi să reîncapsuleze cadrul cu alte adrese MAC, ceea ce poate necesita o rezoluție ARP.

Ruterele moderne fac și asta în hardware, dar rămâne mai multă muncă. De aici și diferența de preț per port.

Pe lângă funcția de bază, ruterele moderne mai fac: filtrarea traficului cu ACL-uri (cursul 7), translatarea adreselor cu NAT și PAT (cursul 9), stabilirea de tuneluri, atribuirea de adrese ca server DHCP și proxy ARP.

3Ruta și metrica9 min

Ruta
Tripletul (destinație, direcție, distanță).

„Pentru a ajunge la Brașov pot trece prin Ploiești; distanța totală va fi de 120 km." - (Brașov, Ploiești, 120 km).

Tripletul e suficient nu doar pentru a merge, ci și pentru a alege între mai multe posibilități.

În rețele, „distanța" în kilometri nu spune nimic util. Mărimea asociată unei rute se numește metrică și poate fi oricare dintre următoarele, sau o combinație:

MetricăCe măsoarăCine o folosește
Hop countnumărul de rutere până la destinațieRIP
Costinvers proporțional cu lățimea de bandăOSPF
Metrică compusăbandă, întârziere, încărcare, fiabilitateEIGRP
Atribute de politicăpreferințe administrative, nu performanțăBGP
De ce hop count-ul e o metrică proastă

Ruterul S are două căi spre aceeași destinație: una prin A, cu 2 hopuri, dar prin două legături seriale de 64 kbps; alta prin B, cu 3 hopuri, dar prin fibră de 10 Gbps. Ce alege RIP?

Vezi răspunsul

RIP alege calea prin A, cu 2 hopuri - pentru că este singurul lucru pe care îl măsoară.

Rezultatul: traficul trece prin legături de 64 kbps, în loc de fibră de 10 Gbps. Diferența este de peste 150 000 de ori.

Exact această slăbiciune a dus la înlocuirea RIP cu OSPF, care măsoară costul invers proporțional cu banda. Detalii în cursul 10.

4De unde vin rutele8 min

Când un ruter neconfigurat pornește, nu cunoaște nicio rută. Rutele apar din trei direcții:

SimbolSursăCum apareEfort
CConnectedautomat, pentru fiecare interfață activă cu adresă IP configuratăniciunul
LLocalautomat, adresa /32 a interfeței însășiniciunul
SStaticscrisă manual de administratoro linie per rețea, per ruter
R, D, O, Bdinamicînvățată automat de la vecini prin RIP, EIGRP, OSPF, BGPconfigurare inițială, apoi automat
Diferența dintre C și L

Când configurați 192.168.1.1/24 pe o interfață, ruterul creează două intrări:

  • C 192.168.1.0/24 - „rețeaua asta e direct atașată la mine, pe interfața X"
  • L 192.168.1.1/32 - „adresa asta sunt chiar eu"

A doua există ca ruterul să știe imediat, fără niciun calcul, când un pachet îi este destinat lui însuși - de exemplu un ping către interfața lui, sau o conexiune SSH de administrare.

Terminal: explorați tabela de rutare a unui ruter

6Tabela de rutare și procesul de decizie13 min

Tabela de rutare este harta ruterului către rețeaua din jur. Este organizată de la rutele cele mai specifice (mască lungă) spre cele mai generale, iar procesul de dirijare a unui pachet are exact doi pași.

  1. Primirea pachetului. Se decapsulează antetul de nivel 2, se citește adresa IP destinație din antetul de nivel 3, se decrementează TTL și se recalculează suma de control.
  2. Găsirea rutei. Se parcurge tabela; pentru fiecare rută se face ȘI între masca ei și adresa destinație, iar rezultatul se compară cu adresa de rețea a rutei. Prima potrivire câștigă. Dacă nu se găsește nimic, pachetul e aruncat și se trimite un ICMP destination unreachable.
Cea mai lungă potrivire de prefix Ordonarea tabelei de la specific la general nu e o convenție estetică - este chiar algoritmul. Parcurgând în această ordine și oprindu-se la prima potrivire, ruterul găsește automat cea mai specifică rută care se potrivește.

De aceea o rută /26 bate una /8: apare mai devreme în tabelă. Iar ruta implicită, /0, e ultima - se aplică doar dacă nimic altceva nu s-a potrivit.
Consultarea tabelei de rutare - testați destinații
Experimente propuse
  1. 13.1.0.5 - se potrivește atât cu /14, cât și cu /8. Câștigă prefixul mai lung. Urmăriți coloana din dreapta ca să vedeți de ce.
  2. 13.128.0.1 - nu mai încape în /14, deci cade pe /8. Aceeași rețea „13", altă rută.
  3. 192.168.3.7 - se potrivește și cu /24 (spre Null0), și cu /20. Câștigă /24, deci pachetul este aruncat deliberat.
  4. 8.8.8.8 - nu se potrivește cu nimic specific și cade pe ruta implicită.
  5. 172.30.14.9 - nu se potrivește cu niciuna dintre cele două rute conectate. Verificați de ce, calculând ȘI-ul.
Cele două legi ale rutării 1. Rutarea se face individual, pentru fiecare pachet în parte. Două pachete ale aceleiași conexiuni pot lua căi diferite, dacă între timp s-a schimbat ceva.

2. Fiecare ruter ia decizia exclusiv pe baza propriei tabele. Nu există coordonare, nu există confirmare că pachetul a ajuns și - foarte important - nu există nicio garanție că drumul de întoarcere este același.
De ce a doua lege contează în practică

Configurați o rută pe ruterul A spre rețeaua din spatele lui C. Dați ping. Nu merge. De ce?

Vezi răspunsul

Pentru că pachetul a ajuns la destinație. Dar destinația a răspuns, iar răspunsul nu are pe unde să se întoarcă: ruterul C nu știe unde e rețeaua lui A.

Rutarea trebuie configurată în ambele direcții, întotdeauna. Este cea mai frecventă greșeală de început și produce simptomul cel mai derutant: „pachetul pleacă, dar nu primesc răspuns".

Cum verificați: dați ping din C spre A. Dacă nici acela nu merge, știți sigur unde e problema.

Decizia de rutare, pas cu pas

7Ruta implicită7 min

Ruta 0.0.0.0/0, numită și quad-zero, are masca formată numai din zerouri. Operația ȘI cu ea dă întotdeauna 0.0.0.0, care coincide întotdeauna cu adresa de rețea a rutei - deci se potrivește cu orice destinație.

Fiind cea mai generală, ocupă ultima poziție în tabelă și se aplică doar dacă nimic altceva nu s-a potrivit. Este ruta pe care orice rețea mică o are spre furnizorul de Internet.

Analogie Un birou de sortare a corespondenței are rafturi pentru destinațiile pe care le cunoaște: „Brașov", „Cluj", „București". Iar la capăt are un raft mare pe care scrie „restul lumii". Tot ce nu se potrivește pe niciun raft specific ajunge acolo și pleacă spre centrul de sortare superior.

Ruta implicită este acel raft. Iar ruterul furnizorului de Internet este centrul de sortare superior.
Cine are și cine nu are rută implicită O rețea de întreprindere are, de regulă, o singură rută implicită - spre furnizor.

Ruterele din nucleul Internetului nu au niciuna. Ele trebuie să cunoască explicit toate cele peste 900 000 de prefixe globale, pentru că nu există „mai sus" unde să trimită ce nu cunosc. Aceasta e diferența dintre a fi la marginea Internetului și a fi în mijlocul lui.

8Rute statice11 min

O rută statică este scrisă manual de administrator. Direcția poate fi exprimată în două feluri, iar alegerea între ele nu e indiferentă.

cele trei forme ale unei rute statice
! prin adresa urmatorului salt - merge intotdeauna
R1(config)# ip route 192.168.10.0 255.255.255.0 10.0.0.3

! prin interfata de iesire - doar pe legaturi punct-la-punct
R1(config)# ip route 192.168.10.0 255.255.255.0 serial 0/0/0

! ambele, varianta cea mai explicita si mai rapida
R1(config)# ip route 192.168.10.0 255.255.255.0 serial 0/0/0 10.0.0.3

! ruta implicita
R1(config)# ip route 0.0.0.0 0.0.0.0 10.0.0.3
De ce next-hop-ul contează pe Ethernet
Există și o portiță - dar nu vă bazați pe ea Forma cu interfață poate funcționa pe Ethernet dacă vecinul are activat proxy ARP: el va răspunde la cererea ARP în locul destinației, cu propria adresă MAC.

A construi o rețea pe această bază înseamnă însă a construi o rețea care se strică atunci când cineva, absolut corect, dezactivează proxy ARP din motive de securitate. Scrieți next-hop-ul.
Exercițiu rezolvat

Trei rutere A, B, C legate în triunghi. A are LAN-ul 172.16.0.0/16, B are 144.13.248.0/21, C are 140.20.0.0/20. Legătura A–C este 10.0.0.4/30 (A are .5, C are .6). Configurați rute statice astfel încât LAN A să comunice cu LAN C, pe calea optimă.

Vezi rezolvarea
configurație
A(config)# ip route 140.20.0.0 255.255.240.0 10.0.0.6
C(config)# ip route 172.16.0.0 255.255.0.0 10.0.0.5

Ambele rute sunt necesare - legea a doua a rutării. Pachetul ajunge la destinație cu prima, dar răspunsul nu are pe unde să se întoarcă fără a doua.

Atenție și la măști: /20 înseamnă 255.255.240.0, nu 255.255.255.0. O mască greșită produce un simptom bizar: unele stații răspund, altele nu.

Ruta flotantă

Uneori vrem o cale de rezervă, care să se activeze doar dacă cea principală dispare. Se obține dându-i rutei de rezervă o distanță administrativă mai mare.

rută principală și rută flotantă
! principala - AD implicit 1
R1(config)# ip route 172.20.19.0 255.255.255.0 10.0.0.6

! rezerva - AD 200, deci nu intra in tabela cat timp prima e valida
R1(config)# ip route 172.20.19.0 255.255.255.0 10.0.0.2 200

Verificați cu show ip route: ruta cu AD 200 nu apare în tabelă atât timp cât cea cu AD 1 e validă. Închideți interfața principală și priviți din nou - a apărut. Redeschideți-o și verificați că se retrage.

9Traseul complet al unui pachet11 min

Aici punem cap la cap tot ce am învățat: ARP din cursul 5, comutarea din cursul 3 și rutarea de azi. Este exercițiul care apare, într-o formă sau alta, la fiecare examen.

Un pachet, de la un capăt la altul

10Sumarizarea rutelor și interfața nulă11 min

Un ruter care are patru rute spre patru subrețele consecutive le poate înlocui pe toate cu una singură, dacă acestea au un prefix comun. Procesul se numește sumarizare (sau agregare).

Cum se calculează

Se scriu adresele în binar și se observă câți biți de la stânga sunt comuni tuturor. Acel număr este prefixul rutei sumarizate.

192.168.1.0/26    192.168.1.00000000
192.168.1.64/26   192.168.1.01000000
192.168.1.128/26  192.168.1.10000000
192.168.1.192/26  192.168.1.11000000
──────────────────────────────────
comun: primii 24 de biți  →  192.168.1.0/24
Exercițiu propus

Care este ruta sumarizată pentru 10.4.0.0/16, 10.5.0.0/16, 10.6.0.0/16 și 10.7.0.0/16?

Vezi rezolvarea

Se compară al doilea octet, în binar:

4 = 00000100
5 = 00000101
6 = 00000110
7 = 00000111

Primii 6 biți sunt comuni: 000001. Primul octet contribuie cu 8 biți comuni, deci total 8 + 6 = 14.

Ruta sumarizată: 10.4.0.0/14.

Verificare: /14 acoperă 2(32−14) = 262 144 adrese, adică exact patru blocuri /16. Corect.

Cât economisește o sumarizare

Alegeți /26 sumarizat la /24: patru rute devin una. Alegeți /30 sumarizat la /22 - cazul legăturilor punct-la-punct dintr-o rețea mare - și veți vedea de ce sumarizarea nu este un moft: 256 de linii înlocuite cu una singură, în tabela fiecărui ruter din rețea.

De ce contează, la scară Avantajul imediat: tabele de rutare mai mici, căutări mai rapide, mai puține actualizări atunci când o subrețea apare sau dispare.

La scara Internetului, sumarizarea este singurul motiv pentru care tabela globală de rutare are sute de mii de intrări în loc de sute de milioane. Fără ea, Internetul nu ar funcționa la dimensiunea actuală.

Efectul secundar și interfața nulă

Sumarizarea are un preț. Dacă din cele patru subrețele una - să zicem 192.168.1.128/26 - nu mai există, ruta sumarizată 192.168.1.0/24 continuă să atragă traficul pentru ea și îl trimite mai departe, unde va fi aruncat abia la capătul lanțului. În cazul unei bucle, traficul poate chiar oscila între rutere până la expirarea TTL-ului.

Soluția este o rută statică spre Null0, interfața nulă: o destinație care aruncă imediat tot ce primește. Fiind mai specifică decât ruta sumarizată, ea câștigă și oprește traficul chiar la sursă.

ruta „groapă de gunoi"
R1(config)# ip route 192.168.1.128 255.255.255.192 null0

Echivalentul din lumea Linux este /dev/null; ideea e aceeași - un loc în care lucrurile dispar, la cerere și fără eroare.

11Erori frecvente4 min

  • „Am configurat ruta, dar ping-ul nu merge" În nouă cazuri din zece, lipsește ruta de întoarcere. Pachetul ajunge; răspunsul nu are pe unde să vină înapoi. Rutarea se configurează întotdeauna în ambele direcții.
  • „Am comparat metricile a două protocoale diferite" Nu sunt comparabile. Se aplică întâi distanța administrativă. Prefix mai lung → AD mai mic → metrică mai mică. În această ordine.
  • „Am scris ruta cu interfața de ieșire, pe Ethernet" Ruterul nu știe ce adresă MAC să pună în cadru, pentru că pe segment sunt mai mulți candidați. Pe Ethernet, scrieți întotdeauna next-hop-ul.
  • „Am salvat configurația… cred" running-config e în RAM. Fără copy running-config startup-config, se pierde la repornire. Salvați după fiecare bloc de modificări, nu la final.
  • „Am sumarizat și acum unele destinații nu mai răspund" Ruta sumarizată acoperă și subrețele care nu există sau nu sunt ale voastre. Adăugați rute spre Null0 pentru porțiunile neutilizate ale blocului.

12Rezumat și glosar5 min

  1. O rută este tripletul (destinație, direcție, distanță). Distanța se numește metrică și depinde de protocol.
  2. Selecția se face în ordine: prefix mai lung → AD mai mic → metrică mai mică.
  3. Tabela e ordonată de la specific la general, iar prima potrivire câștigă. Ruta implicită e ultima.
  4. Pe Ethernet, o rută statică are nevoie de next-hop, pentru că altfel lipsește adresa MAC destinație.
  5. Adresele IP rămân constante pe tot traseul; cele MAC se rescriu la fiecare salt; TTL scade cu 1 la fiecare ruter.
  6. Sumarizarea micșorează tabelele; Null0 oprește traficul spre porțiunile neutilizate.
rutătripletul destinație, direcție, distanță
metricăcalitatea unei rute, măsurată de protocolul care a produs-o
distanță administrativăcât de multă încredere are ruterul în sursa rutei
next-hopadresa IP a următorului ruter de pe traseu
longest prefix matchregula după care cea mai specifică rută câștigă
rută implicită0.0.0.0/0 - se potrivește cu orice, se aplică ultima
rută flotantărută de rezervă, cu AD mărită deliberat
sumarizareînlocuirea mai multor rute cu una singură, mai generală
Null0interfața care aruncă tot ce primește
running-configconfigurația activă, din RAM; se pierde la repornire
startup-configconfigurația din NVRAM, încărcată la pornire

13Întrebări de verificare7 min

14Direcții de aprofundare și bibliografie2 min

Rutele statice sunt exacte și previzibile, dar nu reacționează la nicio schimbare și nu scalează. Cursul 10 introduce protocoalele care întrețin tabela singure. Până atunci, cursurile 7 și 9 arată ce altceva mai poate face un ruter cu pachetele care trec prin el: să le filtreze și să le rescrie adresele.

La laboratorul 5 configurați exact topologia de aici, întâi cu rute statice și apoi cu OSPF, apoi tăiați un cablu și cronometrați cine își revine mai repede.

  • RFC 1812 - cerințele pentru rutere IPv4
  • RFC 4632 - CIDR și agregarea rutelor
  • Cisco - IP Routing: Protocol-Independent Configuration Guide
  • Radia Perlman, Interconnections: Bridges, Routers, Switches and Internetworking Protocols