marți, 24 decembrie 2013

Cum se incheie 2013 si planurile pentru 2014 - noua academie Cisco functioneaza

     Super an 2013, am reusit sa imi pun ordine si in viata personala, asa ca m-am casatorit in sfarsit. Acesta a fost unul din motivele pentru care mi-am restrans activitatea cu care unii dintre voi erau obisnuiti. Totusi, am lucrat si pe plan profesional si am pornit pregatirea pentru certificarea CCIE Routing & Switching, deja primul pas (examenul online) l-am trecut cu succes. Mai am in fata aproximativ 5 luni pana la examenul practic, este destul de dificil, dar in acelasi timp este si foarte interesant: foarte multe lucruri noi, atat din punct de vedere cunostinte cat si metode de abordare a problemelor de configurare si troubleshooting.

     Asa cum am promis unora dintre voi, nu voi renunta la activitatea de instructor care mi-a adus multe satisfactii pe parcursul a 9 ani si ceva, asa ca acum avem infiintata Asociatia Netschool, atestata ca academie Cisco in care deja putem organiza cursuri. M-am gandit foarte serios daca mai are rost sa continui si printre primii care m-au convins au fost fostii studenti care m-au incurajat sa nu renunt la visurile mele. Totusi, am schimbat formula obisnuita de desfasurare a cursurilor si din acest motiv, va rog sa ma contactati, in cazul in care sunteti interesati sa colaboram, pentru a va da lamuriri despre acest nou mod de lucru.

     Sper cu acest proiect sa atrag persoane pasionate de meseria pe care ma voi stradui sa o predau in toate etapele ei: Associate, Professional, Expert.

    Va doresc tuturor un Craciun fericit, un an nou numai cu bucurii, cu sanatate si cu multe visuri implinite,

Marius Moise

membru fondator

Asociatia Netschool

Tel: +(40) 745 007405

E-mail: marius@netschool.ro

marți, 30 aprilie 2013

MPLS - roots bloody roots

Multiprotocol Label Switching este o functionalitate foarte intalnita in routerele ISP, prin care acestea nu mai verifica propria tabela de rutare pt a gasi calea catre destinatia unui mesaj, ci utilizeaza o noua tabela, care contine corespondente intre etichete (un numar pe 20 de biti) si interfete de iesire. Avantajele sunt multiple si le voi puncta pe parcursul fiecarui post ce va urma acestuia.

Acest post are mai mult valoare teoretica decat practica, totusi trebuie sa raminem cu ideea ca pt. configurarea acestei noi metode de comutare a pachetelor avem nevoie de routere, protocoale de rutare IGP, de BGP (in urmatorul post) si de ceva in plus pe care incerc sa il evidentiez aici.

Ideea consta in asocierea unei etichete MPLS, de exemplu,  cu o adr IP si anuntarea acestei etichete printr-un prot. de rutare destinat acestei sarcini, LDP (Label Distribuition Protocol).
Totodata si adr. IP este anuntata printr-un prot. de rutare IGP. Corespondenta intre eticheta MPLS si adresa IP este importanta doar la intrarea pachetului IP in routerele PE, apoi conteaza numai corespondenta intre etichete.
Presupunem ca un pachet IP are sursa 192.168.2.x si destinatia 192.168.1.x (cele doua retele, in acest caz, sunt direct conectate de router PE2 si respectiv PE1). Routerul PE2 incapsuleaza pachetul IP intr-un frame MPLS (prin adaugarea unui header MPLS) si apoi intr-un frame corespunzator prot. Layer 2 OSI de pe interfata de iesire  (in cazul meu HDLC). In figura de mai jos observa ca intre headerul HDLC si cel IP se gaseste headerul MPLS, in care valoarea etichetei este 18 si TTL=255.
Tabela LFIB a routerului PE2 din imaginea de mai jos confirma ca eticheta corespunzatoare subnetului destinatie 192.168.10.0/24 este 18 (outgoing tag). Acest router a primit aceasta eticheta, prin prot. de rutare LDP, de la routerul P2.
Acum mesajul a ajuns in routerul P2 si are eticheta 18. Acest router nu se mai uita in tabela si de rutare, ci numai in LFIB. Se observa ca eticheta 18 (local tag) trebuie inlocuita cu 17 (outgoing tag) si frame-ul MPLS trebuie trimis pe interfara Se 1/1. In plus, TTL se decrementeaza cu 1.
Astfel, din router P2 pleaca mesajul in forma de mai jos (vezi eticheta si TTL).
Acum mesajul a ajuns in routerul P1 si are eticheta 17. Nici acest router nu se uita in tabela de rutare, ci numai in LFIB. De aceasta data etichetei 17 (local tag) ii corespunde o eticheta speciala (valoarea numerica 3) care inseamna 'imposition-null' si care determina routerul P1 sa elimine headerul MPLS (pop tag) si sa trimita spre PE1 pachetul IP asa cum l-a primit initial routerul PE2, cu exceptia TTL (acum 253).
Mesajul trimis de catre P1 nu mai contine headerul MPLS, iar TTL este 253.
Dupa ce mesajul a ajuns in PE1, doar acest router se mai uita in tabela de rutare proprie pt a determina intf. de iesire a pachetului.

Ca sa se intample toate acestea, trebuie sa configuram interfetele de leg. dintre routere cu comanda mpls ip si un prot de rutare IGP (OSPF, ISIS, EIGRP) cu timp de convergenta mic. Trebuie sa analizati daca este necesar sa mariti si MTU, un header MPLS are exact 20+3+1+8=32 biti (eticheta MPLS + Experimental_bits + Stack_bit + MPLS_TTL).
Experimental_bits -3 biti care se folosesc pt marcarea frame-urilor in vederea implementarii QoS.
Stack bit - bitul care indica daca acest header este ultimul din stiva (S=1) sau mai urmeaza si alte headere MPLS (S=0).
TTL_MPLS - campul de 8 biti care previne intrarea in bucla a unui frame MPLS.

Etichetele MPLS ajung de la un router la altul prin prot de rutare special, standard, denumit LDP - Label Distribution Protocol, care se activeaza automat dupa ce se configureaza routerele cum am precizat anterior.
Se formeaza in mod automat adiacente LDP intre routere; mesajele LDP sunt incapsulate in TCP/646.

De exemplu configuratia routerului P1 este:
interface Loopback1
 ip address 1.1.1.1 255.255.255.255
!
interface Serial1/0
 description link_2_PE1
 ip address 172.16.1.1 255.255.255.252
 ip router isis IGP
 mpls ip
 !
interface Serial1/1
 description link_2_P2
 ip address 172.16.0.1 255.255.255.252
 ip router isis IGP
 mpls ip
!
router isis IGP
 net 49.0001.0010.0100.1001.00
 is-type level-2-only
 log-adjacency-changes
 redistribute connected

Adiacentele LDP pe care le formeaza cu routerele PE1 si P2:
P1#sh mpls ldp neighbor
    Peer LDP Ident: 2.2.2.2:0; Local LDP Ident 1.1.1.1:0
        TCP connection: 2.2.2.2.34835 - 1.1.1.1.646
        State: Oper; Msgs sent/rcvd: 13/11; Downstream
        Up time: 00:00:52
        LDP discovery sources:
          Serial1/1, Src IP addr: 172.16.0.2
        Addresses bound to peer LDP Ident:
          2.2.2.2         172.16.0.2
    Peer LDP Ident: 192.168.10.1:0; Local LDP Ident 1.1.1.1:0
        TCP connection: 192.168.10.1.31261 - 1.1.1.1.646
        State: Oper; Msgs sent/rcvd: 10/9; Downstream
        Up time: 00:00:41
        LDP discovery sources:
          Serial1/0, Src IP addr: 172.16.1.2
        Addresses bound to peer LDP Ident:
          172.16.1.2      10.0.0.1        192.168.10.1

Tabela de rutare:
P1#sh ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

     1.0.0.0/32 is subnetted, 1 subnets
C       1.1.1.1 is directly connected, Loopback1
     2.0.0.0/32 is subnetted, 1 subnets
i L2    2.2.2.2 [115/10] via 172.16.0.2, Serial1/1
i L2 192.168.10.0/24 [115/10] via 172.16.1.2, Serial1/0
     172.16.0.0/30 is subnetted, 3 subnets
i L2    172.16.20.0 [115/20] via 172.16.0.2, Serial1/1
C       172.16.0.0 is directly connected, Serial1/1
C       172.16.1.0 is directly connected, Serial1/0
i L2 192.168.20.0/24 [115/20] via 172.16.0.2, Serial1/1
     10.0.0.0/32 is subnetted, 2 subnets
i L2    10.0.0.2 [115/20] via 172.16.0.2, Serial1/1
i L2    10.0.0.1 [115/10] via 172.16.1.2, Serial1/0

Tabela LFIB:
P1#sh mpls forwarding-table
Local  Outgoing    Prefix            Bytes tag  Outgoing   Next Hop
tag    tag or VC   or Tunnel Id      switched   interface
16     Pop tag     2.2.2.2/32                         0          Se1/1      point2point
17     Pop tag     172.16.20.0/30               0          Se1/1      point2point
18     Pop tag     10.0.0.1/32                      0          Se1/0      point2point
19     Pop tag     192.168.10.0/24             0          Se1/0      point2point
20     20          10.0.0.2/32                           0          Se1/1      point2point
21     21          192.168.20.0/24                 0          Se1/1      point2point

Urmatorul post va fi despre VPN MPLS Layer 3, practic vom vedea frame-uri MPLS cu doua headere MPLS si un singur header IP, adrese VPNv4, VRF-uri si cum putem configura intraneturile a doi clienti care au acelasi plan de adresare privat, fara ca routerele sa fie deranjate ca pe doua interfete au aceeasi adresa IP.

joi, 25 aprilie 2013

... cu de toate (Linux, Expect, Cisco)


Ideea de la care am pornit a fost sa fac un script in BASH si cu ajutorul limbajul EXPECT sa execut comenzi, unele interactive (adica trebuie sa introduci parametrii, de ex. comanda enable
solicita introducerea unui parole s.a.m.d), pe un numar de elemente de retea (aici Cisco) a.i. sa pot configura la orice moment un numar cat mai mare din acestea fara sa ma conectez eu pe fiecare in parte.

Ziceam pe cand predam cursuri - si in continuare cred in faptul - ca si lenea a dus la progres.

Ceea ce am scris mai jos nu necesita cunostinte avansate de BASH scripting si de EXPECT, eu nu stiu mai mult de genunchiul broastei; totusi in 3-4 zile am reusit sa inteleg sintaxa de baza pt BASH si EXPECT si iata ce a iesit.

Scriptul se lanseaza cu comanda sh <numescript>.sh <inputFile>.csv

Fisierul cu datele de intrare <inputFile>.csv este in format csv, fiecare linie este de forma:
ipaddr,<numefisier>.txt (de ex: 192.168.1.2,routerBackbone.txt)

<numefisier>.txt contine pe fiecare linie comenzile pe care doriti sa le executati pe fiecare element de retea identificat cu ipaddr, de ex.:

show clock
conf t
interface Gi 0/0/0
no shutdown
ip address 10.0.0.0.1 255.255.255.0
exit
exit
write memory

De la linia de comanda se introduce user/parola, parola VTY si enable secret; doar userul este afisat pe ecran
Erorile se salveaza in fisierul <numefisier>.error.log, iar outputul comenzilor executate pe fiecare element de retea se savleaza in fisierul <numefisier>.report

Va rog sa inlocuiti <numefisier> cu ceva care are sens pt fiecare.

Continutul fisierului <numescript>.sh este:


#!/bin/bash

#functia de mai jos se apeleaza cu 3 parametrii si practic trimite 5 mesaje ICMP echo de marime 512 octeti 
#si asteapta raspuns timp de 10 sec
#nu ma intereseaza sa capturez outputul comenzii ping si nici eventualele erori

isAlive() {
host=$1
contor=$2
rows=$3
         echo -e "\n$contor/$rows#####start probing...$host"
         ping -c 5 -s 512 -w 10 $host > /dev/null 2>&1
}

#IFS este parametrul prin care ii transmit BASH ca Internal Field Separator este ,
IFS=","

#mai jos ii transmit BASH ca fisierul de intrare este primul argument din comanda de lansare
inputFile=$1

#ma asigur ca fisierul de intrare exista (-f) si ca are o lungime diferita de 0 octeti (-s)
if [ -f $inputFile -a -s $inputFile ]
then

#mai jos solicit utilizatorului sa introduca user/parola, VTY line password si enable secret
 stty echo
 echo username:
 read userName
 echo password:
 stty -echo
 read passWord
 stty echo
 echo VTY password:
 stty -echo
 read VTYpassWord
 stty echo
 echo ROOT/ENABLE password:
 stty -echo
 read RootPassWord
 stty echo

#mai jos ma asigur ca s-au introdus niste valori si nu s-a apasat doar Enter
 if [ "x$userName" != x -a "x$passWord" != x -a "x$VTYpassWord" != x -a "x$RootPassWord" != x ]
 then

#numar cate elemente de retea sunt in total
rows=`cat $inputFile | wc -l`

#sterg continutul fisierului cu erori si al celui cu outputul comenzilor
echo > <numefisier>.error.log
echo > <numefisier>.report




#initializez un contor care imi raporteaza indexul elementului de retea la care a ajuns scriptul 


i=1





#parcurg fisierul inputFile linie cu linie pana la sfarsitul acestuia

while read line

        do

#varialbila host va contine adresa IP a elementului de retea
                host=`echo $line | awk '{print $1}'`

#variabila inputCmdFile va contine numele fisierului cu comenzile de executat
                inputCmdFile=`echo $line | awk '{print $2}'`

#daca fisierul cu comenzi exista (-f) si are marimea diferita de 0 octeti (-s)
                if [ -f $inputCmdFile -a -s $inputCmdFile ]
                then

#variabila NOW contine momentul de timp, folositor pt raportare erori
                 NOW=$(date +"%c")

#apelez functia prin care testez ca elementul de retea este pornit
                 isAlive $host $i $rows

#daca rezultatul de executie al functiei isAlive este 0 (in BASH valoarea 0 inseamna SUCCESS)
                 if [ $? -eq "0" ]
                 then

#apelez scriptul <numescriptEXPECT>.expect pe care il gasiti mai jos (eu am facut acest script ca fiind 
#executabil) si outpul executiei il documentez in fisierul <numefisier>.report
./<numescriptEXPECT>.expect $inputCmdFile $host $userName $passWord $VTYpassWord $RootPassWord $NOW >> <numefisier>.report

#incrementez contor 
                       let i++

#daca elementul de retea nu raspunde la ping, documentez eroarea in fisierul cu erori si incrementez contor
                else
                        echo $NOW,$host",INACCESIBILl!" >> sendCmdCisco.error.log
                        let i++
                 fi

#daca un fisier cu comenzi nu exista sau are dimensiune 0 octeti, trec la urmatorul element


                else

                 continue
                fi
        done < $inputFile



#daca nu s-a introdus una  valorile user/password/VTYpassword/enableSecret, se iese din script
else echo "EROARE: Nu ati introdus user/password/VTYpassword/rootpassword!"; exit 1
 fi



#daca nu s-a introdus argumentul pt lansarea scriptului (cel cu datele de intrare), se iese din script

else

 echo "EROARE: Verificati fisierul de intrare $inputFile !"; exit 1
fi


Scriptul scris in EXPECT (<numescriptEXPECT>.expect) arata dupa cum urmeaza:

#!/usr/local/bin/expect

#parcurg fisierul cu comenzi si introduc fiecare comanda in lista inputCmd
set inputCmd [split [read [open [lindex $argv 0] r]] "\n"]

#deschid fisierul cu erori in modul append
set errorFile [open "<numefiser>.error.log" a]

#initializez variablilele host, userName, passWord, VTYpassword, RootPassWord si recordTime
set host [lindex $argv 1]
set userName [lindex $argv 2]
set passWord [lindex $argv 3]
set VTYpassWord [lindex $argv 4]
set RootPassWord [lindex $argv 5]
set recordTime [lindex $argv 6]

#initiez sesiunea Telnet
spawn telnet $host

#daca se solicita username atunci trimit valorile variabilelor userName si apoi passWord
#daca se solicita numai parola atunci trimit valorea variabilelei VTYpassWord
#daca nu se solicita nimic timp de 10 sec atunci documentez eroarea
expect {
"*sername: " {send "$userName\n"; expect "*assword: "; send "$passWord\n"}
"*assword: " {send "$VTYpassWord\n"}
timeout {puts $errorFile "$recordTime,$host,TIMEOUT 1"; exit 1}
}

#daca nu primesc promptul specific user-EXEC (adica >) pt a trece mai departe si se solicita din nou user 
#sau parola VTY atunci documentez eroarea (poate ati gresit cand ati introdus user/parola etc)
expect {
"*sername: " {puts $errorFile "$recordTime,$host,contul de acces $userName INCORECT!!!"; exit 1}
"*assword: " {puts $errorFile "$recordTime,$host,parola de acces VTY INCORECTA!!!"; exit 1}

#SUCCESS, suntem in modul user-EXEC
"*>"
}

#trimit comanda enable pt a ajunge in privileged-EXEC
send "enable\n"

#se solicita parola de escaladare a niv de privilegii (enable secret)
expect "*assword: "

#trimit valoarea variabilei care contine aceasta parola
send "$RootPassWord\n"

#daca nu primesc promptul specific priviled-EXEC (adica #) pt a trece mai departe si solicita din nou parola 
#atunci documentez eroarea (poate ati gresit cand ati introdus enable secret etc)
expect {
"*>" {puts $errorFile "$recordTime,$host,parola de acces in privilegiul 15 INCORECTA!!!"; exit 1}
"*assword: " {puts $errorFile "$recordTime,$host,parola de acces in privilegiul 15 INCORECTA!!!"; exit 1}

#SUCCESS, suntem in modul privileged-EXEC
"*#"
}

#se trimite fiecare comanda din lista comenzi si apoi se inchide sesiunea Telnet,
#parasind astfel si scriptul scris in EXPECT
foreach cmd $inputCmd {
send "$cmd\n"
expect "*#"
}
exit 0

Ca sa recapitulam:
1. trebuie sa aveti instalat EXPECT
2. va trebuie fisierul <numefisier>.EXPECT - vezi mai sus
3. va trebuie fisierul <numefisier>.sh - vezi mai sus
4. va trebuie <numefisier>.csv - vezi mai sus
5. va trebuie <numefisier>.txt (atatea fisiere cate hosturi aveti, daca nu rulati aceleasi comenzi, altfel numai unul singur) - vezi mai sus

Eu am rulat cu sucess si cu BASH si cu KSH (cu mici modificari) atat din RHEL, Debian, Sun Solaris.
Spor in tot ce faceti si sper sa am vesti cat de curand pt cei care le asteapta (acum suntem cu actele la judecatorie - greu la deal cu boii mici si vale tre' sa-mpingi).  



duminică, 3 februarie 2013

GETVPN - simplu simplu


GETVPN este o modalitate de configurare a routerelor CPE prin care se centralizeaza managementul politicilor IPSec necesare in protejarea mesajelor care circula intre LAN-urile care se conecteaza aceste routere CPE. Astfel, nu mai este nevoie sa configuram tunele IPSec, politici ISAKMP, liste de acces pentru fiecare pereche de LAN-uri. Un castig si mai mare consta in faptul ca pe un router CPE nu se mai formeaza tunele IPSec, nici dinamice nici statice, pentru fiecare pereche de LAN-uri, ci doar un tunel IPSec de intrare si altul de iesire. Nu mai este nevoie ca un router CPE sa se autentifice catre celalalt sau invers; cele doua se inregistreaza la un "server de management al politicilor PSec" denumit Key Server si devin Group Member. Doua routere CPE vor comunica intre ele daca sunt inregistrate si fac parte din acelasi grup GDOI; dupa ce s-au inregistrat cu succes, primesc de la KS politicile IPSec si lista de acces care defineste traficul interesant. Pachetele IP isi conserva headerul IP initial, routerele CPE nu adauga decat headerul ESP (este cel mai folosit) si/sau AH (mai putin folosit datorita interactiunii cu eventuale politici NAT). Pe toate routerele CPE aceste tunele IPSec sunt identificate la fel (acelasi SPI).

In continuare vom lucra pe topologia de mai jos, cu trei routere CPE pe care le configuram ca GM in acelasi grup si doua routere KS, pentru redundanta.

Configuratia Key Server Main

crypto isakmp policy 10
encr 3des
authentication pre-share
group 2
lifetime 600

crypto isakmp key 0 untest address 10.0.0.0 255.0.0.0
crypto isakmp keepalive 15 periodic

crypto ipsec transform-set GETVPN_ts_1 esp-3des esp-sha-hmac

crypto ipsec profile GETVPN_p_1
set transform-set GETVPN_ts_1

access-list 100 permit ip 172.16.0.0 0.15.255.255 172.16.0.0 0.15.255.255

crypto gdoi group GETVPN_g_1
identity address ipv4 1.1.1.1
server local
rekey lifetime seconds 1800
rekey retransmit 30 number 4
rekey authentication mypubkey rsa GETVPN_1
rekey transport unicast
registration interface FastEthernet0/0
sa ipsec 1
profile GETVPN_p_1
match address ipv4 100
replay time window-size 10
address ipv4 10.0.0.0
redundancy
 local priority 255
 peer address ipv4 10.255.255.255

Configuratia Key Server Bkp

crypto isakmp policy 10
encr 3des
authentication pre-share
group 2
lifetime 600

crypto isakmp key untest address 10.0.0.0 255.0.0.0
crypto isakmp keepalive 15 periodic
crypto ipsec transform-set GETVPN_ts_1 esp-3des esp-sha-hmac
crypto ipsec profile GETVPN_p_1
set transform-set GETVPN_ts_1
crypto gdoi group GETVPN_g_1
identity address ipv4 1.1.1.1
server local
rekey lifetime seconds 1800
rekey retransmit 30 number 4
rekey authentication mypubkey rsa GETVPN_1
rekey transport unicast
registration interface FastEthernet0/0
sa ipsec 1
profile GETVPN_p_1
match address ipv4 100
replay time window-size 10
address ipv4 10.255.255.255
redundancy
local priority 1
peer address ipv4 10.0.0.0

Configuratia unui Group Member

crypto isakmp policy 10
encr 3des
authentication pre-share
group 2
lifetime 600

crypto isakmp key untest address 10.0.0.0 255.0.0.0


crypto gdoi group GETVPN_G_1
identity address ipv4 1.1.1.1
server address ipv4 10.0.0.0
server address ipv4 10.255.255.255


crypto map MAP local-address Loopback0
crypto map MAP 1 gdoi
set group GETVPN_G_1


interface Fa0/0
descrption ### link 2 MPLS Netw ### 
crypto map MAP

Normal, pe acest router se configureaza interfetele, protocoale de rutare etc.


Verificari pe routerul Key Server Main (vezi Local KS Role)


sh crypto gdoi ks
Total group members registered to this box: 3

Key Server Information For Group GETVPN_g_1:
Group Name : GETVPN_g_1
Group Identity : 1.1.1.1
Group Members : 3
IPSec SA Direction : Both
ACL Configured:
access-list 100
Redundancy : Configured
Local Address : 10.0.0.0
Local Priority : 255
Local KS Status : Alive
Local KS Role : Primary



Verificari pe routerul Key Server Bkp (vezi Local KS Role)

sh crypto gdoi ks
Total group members registered to this box: 3

Key Server Information For Group GETVPN_g_1:
Group Name : GETVPN_g_1
Group Identity : 1.1.1.1
Group Members : 3
IPSec SA Direction : Both
ACL Configured:
access-list 100
Redundancy : Configured
Local Address : 10.255.255.255
Local Priority : 1
Local KS Status : Alive
Local KS Role : Secondary



Verificari pe routerul Group Member

sh crypto gdoi
Group Information

Group Name : GETVPN_G_1
Group Identity : 1.1.1.1
Rekeys received : 0
IPSec SA Direction : Both
ACL Received From KS : gdoi_group_GETVPN_G_1_temp_acl
Active Group Server : 10.0.0.0
Group Server list : 10.0.0.0
                               10.255.255.255



In logurile de pe routerul Group Member apare mesajul:


%GDOI-5-GM_REGS_COMPL: Registration to KS 10.0.0.0 complete for group GETVPN_G_1 using address 10.0.0.10


Traficul ICMP intre doua hosturi din LAN-uri diferite 172.16.10.2 si 172.16.10.2 se vede in reteaua MPLS (vezi adresa IP sursa si destinatie)



si in routerul GM (vezi contorul pentru pachete incapsulate/decapsulate, verificate etc)

show crypto ipsec sa

interface: FastEthernet0/0
Crypto map tag: MAP, local addr 10.0.0.10

protected vrf: (none)
local ident (addr/mask/prot/port): (172.16.0.0/255.240.0.0/0/0)
remote ident (addr/mask/prot/port): (172.16.0.0/255.240.0.0/0/0)
current_peer port 848
PERMIT, flags={origin_is_acl,}
#pkts encaps: 310, #pkts encrypt: 310, #pkts digest: 310
#pkts decaps: 310, #pkts decrypt: 310, #pkts verify: 310
#pkts compressed: 0, #pkts decompressed: 0
#pkts not compressed: 0, #pkts compr. failed: 0
#pkts not decompressed: 0, #pkts decompress failed: 0
#send errors 0, #recv errors 0

local crypto endpt.: 10.0.0.10, remote crypto endpt.:
path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0
current outbound spi: 0x3FDDBB86(1071496070)

inbound esp sas:
spi: 0x3FDDBB86(1071496070)
transform: esp-3des esp-sha-hmac ,
in use settings ={Tunnel, }
conn id: 55, flow_id: SW:55, crypto map: MAP
sa timing: remaining key lifetime (k/sec): (4564260/1449)
IV size: 8 bytes
replay detection support: Y replay window size: 10
Status: ACTIVE

inbound ah sas:

inbound pcp sas:

outbound esp sas:
spi: 0x3FDDBB86(1071496070)
transform: esp-3des esp-sha-hmac ,
in use settings ={Tunnel, }
conn id: 56, flow_id: SW:56, crypto map: MAP
sa timing: remaining key lifetime (k/sec): (4564260/1427)
IV size: 8 bytes
replay detection support: Y replay window size: 10
Status: ACTIVE

outbound ah sas:

outbound pcp sas:

Daca devine indisponibil routerul Key Server Main, apare logul in Key Server Bkp

%GDOI-3-COOP_KS_UNREACH: Cooperative KS 10.0.0.0 Unreachable in group GETVPN_g_1
%GDOI-5-COOP_KS_TRANS_TO_PRI: KS 10.255.255.255 in group GETVPN_g_1 transitioned to Primary (Previous Primary = 10.0.0.0)
si verificand (vezi Local KS Role)

sh crypto gdoi ks
Total group members registered to this box: 3

Key Server Information For Group GETVPN_g_1:
Group Name : GETVPN_g_1
Group Identity : 1.1.1.1
Group Members : 3
IPSec SA Direction : Both
ACL Configured:
access-list 100
Redundancy : Configured
Local Address : 10.255.255.255
Local Priority : 1
Local KS Status : Alive
Local KS Role : Primary

Cand revine in functionare routerul Key Server Main, apare logul in Key server Bkp


%GDOI-5-COOP_KS_REACH: Reachability restored with Cooperative KS 10.0.0.0 in group GETVPN_g_1


si verificand (vezi Local KS Role)

sh crypto gdoi ks
Total group members registered to this box: 3

Key Server Information For Group GETVPN_g_1:
Group Name : GETVPN_g_1
Group Identity : 1.1.1.1
Group Members : 3
IPSec SA Direction : Both
ACL Configured:
access-list 100
Redundancy : Configured
Local Address : 10.255.255.255
Local Priority : 1
Local KS Status : Alive
Local KS Role : Secondary



In tot acest timp, traficul IPSec intre routerele Group Member nu este perturbat.


Spor la invatat.