Metode de populare a tabelului de rutare. Rutarea rețelei

Un articol despre tabelul de rutare este un subiect care a fost promis acum aproximativ patru ani. De fapt, ar fi trebuit să scriu despre asta cu mult timp în urmă, dar nu m-am putut decide și abia acum încerc.

Manipularea tabelului de rutare vă permite să reglați fin funcționarea . Cel mai adesea, acest lucru nu este necesar, dar uneori trebuie să faceți ceva neobișnuit, mai ales când există mai multe adaptoare pe computer, iar apoi trebuie să vă ocupați de tabelele de rutare.

Vizualizarea tabelului de rutare

Iată rezultatul comenzii route print pe computerul meu desktop:

Adresă de rețea Mască de rețea Adresa gateway-ului Interfață Metrici
0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.100 20
127.0.0.0 255.0.0.0 Pe link 127.0.0.1 306
127.0.0.1 255.255.255.255 Pe link 127.0.0.1 306
127.255.255.255 255.255.255.255 Pe link 127.0.0.1 306
192.168.1.0 255.255.255.0 Pe link 192.168.1.100 276
192.168.1.100 255.255.255.255 Pe link 192.168.1.100 276
192.168.1.255 255.255.255.255 Pe link 192.168.1.100 276
244.0.0.0 240.0.0.0 Pe link 127.0.0.1 306
244.0.0.0 240.0.0.0 Pe link 192.168.1.100 276
255.255.255.255 255.255.255.255 Pe link 127.0.0.1 306
255.255.255.255 255.255.255.255 Pe link 192.168.1.100 276

Acesta este modul în care putem vizualiza tabelele de rutare. Să încercăm să descriem ce înseamnă toate acestea. Fiecare linie specifică unde să se trimită ce pachete. Adică, o rută de rețea este creată pentru intervalul specificat de valorile din coloanele „adresă de rețea” și „mască de rețea”. De exemplu, adresa 192.168.0.1 și masca 255.255.255.0 înseamnă că are în vedere intervalul 192.168.0.*. Masca arată întotdeauna ca 255 la început, zero la sfârșit și ultimul număr diferit de zero poate o putere de doi minus unu. De exemplu, pentru masca 255.255.127.0 și aceeași adresă 192.168.0.1, intervalul va fi puțin mai larg, va include și adrese precum 192.168.1.*. Pentru a descrie acest lucru mai precis, trebuie să reprezentăm toate numerele în formă binară, dar nu acesta este scopul articolului.

Deci, dacă ne-am hotărât asupra unui interval, trebuie să înțelegem unde va trimite computerul pachetele dacă sunt destinate adreselor din acest interval. Să începem cu a patra coloană. Acesta determină adaptorul către care trebuie trimise pachetele. De exemplu, în în acest caz,, conține 192.168.1.100 - aceasta este adresa mea placa de reteași 127.0.0.1 - așa-numitul loopback. Computerul nici măcar nu va încerca să trimită pachete „la acest adaptor” nicăieri. Dacă aș avea un alt card activ, de exemplu, WiFi, atunci adresa acestuia ar apărea în a patra coloană.

A treia coloană definește „gateway-ul” - routerul către care trebuie trimise aceste pachete. Când scrie „On-link”, înseamnă că nu este nevoie de routere - adresa este deja la îndemână. Ultima coloană este valoarea. Determină preferința pentru o rută atunci când există opțiuni. Rândurile cu cea mai mică valoare sunt preferate atunci când intervalele se potrivesc.

Deci, să ne uităm la rutele descrise. De fapt, cea mai importantă linie în acest caz este prima linie. Ea spune că pentru orice adresă (adresa 0.0.0.0 cu o mască 0.0.0.0 specifică gama completă) există o rută folosind placa mea de rețea, iar aceste pachete pot fi direcționate către 192.168.1.1. Ultima adresă este a mea, care explică totul. Orice adresă pe care computerul nu o poate găsi undeva în apropiere va fi trimisă la router și lăsată să se ocupe de ea.

Să vorbim despre restul. Cele trei linii aproximativ 127 sunt de sistem, din cauza faptului că aceste adrese trebuie întotdeauna returnate computerului propriu-zis. Adresele din intervalul 192.168.1.* sunt rețeaua locală, 192.168.1.100 este adresa noastră în general, 192.168.1.255 este o adresă specială pentru pachetele de difuzare în retea locala. Adresele 244.0.0.0 sunt, de asemenea, adrese fixe speciale pentru difuzare, iar ultimele două linii sunt determinate de adaptoarele în sine.

Dar acest caz este destul de neinteresant. Să ne uităm la tabelul de pe routerul meu. Aspectul va fi ușor diferit, deoarece este Linux și afișez tabelele corespunzătoare cu comanda route -n.

DestinaţiePoarta de accesGenmaskSteaguriMetricRefUtilizareIface
10.0.20.43 0.0.0.0 255.255.255.255 UH0 0 0 ppp0
192.168.1.0 0.0.0.0 255.255.255.0 U0 0 0 br0
10.22.220.0 0.0.0.0 255.255.255.0 U0 0 0 vlan1
10.0.0.0 10.22.220.1 255.224.0.0 U.G.0 0 0 vlan1
127.0.0.0 0.0.0.0 255.0.0.0 U0 0 0 uite
0.0.0.0 10.0.20.43 0.0.0.0 U.G.0 0 0 ppp0

Să observăm imediat că coloanele s-au schimbat puțin. Nu ne vom opri pe toate; ultima coloană care a fost modificată semnificativ este ultima - în loc de adresa IP a adaptorului, indicăm numele acestuia. Aici lo este o „buclă” (nu trimiteți nicăieri), br0 este o rețea internă, ppp0 este una externă, vlan0 este o conexiune VPN stabilită. Deci, să ne uităm la rânduri. Tot în coloana cu steaguri, litera G înseamnă Gateway - gateway, iar H - Host, computerul nostru.

Ultima linie este gateway-ul implicit. Putem trimite orice colet la adresa 10.0.20.43. Ceea ce este interesant este că acesta este al nostru adresa proprie, obtinut cu Instalare VPN- conexiuni! Așa se întâmplă întotdeauna când se stabilește o conexiune VPN, pachetul este mai întâi trimis către interfața sa virtuală, unde este încapsulat într-un alt pachet care va merge la gateway-ul real. Desigur, acest lucru nu este vizibil în tabelele de rutare. Prima linie se aplică și descrierii acestei conexiuni.

Vedem gateway-ul real pe a treia linie - adresele din intervalul 10.22.220.* sunt trimise către vlan1, gateway-ul furnizat de furnizor, comunicatorul cu care suntem conectați. cablu de rețea direct. A doua linie spune că adresele din intervalul 192.168.1.* sunt o rețea locală, iar pachetele către acestea ar trebui trimise intern, nu extern. În al cincilea rând - informațiile obișnuite despre „adresele locale”.

Comenzile din tabelul de rutare

Nu am spus nimic despre penultimul rând. Și este cel mai interesant, pentru că l-am adăugat cu propriile mele mâini. Care este sensul lui? Trimit adrese din intervalul 10.1-32.*.* la gateway-ul 10.22.220.1. Pachetele către aceste adrese nu vor ajunge pe Internet, dar vor rămâne în zona locală a furnizorului. Da, pachete pentru gama 10.22.220. și așa merg acolo, dar asta nu este suficient. În acest fel, nu am acces deplin la resursele locale.

ÎN Carcasa Windows o astfel de rută ar fi adăugată la tabelele de rutare cu comanda route -p add 10.0.0.0 mask 255.224.0.0 10.22.220.1. -p înseamnă că ruta este permanentă, nu trebuie ștearsă după repornirea computerului.

Articolul este deja mult mai lung articole obișnuite a acestui blog, așa că o voi numi o zi. Scrieți întrebările dvs. aici și, dacă doriți să analizați unele cazuri de configurare specifice, este mai bine să ne contactați pe forumul nostru.

Sau poarta de acces, este un nod de rețea cu mai multe interfețe IP (conținând propria adresă MAC și adresă IP) conectate la diferite rețele IP, care, pe baza rezolvării problemei de rutare, redirecționează datagramele de la o rețea la alta pentru livrare de la expeditor către destinatar.

Sunt fie specializati calculatoare, sau computere cu mai multe interfețe IP, a căror funcționare este controlată de software special.

Rutare în rețele IP

Rutarea este utilizată pentru a primi un pachet de la un dispozitiv și a-l redirecționa printr-o rețea către un alt dispozitiv prin alte rețele. Dacă nu există routere în rețea, atunci rutarea nu este acceptată. Routerele direcţionează (redirecţionează) traficul către toate reţelele care alcătuiesc reţeaua.

Pentru a ruta un pachet, routerul trebuie să aibă următoarele informații:

  • Adresa de destinatie
  • Un router din apropiere de la care poate afla despre rețelele de la distanță
  • Căile disponibile către toate rețelele de la distanță
  • Cea mai bună cale către fiecare rețea la distanță
  • Metode de întreținere și verificare a informațiilor de rutare

Routerul învață despre rețelele de la distanță de la routerele vecine sau de la administrator de rețea. Routerul construiește apoi un tabel de rutare care descrie cum să găsești rețelele de la distanță.

Dacă rețeaua este conectată direct la router, acesta știe deja cum să direcționeze pachetul către acea rețea. Dacă rețeaua nu este conectată direct, routerul trebuie să afle (învăța) căile de acces la rețeaua de la distanță folosind rutarea statică (administratorul introduce manual locația tuturor rețelelor în tabelul de rutare) sau folosind rutare dinamică.

Rutarea dinamică este un proces de protocol de rutare care determină modul în care un dispozitiv comunică cu routerele vecine. Routerul va actualiza informațiile despre fiecare rețea pe care o învață. Dacă apare o modificare în rețea, protocolul de rutare dinamică informează automat toate ruterele despre modificare. Dacă se utilizează rutarea statică, administratorul de sistem va trebui să actualizeze tabelele de rutare pe toate dispozitivele.

Rutarea IP este un proces simplu care este același pe rețele de orice dimensiune. De exemplu, figura arată procesul de interacțiune pas cu pas între gazda A și gazda B pe o altă rețea. În exemplu, utilizatorul gazdei A solicită adresa IP a gazdei B prin ping Operațiunile ulterioare nu sunt atât de simple, așa că să le analizăm mai detaliat:

  • ÎN linie de comandă utilizatorul introduce ping 172.16.20.2. Pe gazda A, un pachet este generat folosind protocoale de nivel de rețea și ICMP.

  • IP apelează ARP pentru a afla rețeaua de destinație pentru pachet, uitându-se la adresa IP și masca de subrețea a gazdei A. Aceasta este o solicitare pentru la gazdă la distanță, adică pachetul nu este destinat gazdei rețelei locale, deci pachetul trebuie redirecționat către router pentru a fi redirecționat către rețeaua dorită. rețea la distanță.
  • Pentru ca gazda A să trimită un pachet către router, gazda trebuie să cunoască adresa hardware a interfeței routerului conectată la rețeaua locală. Stratul de rețea transmite pachetul și adresa de destinație hardware la stratul de legătură de date pentru a fi împărțit în cadre și redirecționat către gazda locală. Pentru a obține o adresă hardware, gazda caută locația destinației în propria memorie numit cache ARP.
  • Dacă adresa IP nu a fost încă atinsă și nu este prezentă în memoria cache ARP, gazda trimite o difuzare ARP pentru a căuta adresa hardware la adresa IP 172.16.10.1. Acesta este motivul pentru care prima solicitare Ping va expira de obicei, dar celelalte patru solicitări vor reuși. Odată ce o adresă este stocată în cache, de obicei nu există timp de expirare.
  • Routerul răspunde și raportează adresa hardware a interfeței Ethernet conectată la rețeaua locală. Acum gazda are toate informațiile pentru a redirecționa pachetul către router prin rețeaua locală. Stratul de rețea transmite pachetul în jos pentru a genera o cerere de eco ICMP (Ping) la nivelul de legătură de date, adăugând pachetul cu adresa hardware la care gazda ar trebui să trimită pachetul. Pachetul are adrese IP sursă și destinație împreună cu o indicație a tipului de pachet (ICMP) în câmpul de protocol de nivel de rețea.
  • Stratul de legătură formează un cadru în care pachetul este încapsulat împreună cu informatii de management necesare pentru redirecționarea printr-o rețea locală. Aceste informații includ adresele hardware sursă și destinație, precum și valoarea din câmpul tip, stabilit prin protocol stratul de rețea (acesta va fi un câmp de tip, deoarece IP utilizează în mod implicit cadre Ethernet_II). Figura 3 prezintă un cadru generat la nivelul de legătură și transmis prin media locală. Figura 3 prezintă toate informațiile necesare pentru a comunica cu routerul: adrese hardware sursă și destinație, adrese IP sursă și destinație, date și suma de control Frame CRC, situat în câmpul FCS (Frame Check Sequence).
  • Stratul de legătură al gazdei A transmite cadrul nivel fizic. Acolo, zerourile și unurile sunt codificate într-un semnal digital și apoi transmise printr-o rețea fizică locală.

  • Semnalul ajunge la interfața Ethernet 0 a routerului, care este sincronizată prin preambul semnal digital pentru a extrage cadrul. După construirea cadrului, interfața routerului verifică CRC și, la sfârșitul recepționării cadrului, compară valoarea primită cu conținutul câmpului FCS. În plus, verifică procesul de transfer pentru fragmentarea media și conflicte.
  • Adresa hardware de destinație este verificată. Deoarece se potrivește cu adresa routerului, câmpul tip cadru este analizat pentru a se determina acțiuni ulterioare cu acest pachet de date. Câmpul tip specifică protocolul IP, astfel încât routerul transmite pachetul procesului de protocol IP care rulează pe router. Cadrul este șters. Pachetul sursă(generat de gazda A) este plasat în buffer-ul routerului.
  • Protocolul IP analizează adresa IP de destinație din pachet pentru a determina dacă pachetul este destinat ruterului însuși. Deoarece adresa IP de destinație este 172.16.20.2, routerul stabilește din tabelul său de rutare că rețeaua 172.16.20.0 este conectată direct la interfața Ethernet 1.
  • Routerul redirecționează pachetul de la buffer la interfața Ethernet 1. Routerul trebuie să-l încadreze pentru a redirecționa pachetul către gazda destinație. Routerul își verifică mai întâi memoria cache ARP pentru a determina dacă adresa hardware a fost deja rezolvată în timpul interacțiunilor anterioare cu rețeaua dată. Dacă adresa nu se află în memoria cache ARP, routerul trimite o solicitare de difuzare ARP către interfața Ethernet 1 pentru a căuta adresa hardware pentru adresa IP 172.16.20.2.
  • Gazda B răspunde cu adresa hardware a acestuia adaptor de rețea la o solicitare ARP. Interfața Ethernet 1 a routerului are acum tot ce are nevoie pentru a redirecționa pachetul la destinația finală. Figura prezintă un cadru generat de router și transmis prin rețeaua fizică locală.

Cadrul generat de interfața Ethernet 1 a routerului are o adresă hardware sursă de la interfața Ethernet 1 și o adresă hardware de destinație pentru adaptorul de rețea gazdă B. Este important să rețineți că, în ciuda modificărilor în adresele hardware sursă și destinație, pe fiecare router interfața care a trimis pachetul, adresele IP sursa și destinația nu se schimbă niciodată. Pachetul nu este modificat in niciun fel, dar ramele sunt schimbate.

  • Gazda B primește cadrul și verifică CRC. Dacă verificarea are succes, cadrul este eliminat și pachetul este transferat la protocolul IP. Acesta analizează adresa IP de destinație. Deoarece adresa IP de destinație este aceeași cu adresa configurată în Host B, protocolul IP examinează câmpul de protocol pentru a determina destinația pachetului.
  • Pachetul nostru conține o solicitare de ecou ICMP, astfel încât gazda B generează un nou răspuns de ecou ICMP cu o adresă IP sursă egală cu gazda B și o adresă IP de destinație egală cu gazda A. Procesul începe din nou, dar în sens opus. Cu toate acestea, adresele hardware ale tuturor dispozitivelor de-a lungul căii pachetului sunt deja cunoscute, astfel încât toate dispozitivele vor putea obține adresele hardware ale interfețelor din propriile cache ARP.

În rețelele mari, procesul este similar, dar pachetul va trebui să parcurgă mai mulți hop pe drumul către gazda destinație.

Tabelele de rutare

În stiva TCP/IP, routerele și nodurile finale iau decizii cu privire la cui să transmită un pachet pentru a-l livra cu succes la nodul de destinație, pe baza așa-numitelor tabele de rutare.

Tabelul reprezintă exemplu tipic un tabel de rute care utilizează adrese IP de rețea pentru rețeaua prezentată în figură.

Tabel de rutare pentru routerul 2

Tabelul prezintă un tabel de rutare cu mai multe rute, deoarece conține două rute către rețeaua 116.0.0.0. În cazul construcției unui tabel de rutare cu o singură rută, este necesar să specificați o singură cale către rețeaua 116.0.0.0 pe baza valorii celei mai mici ale metricii.

După cum puteți vedea cu ușurință, mai multe rute sunt definite în tabelul cu parametri diferiți. Trebuie să citiți fiecare astfel de intrare din tabelul de rutare, după cum urmează:

Pentru a livra un pachet în rețea cu o adresă din câmpul Network Address și o mască din câmpul Network Mask, trebuie să trimiteți un pachet de la interfață cu adresa IP din câmpul Interface la adresa IP din câmpul Gateway Address , iar „costul” unei astfel de livrări va fi egal cu numărul din câmpul Metrics.

În acest tabel, coloana „Destination Network Address” indică adresele tuturor rețelelor către care acest router poate transmite pachete. Stiva TCP/IP adoptă așa-numita abordare one-hop pentru optimizarea rutei de redirecționare a pachetelor (rutarea hop-ul următor) - fiecare router și nod final participă la alegerea unui singur pas de transmisie a pachetelor. Prin urmare, fiecare linie a tabelului de rutare nu indică întreaga rută ca o secvență de adrese IP ale routerelor prin care trebuie să treacă pachetul, ci doar o singură adresă IP - adresa următorului router către care trebuie transmis pachetul. Împreună cu pachetul, responsabilitatea alegerii este transferată următorului router pasul următor rutare Abordarea cu un singur salt a rutare înseamnă o soluție distribuită la problema de selecție a rutei. Acest lucru elimină restricția privind cantitate maxima routere de tranzit de-a lungul căii pachetului.

Pentru a trimite un pachet către următorul router, este necesară cunoașterea acestuia adresa locala, dar în stiva TCP/IP este obișnuit să folosiți numai adrese IP în tabelele de rutare pentru a le stoca format universal, independent de tipul de rețele incluse în Internet. Pentru a găsi o adresă locală de la o adresă IP cunoscută, trebuie să utilizați protocolul ARP.

Rutarea cu un singur salt are un alt avantaj - vă permite să reduceți dimensiunea tabelelor de rutare în nodurile finale și routere folosind așa-numita rută implicită (0.0.0.0) ca număr de rețea de destinație, care ocupă de obicei tabelul de rutare ultima linie. Dacă există o astfel de intrare în tabelul de rutare, atunci toate pachetele cu numere de rețea care nu sunt în tabelul de rutare sunt trimise către routerul specificat în linia implicită. Prin urmare, routerele stochează adesea în mesele lor informații limitate despre rețelele de internet prin redirecționarea pachetelor pentru alte rețele către portul și routerul implicit. Se presupune că routerul implicit va redirecționa pachetul către rețea principală, iar routerele conectate la coloana vertebrală au informatii complete despre compoziția Internetului.

În plus față de ruta implicită, pot exista două tipuri de intrări speciale în tabelul de rutare - o intrare despre o rută specifică gazdei și o intrare despre adresele rețelelor conectate direct la porturile routerului.

O rută specifică gazdei conține o adresă IP completă în loc de un număr de rețea, adică o adresă care are informații diferite de zero nu numai în câmpul numărul de rețea, ci și în câmpul numărul gazdei. Se presupune că pentru un astfel de nod final ruta ar trebui să fie aleasă diferit față de toate celelalte noduri din rețeaua căreia îi aparține. În cazul în care tabelul conţine intrări diferite despre promovarea pachetelor pentru întreaga rețea N și nodul ei individual, care are adresa N,D, la sosirea unui pachet adresat către nodul N,D, routerul va acorda preferință intrării pentru N,D.

Intrările din tabelul de rutare legate de rețelele conectate direct la router conțin zerouri („conectate”) în câmpul „Metrici”.

Algoritmi de rutare

Cerințe de bază pentru algoritmii de rutare:

  • precizie;
  • simplitate;
  • fiabilitate;
  • stabilitate;
  • justiţie;
  • optimitatea.

Există diferiți algoritmi pentru construirea de tabele pentru rutarea cu un singur salt. Ele pot fi împărțite în trei clase:

  • algoritmi simpli de rutare;
  • algoritmi de rutare fix;
  • algoritmi adaptivi de rutare.

Indiferent de algoritmul utilizat pentru a construi tabelul de rutare, rezultatul muncii lor are un singur format. Datorită acestui fapt, în aceeași rețea, noduri diferite pot construi tabele de rutare conform propriilor algoritmi și apoi pot face schimb de date lipsă între ele, deoarece formatele acestor tabele sunt fixe. Prin urmare, un router care utilizează un algoritm de rutare adaptiv poate furniza un nod final folosind un algoritm de rutare fix cu informații despre calea către o rețea despre care nodul final nu știe nimic.

Dirijare ușoară

Aceasta este o metodă de rutare care nu se modifică atunci când se modifică topologia și starea rețelei de transmisie a datelor (DTN).

Este oferită rutarea simplă diverși algoritmi, dintre care tipice sunt următoarele:

  • Rutarea aleatorie este transmiterea unui mesaj de la un nod în orice direcție aleasă aleatoriu, cu excepția direcțiilor în care mesajul a fost primit de către nod.
  • Flooding routing este transmiterea unui mesaj de la un nod în toate direcțiile, cu excepția direcției în care mesajul a ajuns la nod. Această rutare garantează un timp scurt de livrare a pachetelor, în detrimentul degradării debitului.
  • Rutare bazată pe experiența anterioară - fiecare pachet are un contor pentru numărul de noduri trecute, în fiecare nod de comunicație se analizează contorul și se reține ruta care se potrivește valoarea minima contra. Acest algoritm vă permite să vă adaptați la schimbările în topologia rețelei, dar procesul de adaptare este lent și ineficient.

În general, rutarea simplă nu asigură transmisie direcțională a pachetelor și are o eficiență scăzută. Principalul său avantaj este de a asigura funcționarea stabilă a rețelei în caz de defecțiune diverse părți retelelor.

Rutare fixă

Acest algoritm este utilizat în rețelele cu o topologie de conexiune simplă și se bazează pe compilarea manuală a unui tabel de rutare de către administratorul de rețea. Algoritmul funcționează adesea eficient și pentru coloana vertebrală a rețelelor mari, deoarece coloana vertebrală în sine poate avea structură simplă cu evidenta cele mai bune moduri Următorii algoritmi disting pachetele din subrețele conectate la coloana vertebrală:

  • Rutarea fixă ​​cu o singură cale este atunci când se stabilește o conexiune între doi abonați singura cale. O rețea cu o astfel de rutare este instabilă la defecțiuni și supraîncărcări.
  • Rutare fixă ​​cu mai multe căi - pot fi instalate mai multe moduri posibileși se introduce o regulă de selecție a căii. Eficiența unei astfel de direcționări scade pe măsură ce sarcina crește. Dacă vreo linie de comunicație eșuează, este necesară modificarea tabelului de rutare în acest scop, în fiecare nod de comunicație sunt stocate mai multe tabele.

Rutare adaptivă

Acesta este principalul tip de algoritm de rutare folosit de routere în rețele moderne cu topologie complexă. Rutarea adaptivă se bazează pe faptul că ruterele schimbă periodic informații topologice speciale despre rețelele disponibile pe Internet, precum și despre conexiunile dintre routere. De obicei, nu se ține cont doar de topologia legăturilor, ci și de capacitatea și starea acestora.

Protocoalele adaptive permit tuturor ruterelor să colecteze informații despre topologia conexiunilor din rețea, procesând rapid toate modificările în configurația conexiunii. Aceste protocoale sunt distribuite în natură, ceea ce se exprimă în faptul că nu există routere dedicate în rețea care să colecteze și să rezumă informații topologice: această muncă este distribuită între toate routerele, se disting următorii algoritmi:

  • Rutare adaptivă locală - fiecare nod conține informații despre starea legăturii, lungimea cozii și tabelul de rutare.
  • Rutarea adaptivă globală se bazează pe utilizarea informațiilor primite de la nodurile învecinate. Pentru a face acest lucru, fiecare nod conține un tabel de rutare, care indică timpul de tranzit al mesajelor. Pe baza informațiilor primite de la nodurile vecine, valoarea tabelului este recalculată ținând cont de lungimea cozii din nodul însuși.
  • Rutare adaptivă centralizată - există un nod central care colectează informații despre starea rețelei. Acest centru generează pachete de control care conțin tabele de rutare și le trimite către nodurile de comunicație.
  • Rutarea adaptivă hibridă se bazează pe utilizarea unui tabel trimis periodic de către centru și pe analiza lungimii cozii de la nodul însuși.

Indicatori de algoritm (metrici)

Tabelele de rutare conțin informații pe care programele de comutare le folosesc pentru a le selecta cel mai bun traseu. Ce caracterizează construcția tabelelor de rutare? Care este natura informațiilor pe care le conțin? ÎN această secțiune, dedicat performanței algoritmilor, se încearcă să se răspundă la întrebarea cum un algoritm determină preferința unei rute față de altele.

Algoritmii de rutare folosesc multe valori diferite. Algoritmii complecși de rutare se pot baza pe mai multe valori atunci când selectează o rută, combinându-le astfel încât rezultatul să fie o măsură hibridă. Următoarele sunt valorile utilizate în algoritmii de rutare:

  • Lungimea traseului.
  • Fiabilitate.
  • Întârziere.
  • Lățimea de bandă.

Lungimea traseului.

Lungimea rutei este cea mai comună măsură de rutare. Unele protocoale de rutare permit administratorilor de rețea să atribuie prețuri arbitrare fiecărei legături de rețea. În acest caz, lungimea căii este suma costurilor asociate fiecărui canal care a fost parcurs. Alte protocoale de rutare definesc un „număr de hop”, o măsură care descrie numărul de călătorii pe care un pachet trebuie să le facă pe drumul său de la sursă la destinație prin elementele de agregare a rețelei (cum ar fi routerele).

Fiabilitate.

Fiabilitatea, în contextul algoritmilor de rutare, se referă la fiabilitatea fiecărei legături din rețea (descrisă de obicei în termeni de raport bit-eroare). Unele legături de rețea pot eșua mai des decât altele. Eșecurile unor legături de rețea pot fi rezolvate mai ușor sau mai rapid decât eșecurile altor legături. La atribuirea evaluărilor de fiabilitate, pot fi luați în considerare orice factor de fiabilitate. Evaluările de fiabilitate sunt de obicei atribuite canalelor de rețea de către administratori. De regulă, acestea sunt valori digitale arbitrare.

Întârziere.

Latența de rutare se referă în mod obișnuit la durata de timp necesară unui pachet pentru a călători de la sursă la destinație printr-o rețea de internet. Latența depinde de mulți factori, inclusiv lățimea de bandă a legăturilor intermediare din rețea, cozile de la portul fiecărui router de-a lungul căii pachetului, congestia rețelei pe toate legăturile intermediare din rețea și distanța fizică pe care trebuie să parcurgă pachetul. . Deoarece există un conglomerat de mai multe variabile importante, latența este cea mai comună și utilă măsură.

Lățimea de bandă.

Lățimea de bandă se referă la capacitatea de trafic disponibilă a oricărei legături. Toate celelalte lucruri fiind egale, un canal Ethernet de 10 Mbps este de preferat oricărei linii închiriate cu o lățime de bandă de 64 KB/s. Deși lățimea de bandă este o estimare a capacității maxime realizabile a unei legături, rutele care trec prin legături cu lățime de bandă mai mare nu vor fi neapărat rute mai bune trecând prin canale mai lente.

Structura tabelelor de rutare reale ale stivei TCP/IP corespunde în general structurii simplificate a tabelelor discutate mai devreme. Rețineți, totuși, că aspectul tabelului de rutare IP depinde de implementarea specifică a stivei TCP/IP. Să dăm un exemplu de mai multe opțiuni de tabel de rutare cu care routerul R1 ar putea lucra în rețeaua prezentată în Fig. 1.

Să începem cu o versiune „inventată” extrem de simplificată a tabelului de rutare (Tabelul 1). Există trei rute către rețele (intrări 56.0.0.0, 116.0.0.0 și 129.13.0.0), două intrări pentru rețelele conectate direct (198.21.17.0 și 213.34.12.0) și o intrare implicită de rută.

Tabelul 1. Tabel de rutare simplificat pentru routerul R1

Adresa rețelei de destinație Următoarea adresă a routerului Adresa interfeței de ieșire Distanța până la rețeaua de destinație
15
13
2
1 (conectat)
1
56.0.0.0 213.34.12.4 213.34.12.3 15
116.0.0.0 213.34.12.4 213.34.12.3 13
129.13.0.0 198.21.17.6 198.21.17.5 2
198.21.17.0 198.21.17.5 198.21.17.5 1(conectat)
213.34.12.0 213.34.12.3 213.34.12.3 1(conectat)
Ruta implicită 198.21.17.7 198.21.17.5 -

Mai mult aspect complex au tabele care sunt generate în echipamentele de rețea disponibile comercial.

Dacă ne imaginăm că routerul software standard al sălii de operație funcționează ca router R1 în această rețea sisteme Microsoft Windows XP, atunci tabelul său de rutare ar putea arăta ca un tabel. 2.

Orez. 1 Exemplu de rețea direcționată

Tabelul 2. Tabelul de router software Windows XP

Adresă de rețea Masca Adresa gateway-ului Interfață Metrici
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
0.0.0.0 0.0.0.0 198.21.17.7 198.21.17.5 1
56.0.0.0 255.0.0.0 213.34.12.4 213.34.12.3 15
116.0.0.0 255.0.0.0 213.34.12.4 213.34.12.3 13
129.13.0.0 255.255.0.0 198.21.17.6 198.21.17.5 2
198.21.17.0 255.255.255.0 198.21.17.5 198.21.17.5 1
198.21.17.5 255.255.255.255 127.0.0.1 127.0.0.1 1
198.21.17.255 255.255.255.255 198.21.17.5 198.21.17.5 1
213.34.12.0 255.255.255.0 213.34.12.3 213.34.12.3 1
213.34.12.3 255.255.255.255 127.0.0.1 127.0.0.1 1
213.34.12.255 255.255.255.255 213.34.12.3 213.34.12.3 1
224.0.0.0 224.0.0.0 198.21.17.6 198.21.17.6 1
224.0.0.0 224.0.0.0 213.34.12.3 213.34.12.3 1
255.255.255.255 255.255.255.255 198.21.17.6 198.21.17.6 1

Dacă instalați unul dintre routerele hardware populare în locul routerului R1, atunci tabelul său de rutare pentru aceeași rețea poate arăta complet diferit (Tabelul 3).

Tabelul 3. Tabel de rutare router hardware

Și în sfârșit masa. 4 este un tabel de rutare pentru același router R1, implementat ca un router software al uneia dintre versiunile sistem de operare Unix.

Tabelul 4. Tabel de rutare a routerului Unix

Adresa de destinatie Poarta de acces Steaguri Interfață
127.0.0.0 127.0.0.1 UH 1 154 1o0
Ruta implicită 198.21.17.7 U.G. 5 43270 1e0
198.21.17.0 198.21.17.5 U 35 246876 1e0
213.34.12.0 213.34.12.3 U 44 132435 le1
129.13.0.0 198.21.1.7.6 U.G. 6 16450 1e0
56.0.0.0 213.34.12.4 U.G. 12 5764 le1
116.0.0.0 213.34.12.4 U.G. 21 23544 le1

NOTA
Rețineți că, deoarece nu există o corespondență unu-la-unu între structura rețelei și tabelul de rutare, pentru fiecare dintre opțiunile tabelului de mai sus puteți oferi propriile „sub-opțiuni”, care diferă în ruta aleasă către o anumită rețea. În acest caz, atenția este concentrată asupra diferențelor semnificative în forma de prezentare a informațiilor de rutare de către diferite implementări ale routerelor.

În ciuda destul de vizibile diferențe externe, toate cele trei tabele „reale” conțin toate datele cheie din tabelul simplificat considerat, fără de care rutarea pachetelor este imposibilă.

Astfel de date, în primul rând, includ adresele de rețea de destinație (coloana „Adresa de destinație” dintr-un router hardware și un router Unix sau coloana „Adresă de rețea” într-un router Windows XP).

Doilea câmp obligatoriu Tabelul de rutare este adresa următorului router (coloana „Gateway” într-un router hardware și un router Unix sau coloana „Gateway Address” într-un router Windows XP).

Al treilea parametru cheie, adresa portului către care ar trebui să fie trimis pachetul, este indicat direct în unele tabele (coloana „Interfață” din tabelul de ruter Windows XP), iar în unele - indirect. Deci, în tabelul de router Unix, în locul adresei portului, se specifică numele său condiționat - 1e0 pentru portul cu adresa 198.21.17.5, lei pentru portul cu adresa 213.34.12.3 și 1o0 pentru portul intern cu adresa 127.0.0.1. Într-un router hardware, nu există niciun câmp care să indice nicio formă de port de ieșire. Acest lucru se datorează faptului că adresa portului de ieșire poate fi întotdeauna determinată indirect din adresa următorului router. De exemplu, să stabilim din tabel. 3 adresă portului de ieșire pentru rețeaua 56.0.0.0. Din tabel rezultă că următorul router pentru această rețea va fi routerul cu adresa 213.34.12.4. Adresa următorului router trebuie să aparțină uneia dintre rețelele atașate direct la router, iar în acest caz este rețeaua 213.34.12.0. Routerul are un port atașat acestei rețele, iar adresa acestui port 213.34.12.3 o găsim în coloana Gateway din al doilea rând a tabelului de rutare, care descrie rețeaua atașată direct 213.34.12.0. Pentru rețelele atașate direct, următoarea adresă a routerului este întotdeauna adresa portului propriu a routerului. Astfel, pentru rețeaua 56.0.0 adresa portului de ieșire este 213.34.12.3.

Soluția standard astăzi este utilizarea unui câmp de mască în fiecare intrare de tabel, așa cum se face în tabelele de router și ruter hardware Windows XP (coloane de mască). Mecanismul de procesare a măștilor atunci când routerele iau decizii este discutat mai jos. Absența unui câmp de mască indică faptul că fie routerul este proiectat să funcționeze cu doar trei clase de adrese standard, fie aceeași mască este utilizată pentru toate intrările, ceea ce reduce flexibilitatea de rutare.
Deoarece fiecare rețea de destinație este listată o singură dată în tabelul de rutare al routerului Unix și, prin urmare, nu există nicio selecție de rută, câmpul metric este un parametru opțional. În celelalte două tabele, câmpul metric este folosit doar pentru a indica faptul că rețeaua este conectată direct. O metrică de 0 pentru un router hardware sau 1 pentru un router Windows XP îi spune routerului că această rețea este conectată direct la portul său, iar cealaltă valoare de metrică corespunde unei rețele de la distanță. Alegerea metricii pentru rețeaua conectată direct (1 sau 0) este arbitrară, principalul lucru este că metrica rețelei de la distanță este calculată ținând cont de aceasta valoarea initiala. Routerul Unix folosește un câmp de steag unde steag-ul G (Gateway) marchează o rețea la distanță, iar absența acesteia indică una conectată direct.

Semn de conectat direct rețeaua îi spune routerului că pachetul a ajuns deja la rețeaua sa, astfel încât protocolul IP declanșează o solicitare ARP împotriva adresei IP de destinație, mai degrabă decât următorul router.

Cu toate acestea, există situații în care un router TREBUIE să stocheze în mod necesar o valoare metrică pentru a înregistra despre fiecare rețea la distanță. Aceste situații apar atunci când intrările din tabelul de rutare sunt rezultatul unor protocoale de rutare, de ex. protocol RIP. În astfel de protocoale informații noi despre orice rețea la distanță este comparată cu informațiile conținute în tabelul din în acest moment, iar dacă valoarea noii valori este mai bună decât cea actuală, atunci noua intrareîl înlocuiește pe cel existent. Tabelul de router Unix nu are un câmp metric, ceea ce înseamnă că nu utilizează protocolul RIP.

Indicatoarele de intrare sunt prezente numai în tabelul de router Unix.

  • U - ruta este activă și operațională. Câmpul de stare dintr-un router hardware are o semnificație similară.
  • N - un semn al unei anumite rute către o anumită gazdă.
  • G - înseamnă că ruta pachetelor trece printr-un router intermediar (gateway). Absența acestui steag marchează o rețea conectată direct.
  • D - înseamnă că ruta a fost obținută dintr-un mesaj ICMP redirecționat. Acest flag poate fi prezent doar în tabelul de rutare al nodului final. Semnul înseamnă că nodul final, în timpul unei transmisii anterioare de pachete, nu a ales cel mai rațional router următor pe calea către această rețea, iar acest router, folosind protocolul ICMP, a informat nodul final că toate pachetele ulterioare către această rețea ar trebui să fie trimis printr-un alt router.

Tabelul de router Unix folosește încă două câmpuri, având valoarea de referinta. Câmpul pentru numărul de legături arată de câte ori s-a făcut referire la această rută la redirecționarea pachetelor. Câmpul de încărcare reflectă numărul de octeți transferați de-a lungul acestei rute.

Intrările din tabelul routerului hardware au, de asemenea, două câmpuri de referință. Câmpul record time to live (TTL) în acest caz nu are nimic de-a face cu durata de viață a pachetului. Aici arată timpul în care valoarea acestei intrări este încă valabilă. Câmpul sursă indică sursa intrării în tabelul de rutare.

Descrierea comenzii de rută: Afișează și modifică intrările din tabelul local de rutare IP. Comanda rulează fără parametri traseu afișează un certificat.

traseu [-f] [-p] [ comandă [ punct final ] [ masca masca de retea ] [ poarta de acces ] [ metric metric ]] [ dacă interfata ]]

-fȘterge tabelul de rutare de toate intrările care nu sunt o rută hub (rute cu o mască de subrețea de 255.255.255.255), o rută de rețea loopback (rute cu un punct final de 127.0.0.0 și o mască de subrețea de 255.0.0.0) sau o rută multicast (rute cu un punct final de punctul 224.0.0.0 și masca de subrețea 240.0.0.0). Când utilizați această opțiune împreună cu una dintre comenzi (cum ar fi adăuga, schimba sau şterge) tabelul este șters înainte ca comanda să fie executată. -p Când utilizați această opțiune cu comanda adăuga ruta specificată este adăugată la registry și utilizată pentru a inițializa tabelul de rutare IP de fiecare dată când pornește protocolul TCP/IP. În mod implicit, rutele adăugate nu sunt salvate la pornirea TCP/IP. Când utilizați parametrul cu comanda imprimare afișează o listă de rute permanente. Toate celelalte comenzi ignoră acest parametru. Rutele permanente sunt stocate în registru la HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\PersistentRoutes comandă Specifică comanda care urmează să fie rulată pe sistemul de la distanță. Următorul tabel oferă o listă de parametri validi. masca punct final Specifică punctul final al rutei. Punctul final poate fi adresa IP a rețelei (unde biții gazdă din adresa de rețea sunt setați la 0), adresa IP a rutei către gazdă sau valoarea 0.0.0.0 pentru ruta implicită. netmask Specifică masca de rețea (cunoscută și sub denumirea de mască de subrețea) în funcție de destinație. Masca de rețea poate fi masca de subrețea corespunzătoare adresa IP a rețelei , de exemplu 255.255.255.255 pentru o rută către o gazdă sau 0.0.0.0. pentru ruta implicită. Dacă acest parametru metric omisă, se folosește masca de subrețea 255.255.255.255. Punctul final nu poate fi mai precis decât masca de subrețea corespunzătoare. Cu alte cuvinte, valoarea bitului 1 din adresa punctului final nu este posibilă dacă valoarea bitului corespunzător din masca de subrețea este 0. gateway Specifică adresa IP de redirecționare sau următorul hop la care setul de adrese definit de punctul final și masca de subrețea este accesibilă. Pentru rutele de subrețea conectate local, adresa gateway-ului este adresa IP atribuită interfeței care este conectată la subrețea. Pentru rutele la distanță care sunt accesibile prin unul sau mai multe routere, adresa gateway-ului este adresa IP direct accesibilă a celui mai apropiat router. dacă metrică Specifică o metrică a costului rutei întregi (de la 1 la 9999) pentru o rută, care este utilizată pentru a selecta una dintre mai multe rute din tabelul de rutare care se potrivește cel mai bine cu adresa de destinație a pachetului redirecționat. Este selectată ruta cu cea mai mică valoare. Valoarea reflectă numărul de hopuri, viteza căii, fiabilitatea căii, debitul căii și instrumentele administrative. interfață Specifică indexul interfeței prin care destinația este accesibilă. Pentru a lista interfețele și indecșii lor corespunzători, utilizați comanda imprimare traseu . Valorile indexului interfeței pot fi fie zecimale, fie hexazecimale. Înainte de a intra numerele hexazecimale 0x dacă. În cazul în care parametrul /? omisă, interfața este determinată din adresa gateway-ului.

Afișează ajutor pe linia de comandă.

exemple de comandă de rută

interfață Specifică indexul interfeței prin care destinația este accesibilă. Pentru a lista interfețele și indecșii lor corespunzători, utilizați comanda

Pentru a afișa întregul conținut al tabelului de rutare IP, introduceți comanda:

Pentru a afișa rute în tabelul de rutare IP care încep cu 10., introduceți comanda. Tabel de rutare -(fișier) sau bază de date stocată pe router sau computer de rețea, care descrie maparea dintre adresele de destinație și interfețele prin care pachetul de date ar trebui să fie trimis către următorul router. este cea mai simplă formă reguli de rutare.

Tabelul de rutare conține de obicei:

· adresa rețelei de destinație sau a gazdei sau o indicație că ruta este ruta implicită;

· masca de rețea de destinație (pentru rețele IPv4, masca /32 (255.255.255.255) vă permite să specificați un singur nod de rețea);

· gateway, indicând adresa routerului din rețea către care trebuie trimis pachetul adresa specificată numiri;

· interfață (în funcție de sistem, acesta poate fi un număr de serie, GUID sau denumirea simbolică a dispozitivului);

· metric - un indicator numeric care specifică preferința rutei. Cu cât numărul este mai mic, cu atât traseul este mai preferat (reprezentat intuitiv ca distanță);

Rețeaua întreprinderii N este prezentată în Fig. 1.1.

Fig.1.1

În Tabelul 1.9 nu există o coloană standard „Mască”, deci aceeași mască este utilizată în întreaga rețea. Tabelul 1.9 este simplificat, nu conține indicatorii stării rutei, timpul în care sunt valabile înregistrările din acest tabel. În loc de numărul rețelei de destinație, poate fi specificată adresa completă de rețea a nodului de destinație individual. Iată adresele rețelelor într-un format condiționat care nu corespund niciunui protocol de rețea specific.

Tabelul 1.9 Tabelul de rutare a rețelei de întreprindere N pentru routerul M1.

Prima coloană a tabelului conține adresele de destinație ale pachetelor.

În fiecare rând al tabelului, după adresa de destinație, indicați adresa de rețea a următorului router ( mai precis, adresa de rețea a interfeței următorului router) către care trebuie trimis pachetul astfel încât să se deplaseze către adresa dată pe o rută rațională.

Înainte de a trece un pachet către următorul router, routerul curent trebuie să determine care dintre propriile sale porturi ar trebui să plaseze acest pachet. În acest scop se utilizează a treia coloană a tabelului de rutare, care conține adrese de rețea interfețe de ieșire.

Câteva implementări protocoale de rețea permit prezența mai multor rânduri în tabelul de rutare corespunzătoare aceleiași adrese de destinație. În acest caz, atunci când alegeți o rută, coloana " distanța până la rețeaua de destinație„. În acest caz, distanța este măsurată în orice metrică utilizată în conformitate cu specificațiile pachet de rețea criteriu. Distanța poate fi măsurată prin timpul necesar unui pachet pentru a călători de-a lungul liniilor de comunicație, diferite caracteristici ale fiabilității liniilor de comunicație pe o anumită rută, debitului sau o altă valoare care reflectă calitatea unui traseu dat în raport cu criteriul dat. Distanța pentru rețelele conectate direct la porturile routerului se presupune a fi 1.

Când un pachet ajunge la un router, modulul IP extrage numărul rețelei de destinație din antetul cadrului de intrare și îl compară secvențial cu numerele de rețea de pe fiecare rând al tabelului. Linia cu numărul de rețea potrivit indică cel mai apropiat router către care ar trebui să fie redirecționat pachetul.

Cel mai adesea, nu întreaga adresă IP este indicată în tabel ca adresă de destinație, ci doar numărul rețelei de destinație. Astfel, pentru toate pachetele destinate aceleiași rețele, protocolul IP va oferi aceeași rută. Cu toate acestea, în unele cazuri, devine necesar ca unul dintre nodurile rețelei să se determine traseu specific, diferit de ruta specificată pentru toate celelalte noduri de rețea. Pentru a face acest lucru, o linie separată este plasată în tabelul de rutare pentru un anumit nod, care conține adresa IP completă și informațiile de rutare corespunzătoare. Dacă tabelul conține intrări despre rute atât către rețea în ansamblu, cât și către nodul său individual, atunci când sosește un pachet adresat acestui nod, routerul va acorda preferință unei anumite rute.

Deoarece un pachet poate fi adresat oricărei rețele dintr-o rețea compozită, s-ar părea că fiecare tabel de rutare ar avea intrări pentru toate rețelele care fac parte din rețeaua compozită. Dar cu această abordare, în caz retea mare Volumul tabelelor de rutare poate fi foarte mare, ceea ce va afecta timpul necesar pentru vizualizare, necesită mult spațiu de stocare etc. Prin urmare, în practică, o tehnică larg cunoscută pentru reducerea numărului de intrări în tabelul de rutare se bazează pe introducerea ruta implicită ( ruta implicită). Această tehnică utilizează caracteristici ale topologiei rețelei. Luați în considerare, de exemplu, routerele situate la periferia unei rețele compozite. În tabelele lor, este suficient să scrieți numerele doar acelor rețele care sunt conectate direct la un anumit router sau aflate în apropiere, pe rute fără margini. Pentru toate celelalte rețele, puteți face o singură intrare în tabel, indicând routerul prin care rulează calea către toate aceste rețele. Acest router este numit router implicit ( router implicit).

Problema de rutare este rezolvată nu numai de noduri intermediare (routere), ci și de noduri finale - calculatoare. Rezolvarea acestei probleme începe cu faptul că protocolul IP instalat pe nodul final determină dacă pachetul este direcționat către altă rețea sau adresat unui nod din aceeași rețea. Dacă numărul rețelei de destinație se potrivește cu numărul de rețea dat, aceasta înseamnă că pachetul nu trebuie direcționat. În caz contrar, este nevoie de rutare.

Structurile tabelelor de rutare ale nodurilor finale și ale routerelor de tranzit sunt similare.

Nodurile finale, chiar mai mult decât routerele, folosesc rutarea implicită. Deși sunt și ei caz general au la dispoziție un tabel de rutare, dimensiunea acestuia este de obicei nesemnificativă, ceea ce se explică prin localizarea periferică a tuturor nodurilor terminale. Nodul final funcționează adesea fără o tabelă de rutare, având doar cunoștințele despre adresa implicită a routerului. Dacă există un router în rețeaua locală, această opțiune este singura posibilă pentru toate nodurile finale. Dar chiar dacă în rețeaua locală există mai multe routere, atunci când nodul final se confruntă cu problema alegerii acestora, calculatoarele recurg adesea la setarea unei rute implicite pentru a îmbunătăți performanța.

O altă diferență între funcționarea unui router și a unui nod final este modul în care este construită tabelul de rutare. Dacă ruterele, de regulă, creează automat tabele de rutare prin schimbul de informații despre servicii, atunci pentru nodurile finale tabelele de rutare sunt adesea create manual de administratori și stocate sub formă fișiere permanente pe discuri.