Sieci komputerowe, sieci bezprzewodowe, sprzęt do wideokonferencji - Network Expert

VPN GRE Tunel

VPN Tunel GRE – Generic Routing Encapsulation pozwala na przesyłanie poprzez tunel VPN pomiędzy dwoma lokalizacjami danych z wykorzystaniem protokołów routingu.

Tunel VPN z wykorzystaniem protokołu GRE pozwala na zaszyfrowanie całego tunelu łączącego dwie oddzielne lokalizacje i przesyłanie w nim danych poprzez dynamiczne protokoły routingu. W tym przypadku szyfrowany jest cały tunel, a nie tylko dane które się w nim znajdują. Pozwala to na ukrycie ruchu jaki jest wewnątrz sieci prywatnej i przesyłanie go przez Internet. Nikt nie podejrzy tras, czy protokołów jakie są wykorzystywane wewnątrz sieci prywatnej.

Nasza konfiguracja składa się z pięciu routerów.
Routery A i E znajdują się wewnątrz sieci LAN odpowiednio 1 i 2. To pomiędzy nimi będziemy chcieli wytworzyć tunel GRE aby dynamiczny routig mógł wymieniać informacje. Routery B i D są to routery brzegowe dla obu LANów. Router C ma za zadanie udawać Internet. Routery A i E są skonfigurowane w trasy default wskazujące na routery brzegowe. Routery B i D posiadają trasy default w kierunku routera C. Zastosowana adresacja jest przedstawiona na rysunku. Routery A,B,D i E biorą również udział w wymianie informacji routingu OSPF. Wszystkie cztery znajdują się a w tym samym Area 0.

Jako pierwszy konfigurujemy router B. Poza podstawową konfiguracją trzeba również stworzyć możliwość otwierania tunelu VPN. To na tym ruterze będzie on tworzony dla użytkowników sieci LAN 1, którzy będą chcieli się skomunikować z LANem 2. Połączenie VPN składa się z dwóch faz. W fazie pierwszej routery próbujące nawiązać połączenie wymieniają się kluczami. Wykorzystywany jest tu protokół IKE. Następuje uwierzytelnienie każdej strony. W fazie drugiej następuje ustanowienie parametrów szyfrowania tunelu docelowego. Parametry na obu końcach tunelu (w naszym przypadku na routerach B i D) muszą być takie same. Gdy wszystko się zgadza tunel się podnosi i można przesyłać dane.

B#show running-config

crypto isakmp policy 1
authentication pre-share
crypto isakmp key cisco address 81.1.2.1

crypto ipsec transform-set vpnlab2 esp-aes esp-sha-hmac

faza pierwsza wymiany i sprawdzania kluczy pomiędzy końcami tunelu jest taka sama jak w przypadku tworzenia tuneli Site-to-Site. Routery muszą się porozumieć za pomocą ISAKMP aby mogły nawiązać połączenie tunelowe.

crypto map grevpn 1 ipsec-isakmp
set peer 81.1.2.1
set transform-set vpnlab2
match address 101

access-list 101 permit gre host 81.1.1.2 host 81.1.2.1

Faza druga jest podobna z tą różnicą, że w przypisanej access-liscie nie dajemy pozwolenia na komunikowanie się ze sobą całych LANów, a jedynie końcówki tunelu i dopisujemy, że będzie się porozumiewał protokuł gre.

interface Tunnel1
ip address 192.168.10.1 255.255.255.0
tunnel source 81.1.1.2
tunnel destination 81.1.2.1

Tunnel1 musi mieć nadany adres, który będzie odrębną siecią (tunnel source i destination). Na routerze, gdzie znajduje się drugi koniec tunelu musi być również interfejs Tunnel, który musi się znajdować w tej samej sieci.

interface FastEthernet0/0
ip address 10.192.10.1 255.255.255.0
duplex auto
speed auto

interface FastEthernet0/1
ip address 81.1.1.2 255.255.255.252
duplex auto
speed auto
crypto map grevpn

Na naszych routerach skonfigurowaliśmy routing OSPF. W przypadku routera B ma on dodane dwie sieci: swoją sieć LAN 10.192.10.0 i sieć która jest w tunelu 192.168.10.0

router ospf 1
log-adjacency-changes
network 10.192.10.0 0.0.0.255 area 0
network 192.168.10.0 0.0.0.255 area 0

ip route 0.0.0.0 0.0.0.0 81.1.1.1

Trasa domyślna pozostaje taka sama jak w przypadku konfiguracji Site-to-Site, trasa do routera C
Tunnel1 pojawił się w spisie wszystkich interfejsów:

B#show ip interface brief
Interface IP-Address OK? Method Status Protocol
FastEthernet0/0 10.192.10.1 YES manual up up
FastEthernet0/1 81.1.1.2 YES manual up up
Tunnel1 192.168.10.1 YES manual up up

Wpisując komendę show ip route możemy zobaczyć, że routery wymieniają się informacjami o swoich sieciach wewnętrznych:

B#show 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 81.1.1.1 to network 0.0.0.0

81.0.0.0/30 is subnetted, 1 subnets
C 81.1.1.0 is directly connected, FastEthernet0/1
C 192.168.10.0/24 is directly connected, Tunnel1
10.0.0.0/24 is subnetted, 2 subnets
C 10.192.10.0 is directly connected, FastEthernet0/0
O 10.192.20.0 [110/11121] via 192.168.10.2, 00:43:18, Tunnel1
S* 0.0.0.0/0 [1/0] via 81.1.1.1

Tak jak w poprzednim przypadku mamy dwie komendy pozwalające na kontrolowanie poszczególnych faz zestawiania tunelu, jak również mamy wgląd na ilość zaszyfrowanych i odszyfrowanyh pakietów.

B#show crypto isakmp sa
IPv4 Crypto ISAKMP SA
dst src state conn-id slot status
81.1.2.1 81.1.1.2 QM_IDLE 1001 0 ACTIVE

IPv6 Crypto ISAKMP SA

B#show crypto ipsec sa

interface: Tunnel1
Crypto map tag: grevpn, local addr 81.1.1.2

protected vrf: (none)
local ident (addr/mask/prot/port): (81.1.1.2/255.255.255.255/47/0)
remote ident (addr/mask/prot/port): (81.1.2.1/255.255.255.255/47/0)
current_peer 81.1.2.1 port 500
PERMIT, flags={origin_is_acl,}
#pkts encaps: 338, #pkts encrypt: 338, #pkts digest: 338
#pkts decaps: 337, #pkts decrypt: 337, #pkts verify: 337
#pkts compressed: 0, #pkts decompressed: 0
#pkts not compressed: 0, #pkts compr. failed: 0
#pkts not decompressed: 0, #pkts decompress failed: 0
#send errors 1, #recv errors 0

local crypto endpt.: 81.1.1.2, remote crypto endpt.: 81.1.2.1
path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/1
current outbound spi: 0x7A2465E2(2049205730)

inbound esp sas:
spi: 0xA97B13E2(2843415522)
transform: esp-aes esp-sha-hmac ,
in use settings ={Tunnel, }
conn id: 5, flow_id: SW:5, crypto map: grevpn
sa timing: remaining key lifetime (k/sec): (4607822/967)
IV size: 16 bytes
replay detection support: Y
Status: ACTIVE

inbound ah sas:

inbound pcp sas:

outbound esp sas:
spi: 0x7A2465E2(2049205730)
transform: esp-aes esp-sha-hmac ,
in use settings ={Tunnel, }
conn id: 6, flow_id: SW:6, crypto map: grevpn
sa timing: remaining key lifetime (k/sec): (4607822/967)
IV size: 16 bytes
replay detection support: Y
Status: ACTIVE

outbound ah sas:

outbound pcp sas:

Dodatkowo możemy podejrzeć status tunelu:

B#show crypto session
Crypto session current status

Interface: FastEthernet0/1 Tunnel1
Session status: UP-ACTIVE
Peer: 81.1.2.1 port 500
IKE SA: local 81.1.1.2/500 remote 81.1.2.1/500 Active
IPSEC FLOW: permit 47 host 81.1.1.2 host 81.1.2.1
Active SAs: 2, origin: crypto map

Konfiguracja dla routera D:

D#show running-config

crypto isakmp policy 1
authentication pre-share
crypto isakmp key cisco address 81.1.1.2

crypto ipsec transform-set vpnlab2 esp-aes esp-sha-hmac

crypto map grevpn 1 ipsec-isakmp
set peer 81.1.1.2
set transform-set vpnlab2
match address 101

Interfejs Tunel 1 i crypto mapa + access-lista są skierowane w kierunku routera B

interface Tunnel1
ip address 192.168.10.2 255.255.255.0
tunnel source 81.1.2.1
tunnel destination 81.1.1.2
crypto map grevpn

interface FastEthernet0/0
ip address 81.1.2.1 255.255.255.252
duplex auto
speed auto
crypto map grevpn

interface FastEthernet0/1
ip address 10.192.20.1 255.255.255.0
duplex auto
speed auto

OSPF na routerze D jest skonfigurowany tak, że ma dodaną swoją sieć LAN i sieć wewnątrz tunelu.

router ospf 1
log-adjacency-changes
network 10.192.20.0 0.0.0.255 area 0
network 192.168.10.0 0.0.0.255 area 0

ip route 0.0.0.0 0.0.0.0 81.1.2.2

access-list 101 permit gre host 81.1.2.1 host 81.1.1.2

D#show ip interface brief
Interface IP-Address OK? Method Status Protocol
FastEthernet0/0 81.1.2.1 YES manual up up
FastEthernet0/1 10.192.20.1 YES manual up up
Tunnel1 192.168.10.2 YES manual up up
R4#show 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 81.1.2.2 to network 0.0.0.0

81.0.0.0/30 is subnetted, 1 subnets
C 81.1.2.0 is directly connected, FastEthernet0/0
C 192.168.10.0/24 is directly connected, Tunnel1
10.0.0.0/24 is subnetted, 2 subnets
O 10.192.10.0 [110/11121] via 192.168.10.1, 00:48:12, Tunnel1
C 10.192.20.0 is directly connected, FastEthernet0/1
S* 0.0.0.0/0 [1/0] via 81.1.2.2


D#show crypto isakmp sa
IPv4 Crypto ISAKMP SA
dst src state conn-id slot status
81.1.2.1 81.1.1.2 QM_IDLE 1001 0 ACTIVE

IPv6 Crypto ISAKMP SA

D#show crypto ipsec sa

interface: Tunnel1
Crypto map tag: grevpn, local addr 81.1.2.1

protected vrf: (none)
local ident (addr/mask/prot/port): (81.1.2.1/255.255.255.255/47/0)
remote ident (addr/mask/prot/port): (81.1.1.2/255.255.255.255/47/0)
current_peer 81.1.1.2 port 500
PERMIT, flags={origin_is_acl,}
#pkts encaps: 369, #pkts encrypt: 369, #pkts digest: 369
#pkts decaps: 370, #pkts decrypt: 370, #pkts verify: 370
#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.: 81.1.2.1, remote crypto endpt.: 81.1.1.2
path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0
current outbound spi: 0xA97B13E2(2843415522)

inbound esp sas:
spi: 0x7A2465E2(2049205730)
transform: esp-aes esp-sha-hmac ,
in use settings ={Tunnel, }
conn id: 5, flow_id: SW:5, crypto map: grevpn
sa timing: remaining key lifetime (k/sec): (4420282/660)
IV size: 16 bytes
replay detection support: Y
Status: ACTIVE

inbound ah sas:

inbound pcp sas:

outbound esp sas:
spi: 0xA97B13E2(2843415522)
transform: esp-aes esp-sha-hmac ,
in use settings ={Tunnel, }
conn id: 6, flow_id: SW:6, crypto map: grevpn
sa timing: remaining key lifetime (k/sec): (4420282/660)
IV size: 16 bytes
replay detection support: Y
Status: ACTIVE

outbound ah sas:

outbound pcp sas:


D# show crypto session
Crypto session current status

Interface: FastEthernet0/0 Tunnel1
Session status: UP-ACTIVE
Peer: 81.1.1.2 port 500
IKE SA: local 81.1.2.1/500 remote 81.1.1.2/500 Active
IPSEC FLOW: permit 47 host 81.1.2.1 host 81.1.1.2
Active SAs: 2, origin: crypto map

Na koniec jeszcze pokażemy wynik komendy show ip route na routerach A i E. Wsród tras jakie mają dodane widać, że są ze sobą połączone przez OSPF.

A# show ip interface brief

Interface IP-Address OK? Method Status Protocol
FastEthernet0/0 10.192.10.2 YES manual up up
FastEthernet0/1 unassigned YES unset administratively down down
R6#show 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 10.192.10.1 to network 0.0.0.0

O 192.168.10.0/24 [110/11121] via 10.192.10.1, 00:52:47, FastEthernet0/0
10.0.0.0/24 is subnetted, 2 subnets
C 10.192.10.0 is directly connected, FastEthernet0/0
O 10.192.20.0 [110/11131] via 10.192.10.1, 00:52:05, FastEthernet0/0
S* 0.0.0.0/0 [1/0] via 10.192.10.1


A#ping 10.192.20.2

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.192.20.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1224/1473/1620 ms

E# show 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 10.192.20.1 to network 0.0.0.0

O 192.168.10.0/24 [110/11121] via 10.192.20.1, 00:53:34, FastEthernet0/1
10.0.0.0/24 is subnetted, 2 subnets
O 10.192.10.0 [110/11131] via 10.192.20.1, 00:53:24, FastEthernet0/1
C 10.192.20.0 is directly connected, FastEthernet0/1
S* 0.0.0.0/0 [1/0] via 10.192.20.1

E#ping 10.192.10.2

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.192.10.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 980/1513/1760 ms

2024-06-25T11:51:24+02:00
Przejdź do góry