Rute redundante în Cisco IOS

De multe ori se întâmplă să avem o a doua legătură la Internet însă de multe ori configurarea celor două în redundanță este o provocare. Acest lucru se datorează faptului că, în general, echipamentele trec pe legătura de rezervă, sau închid una dintre legături, abia în momentul când nu mai există conectivitate fizică.

În acest articol voi prezenta una dintre cele mai simple si economice modalități de a configura rute redundante pe routerele Cisco.

Metoda propusa constă în urmărirea disponibilității unei conexiuni folosind pachete ICMP (ping) generate automat. Dacă rezultatele ping-ului nu sunt satisfacătoare atunci conexiunea de pe care au fost trimise va fi pusă în stand-by până revine la valorile acceptate.

Pentru ușurința interpretării soluției, primul pas spre soluționare este prezentarea unui exemplu de topologie:

În acest caz, router-ul este conectat la internet prin doi ISP. Cazurile discutate sunt când aceștia sunt folosiți simultan și unul este de rezervă.

Urmărirea unei conexiuni din punct de vedere parametrilor optimi de funcționare se va face folosind unealta „ip sla” din IOS pe routerele Cisco (cu mici adaptări funcționează și pe ASA).

SLA-ul va urmari prin pachete ping dacă de pe o anumită interfață (se poate și IP) mai este conectivitate pana la o anumită adresă IP. Verificarea este bine să se facă până la un IP bine cunoscut, ce nu se schimbă și există certitudinea că poate fi contactat în permanență.

Ca și recomandare, folosiți al doilea router întalnit spre Internet. Pentru a îl afla este necesar un traceroute de pe fiecare conexiune. Exemplu, folosind routerul din topologie:

traceroute bittnet.ro source fa0/0
traceroute bittnet.ro source fa0/1

Al doilea IP descoperit prin fiecare dintre cele două comenzi de mai sus, le presupunem a fi 80.1.1.1, respectiv 80.2.2.2. Cu aceste informații putem crea cele două SLA-uri pentru monitorizare.

Configurare profil SLA pentru verificare conexiune spre ISP1:

ip sla 1      !creare profil SLA
 icmp-echo 80.1.1.1 source-interface fa0/0      !specificare IP urmarit si de pe ce interfata
 timeout 1000      !specificare timp de asteptare raspuns
 threshold 40      !specificare cate operatiuni sa tina in buffer
 frequency 15      !specificare frecventa ping-uri 
ip sla schedule 1 life forever start-time now      !declarare durata de viata a verificarii: permanent

 

Configurare profil SLA pentru verificare conexiune spre ISP2(doar dacă se face laod-balancing pe ambele conexiuni, altfel nu este necesară această configurare):

ip sla 2      !creare profil SLA
 icmp-echo 80.2.2.2 source-interface fa0/1      !specificare IP urmarit si de pe ce interfata
 timeout 2      !specificare timp de asteptare raspuns
 threshold 40      !specificare cate operatiuni sa tina in buffer
 frequency 10      !specificare frecventa ping-uri 
ip sla schedule 2 life forever start-time now      !declarare durata de viata a verificarii: permanent

 

În funcție de versiunea IOS-ului intervalele pot fi în secunde sau milisecunde. Valorile din exemplul de sus sunt gândite pentru secunde ca și unitate de masură. În funcție de rețea valorile trebuie adaptate.

Următorul pas îl reprezintă pornirea efectivă a urmăririi și specificarea calității dorite:

track 100 ip sla 1 reachability       ! declarare scop urmarire
 default-state up       ! declarare stare inițiala a conexiunii: operationala
 delay down 10 up 15       ! declarare calitate: la 10 pachete pierdute se declara nefunctionala iar la 15 primite !se poate ridica din nou
!analog se configureaza si pentru al doilea SLA, doar daca se face load-balancing prin cei doi ISP:
track 200 ip sla 2 reachability
 default-state up
 delay down 10 up 15

 

Până în acest moment s-a reușit verificarea conexiunilor: dacă sunt funcționale sau nu. Totuși pe o conexiune nonresponsivă nu este încă oprit traficul de rețea.

Metoda aleasă pentru oprirea traficului este prin perspectiva rutării. Mai exact se pornește de la principiul de bază al rutelor: dacă pentru aceeași destinație există mai multe rute atunci se va folosi cea cu distanță administrativă (AD) mai mică. În cazul AD-urilor egale (adică aceeaşi metodă sau protocol de rutare pentru ambele rute) se va folosi ruta cu metrică mai mică, iar dacă și metricile sunt egale atunci se face load-balancing.

Soluția propusă la problema: ”cum oprim traficul pe o conexiune?” este publicarea rutelor în tabelă în funcție de statutul aflat de la SLA. Este o soluție ce se poate folosi în majoritatea cazurilor, deoarece de obicei spre ISP se configurează rute statice implicite (default route).

Cazul 1: Una dintre conexiunile spre Internet este de rezervă (aici: ISP2), în cazul în care cea de bază (aici: ISP1) nu mai este funcțională. Astfel ruta prin ISP-ul principal este urmărită prin SLA iar cea de rezervă are o metrică mare pusă manual, de la bun început:

ip route 0.0.0.0 0.0.0.0 80.0.1.1 track 100        ! ruta verificata 
ip route 0.0.0.0 0.0.0.0 80.0.2.2 250        ! ruta de rezerva cu metrica mare

 

Cazul 2: Ambele conexiuni sunt folosite pentru accesul la internet, prin load-balancing. În acest caz, ambele rute au metrici egale și sunt simultan urmărite prin SLA:

ip route 0.0.0.0 0.0.0.0 80.0.1.1 track 100         
ip route 0.0.0.0 0.0.0.0 80.0.2.2 track 200