GRE to mechanizm pozwalający na enkapsulację jednego protokołu w drugi oraz zapewniający komunikację pomiędzy dwoma urządzeniami. Rozwiązanie to jest stosowane jako enkapsulacja pakietu IP w kolejny pakiet IP z nagłówkiem GRE i przesłanie go poprzez sieć ISP lub Internet.
W celu umożliwienia komunikacji pomiędzy dwoma urządzeniami tworzony jest wirtualny tunel GRE poprzez wirtualne interfejsy tunnel które muszą być w tej samej podsieci. Dzięki temu możliwe jest wykorzystanie GRE do stworzenia zarówno połączenia pomiędzy dwoma urządzeniami (połączenie punkt-punkt), jak również możemy stworzyć DMVPN – Dynamic Multipoint VPN.
Routing
Korzystając z tunelu GRE, router traktuje wirtualny interfejs tunnel jak każdy inny interfejs w topologii punkt-punkt który posiada adres ipv4. Routery wykorzystują ustanowiony tunel do nawiązania relacji sąsiedztwa w dynamicznych protokołach routingu i wzajemnie wymieniają się trasami. Otrzymane w ten sposób podsieci umieszczane są w tablicy routingu z interfejsem wyjściowym ustawionym jako tunel oraz adresem następnego przeskoku jako adres IPv4 interfejsu tunel na drugim końcu tunelu.
Konfigurując interfejs tunel należy pamiętać o kilku zasadach, a mianowicie:
- Adres Ip Tunelu to adres z podsieci tunelu
- Źródło tunelu (tunel source) to fizyczny interfejs wyjściowy
- Cel tunelu to adres IP publiczny na interfejsie fizycznym drugiego końca tunelu
Podstawowa konfiguracja
Konfiguracja tunelu ogranicza się w zasadzie wyłącznie do konfiguracji wirtualnego interfejsu tunel. Poleceniem interface tunnel 0 wchodzimy w menu konfiguracji interfejsu. Oczywiście zamiar 0 możemy podać dowolnie wybraną liczbę, nie ma wymogu zgodności na obu końcach tunelu. Definiujemy wykorzystanie enkapsulacji tunnel mode gre ip. Następnie musimy podać adres ipv4 oraz podać interfejs wyjściowy poleceniem tunnel source gigabitethernet 0/0 i cel tunelu tunnel destination 1.1.1.2.
- Wejdź w konfigurację interfejsu interface tunnel 0
- Włącz enkapsulację tunnel mode gre ip
- Podaj adres ip address 10.1.1.2
- Podaj fizyczny interfejs wyjściowy tunnel source gigabitethernet 0/0
- Podaj cel tunelu tunnel destination 1.1.1.2
Konfiguracja routera 0
Router0(config)#interface tunnel 0 Router0(config-if)#tunnel mode gre ip Router0(config-if)#ip address 10.1.1.1 255.255.255.0 Router0(config-if)#tunnel source gigabitEthernet 0/0 Router0(config-if)#tunnel destination 1.1.1.2
Konfiguracja routera 1
Router1(config)#interface tunnel 0 Router1(config-if)#tunnel mode gre ip Router1(config-if)#ip address 10.1.1.2 255.255.255.0 Router1(config-if)#tunnel source gigabitEthernet 0/0 Router1(config-if)#tunnel destination 1.1.1.1
Weryfikacja konfiguracji:
Zweryfikujmy czy wszystko działa jak należy:
Router0(config)#interface tunnel 0 Router1#show ip interface brief Interface IP-Address OK? Method Status Protocol GigabitEthernet0/0 1.1.1.2 YES manual up up GigabitEthernet0/1 unassigned YES unset administratively down down GigabitEthernet0/2 unassigned YES unset administratively down down Tunnel0 10.1.1.2 YES manual up up
Router1#show interfaces tunnel 0 Tunnel0 is up, line protocol is up (connected) Hardware is Tunnel Internet address is 10.1.1.2/24 Encapsulation TUNNEL, loopback not set Keepalive not set Tunnel source 1.1.1.2 (GigabitEthernet0/0), destination 1.1.1.1 Tunnel protocol/transport GRE/IP
Router1#ping 1.1.1.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 0/0/1 ms