www.infoacademy.net
Initial, acest protocol a fost proiectat stateless – nu stim la un capat al tunelului virtual de
existenta/starea celuilalt capat al tunelului. Extensii ulterioare adaugate permit acest lucru
(prin mesaje de keepalive).
Un prim avantaj al protocolului GRE fata de alte protocoale de tunelare este posibilitatea
incapsularii nu doar a traficului unicast IPv4 ci si a celui multicast, facilitate utila in cazul
protocoalelor de routare ce trimit astfel de update-uri).
Un al 2-lea avantaj este facilitatea de a incapsula nu doar IPv4 ci si alte protocoale de L3
Non-IP (IPSec nu permite acest lucru).
Un al 3-lea avantaj este caracterul sau ubicuu – gasim acest protocol in implementarile nu
doar a celor de la Cisco, ci si pe Linux/Unix (comanda ip tunnel …), Windows (tunelele
PPTP sunt construite peste incapsularea GRE), sa.
Un al 4-lea avantaj este dimensiunea redusa a headerului GRE, overhead care insa nu este
fix – in functie de facilitatile pe care ni le dorim de la tunel (secventializare, autentificare,
routare dupa sursa) overhead-ul acesta se poate mari (se introduc/populeaza campuri noi
in header)
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
┌─┬─┬─┬─┬─┬─────┬─────────┬─────┬───────────────────────────────┐
│C│R│K│S│s│Recur│ Flags │ Ver │ Protocol Type │
├─┴─┴─┴─┴─┴─────┴─────────┴─────┼───────────────────────────────┤
│ Checksum (optional) │ Offset (optional) │
├───────────────────────────────┴───────────────────────────────┤
│ Key (optional) │
├───────────────────────────────────────────────────────────────┤
│ Sequence Number (optional) │
├───────────────────────────────────────────────────────────────┤
│ Routing (optional) │
└───────────────────────────────────────────────────────────────┘
1
Cisco Networking Academy
www.infoacademy.net
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
┌─┬───────────────────────┬─────┬───────────────────────────────┐
│C│ Reserved0 │ Ver │ Protocol Type │
├─┴───────────────────────┴─────┼───────────────────────────────┤
│ Checksum (optional) │ Reserved1 (optional) │
└───────────────────────────────┴───────────────────────────────┘
In acest RFC ulterior s-a renuntat la headere-le de routare, seq number, key-ing, cat si la
bitii de flag corespunzatori – ei sunt inlocuiti cu 0, ceea ce asigura interoperabilitatea cu
implementarea 1701 (bitii cu valoarea 0 reprezentau absenta acestor campuri).
Daca mesajul este trimis de 2784, acei biti de 0 vor fi interpretati corespunzator de 1701
(certifica absenta campurilor optionale). Daca 1701 trimite mesaje cu acei biti pe 0 atunci
2784 va accepta acel mesaj.
In cazul in care 1701 trimite un mesaj cu cel putin 1 bit din bitii respectivi pe 1, 2784 va
arunca acel pachet.
2
Cisco Networking Academy
www.infoacademy.net
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
┌─┬─┬─┬─┬─────────────────┬─────┬───────────────────────────────┐
│C│ │K│S│ Reserved0 │ Ver │ Protocol Type │
├─┴─┴─┴─┴─────────────────┴─────┼───────────────────────────────┤
│ Checksum (optional) │ Reserved1 (optional) │
├───────────────────────────────┴───────────────────────────────┤
│ Key (optional) │
├───────────────────────────────────────────────────────────────┤
│ Sequence Number (optional) │
└───────────────────────────────────────────────────────────────┘
Dupa cum se observa s-a revenit in acest RFC la bitii si headerul de key-ing si de
sequence-ing.
Versiunile de cod IOS mai noi decat 12.2T implementeaza RFC 2784 si, optional, RFC
2890.
GRE este adesea folosit impreuna cu un alt protocol pentru a oferii securitatea traficului
in tranzit - in acest rol se foloseste adesea IPSec, sau, uneori, criptare la nivelul L7 OSI.
3
Cisco Networking Academy
www.infoacademy.net
Obligatoriu:
R1(config-if)# ip add 172.20.255.253 255.255.255.252 pornim IPv4 pe interfata
R1(config-if)# tunnel-source serial 0/0 putem preciza o adresa IPv4, IPv6..
R1(config)-if# tunnel-destination 154.1.2.3 adresa IPv4 publica a celuilalt capat
Optional:
R1(config-if)# tunnel checksum cerem verificarea integritatii
R1(config-if)# tunnel key 123454321 identica la capatul opus, 32 biti
R1(config-if)# tunnel sequence-datagrams se arunca pkt. daca vin in alta ordine
R1(config-if)# tunnel mode gre ip Default. Se va incapsula IPv4
R1(config-if)# keepalive 2 2 detectam pierderea comunicarii cu
celalalt capat al tunelului. Se trimit la 2 sec, holddown 4 sec
R1(config)# ip route 0.0.0.0 0.0.0.0 s0/0 ruta default prin Service Provider
-----------------------------------------
R2(config)# int serial 0/1
R2(config-if)# ip add 154.1.2.3 255.255.255.248
R2(config-if)# no shutdown
R2(config-if)# exit
4
Cisco Networking Academy
www.infoacademy.net
- Vizualizare:
Router# show ip interface brief
Router# show interface tunnel 0
Router# show running-config interface tunnel0
Router# show ip route
- Depanare:
Router# debug tunnel
Router# debug interface tunnel <nr>