💾

Laboratorijska vežba – Modul 15 – Site-to-site VPN: GRE tunel zaštićen IPsec-om

Cilj vežbe

Konfigurisati GRE tunel između dva rutera koji predstavljaju dve poslovnice preko simuliranog interneta, proveriti da tunel radi ali ne enkriptuje saobraćaj, zatim dodati IPsec zaštitu (GRE over IPsec) i proveriti da su privatne LAN mreže obe poslovnice sada bezbedno povezane.

Potrebno predznanje

  • Kompletna teorija ovog modula (Teme 1–15).
  • Statičko rutiranje (Modul 11), NAT terminologija/javne adrese (Modul 13), CLI osnove (Modul 7).

Potrebni programi

  • Cisco Packet Tracer.

Potrebni uređaji (u simulaciji)

UređajTačan model u Packet TraceruUloga
R1Cisco 4321 (ili 1941)Granični ruter poslovnice A
R2Cisco 4321 (ili 1941)Granični ruter poslovnice B
R-ISPCisco 4321 (ili 1941)Simulira javni internet između R1 i R2
SW1, SW2Cisco Catalyst 2960LAN svičevi u poslovnicama A i B
PC1Generic PC-PTKlijent u poslovnici A
PC2Generic PC-PTKlijent u poslovnici B

Topologija

graph LR
    PC1["PC1<br/>192.168.1.10/24"] --- SW1[SW1] --- R1["R1<br/>Gi0/0: 192.168.1.1<br/>Gi0/1: 203.0.113.1 (javna)"]
    R1 ---|"internet"| RISP["R-ISP<br/>Gi0/0: 203.0.113.2<br/>Gi0/1: 198.51.100.2"]
    RISP ---|"internet"| R2["R2<br/>Gi0/1: 198.51.100.1 (javna)<br/>Gi0/0: 192.168.2.1"]
    R2 --- SW2[SW2] --- PC2["PC2<br/>192.168.2.10/24"]
    R1 -.->|"GRE tunel (Tunnel0)<br/>10.10.10.0/30<br/>+ IPsec zaštita"| R2

Napomena o topologiji: R-ISP predstavlja javni internet — rutira samo između javnih mreža (203.0.113.0/30 i 198.51.100.0/30) i nikada ne vidi privatne LAN mreže poslovnica (Tema 9) niti bilo kakvu rutu ka njima. GRE tunel se gradi preko ove javne veze; IPsec se dodaje da zaštiti sadržaj tog tunela.

Plan adresiranja

UređajInterfejsIP adresaMaskaNapomena
PC1NIC192.168.1.10255.255.255.0Gateway 192.168.1.1
PC2NIC192.168.2.10255.255.255.0Gateway 192.168.2.1
R1GigabitEthernet0/0192.168.1.1255.255.255.0LAN poslovnice A
R1GigabitEthernet0/1203.0.113.1255.255.255.252Javna, ka R-ISP
R1Tunnel010.10.10.1255.255.255.252GRE tunel
R-ISPGigabitEthernet0/0203.0.113.2255.255.255.252ka R1
R-ISPGigabitEthernet0/1198.51.100.2255.255.255.252ka R2
R2GigabitEthernet0/1198.51.100.1255.255.255.252Javna, ka R-ISP
R2GigabitEthernet0/0192.168.2.1255.255.255.0LAN poslovnice B
R2Tunnel010.10.10.2255.255.255.252GRE tunel

Tabela portova

UređajPortPovezan sa
R1Gi0/0SW1
R1Gi0/1R-ISP Gi0/0
R-ISPGi0/1R2 Gi0/1
R2Gi0/0SW2
SW1Fa0/1PC1
SW2Fa0/1PC2

Koraci vežbe

Korak 1 – Postavljanje topologije

Postavite tri rutera, dva sviča i dva računara. Povežite ih prema tabeli portova.

Korak 2 – Osnovna konfiguracija i adresiranje

Router>enable
Router#configure terminal
Router(config)#hostname R1
R1(config)#interface gigabitEthernet 0/0
R1(config-if)#ip address 192.168.1.1 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#interface gigabitEthernet 0/1
R1(config-if)#ip address 203.0.113.1 255.255.255.252
R1(config-if)#no shutdown
R1(config-if)#exit

Ponovite analogno za R2 (Gi0/0 = 192.168.2.1/24, Gi0/1 = 198.51.100.1/30) i R-ISP (Gi0/0 = 203.0.113.2/30, Gi0/1 = 198.51.100.2/30).

Korak 3 – Statičko rutiranje ka internetu

R1(config)#ip route 0.0.0.0 0.0.0.0 203.0.113.2
R2(config)#ip route 0.0.0.0 0.0.0.0 198.51.100.2

Objašnjenje: R1 i R2 samo trebaju da dosegnu jedan drugog preko javnih adresa (Tema 9) — default ruta ka R-ISP-u je dovoljna. R-ISP ne treba nikakvu dodatnu rutu jer su obe javne mreže (203.0.113.0/30 i 198.51.100.0/30) directly connected na njemu.

Korak 4 – Konfiguracija PC1 i PC2

Na oba računara, u Desktop → IP Configuration, unesite statičke adrese, maske i gateway prema tabeli adresiranja.

Korak 5 – Konfiguracija GRE tunela

R1(config)#interface tunnel 0
R1(config-if)#ip address 10.10.10.1 255.255.255.252
R1(config-if)#tunnel source 203.0.113.1
R1(config-if)#tunnel destination 198.51.100.1
R1(config-if)#exit
R1(config)#ip route 192.168.2.0 255.255.255.0 tunnel 0
R2(config)#interface tunnel 0
R2(config-if)#ip address 10.10.10.2 255.255.255.252
R2(config-if)#tunnel source 198.51.100.1
R2(config-if)#tunnel destination 203.0.113.1
R2(config-if)#exit
R2(config)#ip route 192.168.1.0 255.255.255.0 tunnel 0

Korak 6 – Provera GRE tunela (bez enkripcije)

R1#show interfaces tunnel 0
Tunnel0 is up, line protocol is up

R1#ping 10.10.10.2

Sa PC1:

PC1> ping 192.168.2.10

Objašnjenje: Ping uspeva jer GRE tunel (Tema 14) obezbeđuje potpuno funkcionalan point-to-point link preko koga se privatne mreže mogu rutirati — ali ovaj saobraćaj još uvek nije enkriptovan. Bilo ko ko presretne saobraćaj između R1 i R2 na javnom internetu mogao bi da pročita originalni sadržaj.

Korak 7 – Konfiguracija IKE (ISAKMP) parametara

R1(config)#crypto isakmp policy 10
R1(config-isakmp)#encryption aes 256
R1(config-isakmp)#hash sha256
R1(config-isakmp)#authentication pre-share
R1(config-isakmp)#group 14
R1(config-isakmp)#exit
R1(config)#crypto isakmp key VezaPoslovnica123 address 198.51.100.1
R2(config)#crypto isakmp policy 10
R2(config-isakmp)#encryption aes 256
R2(config-isakmp)#hash sha256
R2(config-isakmp)#authentication pre-share
R2(config-isakmp)#group 14
R2(config-isakmp)#exit
R2(config)#crypto isakmp key VezaPoslovnica123 address 203.0.113.1

Objašnjenje: ISAKMP policy definiše parametre za IKE Fazu 1 (Tema 12) — moraju se potpuno poklapati na oba rutera. Pre-shared key (VezaPoslovnica123) mora biti identičan na oba kraja, povezan sa javnom adresom udaljenog rutera.

Korak 8 – Konfiguracija IPsec transform-seta

R1(config)#crypto ipsec transform-set MOJ-TRANSFORM esp-aes 256 esp-sha256-hmac
R1(config)#crypto ipsec transform-set MOJ-TRANSFORM mode transport
R2(config)#crypto ipsec transform-set MOJ-TRANSFORM esp-aes 256 esp-sha256-hmac
R2(config)#crypto ipsec transform-set MOJ-TRANSFORM mode transport

Objašnjenje: Koristi se transport mod (Tema 12), ne tunnel mod, jer GRE već obavlja enkapsulaciju originalnog privatnog saobraćaja — IPsec ovde štiti samo sam GRE saobraćaj (koji već putuje između dve javne adrese), pa transport mod je efikasniji izbor (manje dodatnog zaglavlja) upravo u GRE over IPsec dizajnu.

Korak 9 – Definisanje saobraćaja koji treba zaštititi (ACL)

R1(config)#access-list 100 permit gre host 203.0.113.1 host 198.51.100.1
R2(config)#access-list 100 permit gre host 198.51.100.1 host 203.0.113.1

Objašnjenje: Ova ACL identifikuje tačno GRE saobraćaj (protokol 47) između dve javne adrese rutera kao ono što treba zaštititi IPsec-om — ne privatni LAN saobraćaj direktno (koji je već enkapsuliran unutar GRE-a).

Korak 10 – Kreiranje i primena crypto map-e

R1(config)#crypto map MOJA-MAPA 10 ipsec-isakmp
R1(config-crypto-map)#set peer 198.51.100.1
R1(config-crypto-map)#set transform-set MOJ-TRANSFORM
R1(config-crypto-map)#match address 100
R1(config-crypto-map)#exit
R1(config)#interface gigabitEthernet 0/1
R1(config-if)#crypto map MOJA-MAPA
R2(config)#crypto map MOJA-MAPA 10 ipsec-isakmp
R2(config-crypto-map)#set peer 203.0.113.1
R2(config-crypto-map)#set transform-set MOJ-TRANSFORM
R2(config-crypto-map)#match address 100
R2(config-crypto-map)#exit
R2(config)#interface gigabitEthernet 0/1
R2(config-if)#crypto map MOJA-MAPA

Objašnjenje: Crypto map se primenjuje na fizički, javni (outside) interfejs (Gi0/1), ne na Tunnel0 — IPsec štiti saobraćaj u trenutku kada napušta ruter ka javnom internetu, gde je GRE paket već formiran i spreman za enkripciju.

Korak 11 – Provera IPsec tunela

Sa PC1, generišite saobraćaj:

PC1> ping 192.168.2.10

Na R1:

R1#show crypto isakmp sa
dst             src             state          conn-id status
198.51.100.1    203.0.113.1     QM_IDLE        1       ACTIVE

R1#show crypto ipsec sa
   #pkts encaps: 5, #pkts decaps: 5

Objašnjenje: show crypto isakmp sa potvrđuje da je IKE Faza 1 uspešno uspostavljena (stanje QM_IDLE = stabilno). show crypto ipsec sa prikazuje rastući broj enkapsuliranih/dekapsuliranih paketa nakon ping saobraćaja, potvrđujući da GRE saobraćaj (koji nosi privatni LAN saobraćaj) sada zaista prolazi kroz IPsec zaštitu, ne samo kroz „goli" GRE tunel iz Koraka 6.

Korak 12 – Dijagnostička vežba: nepoklapajući pre-shared key

  1. Na R2, namerno promenite pre-shared key: R2(config)#no crypto isakmp key VezaPoslovnica123 address 203.0.113.1 zatim R2(config)#crypto isakmp key PogresnaLozinka address 203.0.113.1.
  2. Obrišite postojeće IPsec/IKE sesije da bi se pregovaranje ponovilo: R1#clear crypto isakmp i R1#clear crypto ipsec sa.
  3. Sa PC1, ponovo pokušajte ping 192.168.2.10 — ping ne uspeva ili je vrlo nepouzdan.
  4. Proverite show crypto isakmp sa na R1 — IKE Faza 1 ne uspeva da se uspostavi (nema ACTIVE stanja, ili se veza stalno ponovo pokušava).
  5. Objasnite svojim rečima, na osnovu Teme 12, zašto nepoklapajući pre-shared key sprečava IPsec zaštitu GRE saobraćaja, iako sam GRE tunel (Tunnel0 interfejs) i dalje tehnički postoji.
  6. Vratite ispravan pre-shared key na R2 da nastavite vežbu.

Korak 13 – Čuvanje konfiguracije

Na sva tri rutera:

R1#copy running-config startup-config

Komande za proveru

show interfaces tunnel 0
show ip route
show crypto isakmp sa
show crypto ipsec sa
show crypto map
ping <adresa>

Najčešće greške

GreškaUzrokRešenje
GRE tunel je „down"tunnel source/tunnel destination nisu dostižni preko postojeće rute (Korak 3), ili su zamenjeniProveriti show ip route i tačnost javnih adresa
Ping preko GRE tunela uspeva, ali IPsec statistika (show crypto ipsec sa) ne rasteCrypto map nije primenjena na ispravan (fizički, outside) interfejs, ili ACL 100 ne odgovara tačno GRE saobraćajuProveriti Korake 9-10
IKE Faza 1 se nikad ne uspostavljaNepoklapajući ISAKMP parametri (enkripcija, heš, DH grupa) ili pre-shared key između ruteraProveriti da su Korak 7 vrednosti identične na oba rutera
Transform-set greška pri primeniNepodudaranje moda (tunnel naspram transport) između ruteraProveriti da oba rutera koriste isti mod (Korak 8, transport)

Postupak rešavanja problema (troubleshooting)

  1. show ip route — proveriti da postoji ruta ka javnoj adresi udaljenog rutera (preduslov za GRE).
  2. show interfaces tunnel 0 — proveriti da je GRE tunel up/up.
  3. ping preko tunela (adresa 10.10.10.x) — proveriti osnovnu GRE funkcionalnost pre dodavanja IPsec-a.
  4. show crypto isakmp sa — proveriti da je IKE Faza 1 uspešno uspostavljena.
  5. show crypto ipsec sa — proveriti da encaps/decaps brojači rastu nakon generisanog saobraćaja.

Završna provera

Vežba je uspešno završena kada:

  1. show interfaces tunnel 0 prikazuje GRE tunel u stanju up/up na oba rutera.
  2. Ping PC1 → PC2 uspeva i pre i posle dodavanja IPsec-a.
  3. show crypto isakmp sa i show crypto ipsec sa potvrđuju aktivnu IPsec zaštitu sa rastućim brojačima nakon saobraćaja.
  4. Objašnjen je uzrok neuspešne IPsec zaštite sa nepoklapajućim pre-shared key-em (Korak 12).

Dodatni izazov

Promenite IPsec transform-set tako da koristi slabiju enkripciju (esp-des umesto esp-aes 256) na samo jednom ruteru, ostavljajući drugi nepromenjen, i posmatrajte da li IKE pregovaranje uspeva. Zatim istražite (van Packet Tracer-a, teorijski) zašto se DES enkripcija smatra zastarelom u modernim IPsec implementacijama, i predložite koji savremeni algoritam biste preporučili umesto njega.

Rešenje

Kompletno rešenje ove vežbe nalazi se u /resenja/modul-15/04-laboratorijska-vezba-resenje.md.

📖 Prikaži rešenje

Rešenje laboratorijske vežbe – Modul 15

Kompletna konfiguracija – R1

Router>enable
Router#configure terminal
Router(config)#hostname R1
R1(config)#interface gigabitEthernet 0/0
R1(config-if)#ip address 192.168.1.1 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#interface gigabitEthernet 0/1
R1(config-if)#ip address 203.0.113.1 255.255.255.252
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#ip route 0.0.0.0 0.0.0.0 203.0.113.2
R1(config)#interface tunnel 0
R1(config-if)#ip address 10.10.10.1 255.255.255.252
R1(config-if)#tunnel source 203.0.113.1
R1(config-if)#tunnel destination 198.51.100.1
R1(config-if)#exit
R1(config)#ip route 192.168.2.0 255.255.255.0 tunnel 0
R1(config)#crypto isakmp policy 10
R1(config-isakmp)#encryption aes 256
R1(config-isakmp)#hash sha256
R1(config-isakmp)#authentication pre-share
R1(config-isakmp)#group 14
R1(config-isakmp)#exit
R1(config)#crypto isakmp key VezaPoslovnica123 address 198.51.100.1
R1(config)#crypto ipsec transform-set MOJ-TRANSFORM esp-aes 256 esp-sha256-hmac
R1(cfg-crypto-trans)#mode transport
R1(cfg-crypto-trans)#exit
R1(config)#access-list 100 permit gre host 203.0.113.1 host 198.51.100.1
R1(config)#crypto map MOJA-MAPA 10 ipsec-isakmp
R1(config-crypto-map)#set peer 198.51.100.1
R1(config-crypto-map)#set transform-set MOJ-TRANSFORM
R1(config-crypto-map)#match address 100
R1(config-crypto-map)#exit
R1(config)#interface gigabitEthernet 0/1
R1(config-if)#crypto map MOJA-MAPA
R1(config-if)#end
R1#copy running-config startup-config

Kompletna konfiguracija – R2

Router>enable
Router#configure terminal
Router(config)#hostname R2
R2(config)#interface gigabitEthernet 0/0
R2(config-if)#ip address 192.168.2.1 255.255.255.0
R2(config-if)#no shutdown
R2(config-if)#exit
R2(config)#interface gigabitEthernet 0/1
R2(config-if)#ip address 198.51.100.1 255.255.255.252
R2(config-if)#no shutdown
R2(config-if)#exit
R2(config)#ip route 0.0.0.0 0.0.0.0 198.51.100.2
R2(config)#interface tunnel 0
R2(config-if)#ip address 10.10.10.2 255.255.255.252
R2(config-if)#tunnel source 198.51.100.1
R2(config-if)#tunnel destination 203.0.113.1
R2(config-if)#exit
R2(config)#ip route 192.168.1.0 255.255.255.0 tunnel 0
R2(config)#crypto isakmp policy 10
R2(config-isakmp)#encryption aes 256
R2(config-isakmp)#hash sha256
R2(config-isakmp)#authentication pre-share
R2(config-isakmp)#group 14
R2(config-isakmp)#exit
R2(config)#crypto isakmp key VezaPoslovnica123 address 203.0.113.1
R2(config)#crypto ipsec transform-set MOJ-TRANSFORM esp-aes 256 esp-sha256-hmac
R2(cfg-crypto-trans)#mode transport
R2(cfg-crypto-trans)#exit
R2(config)#access-list 100 permit gre host 198.51.100.1 host 203.0.113.1
R2(config)#crypto map MOJA-MAPA 10 ipsec-isakmp
R2(config-crypto-map)#set peer 203.0.113.1
R2(config-crypto-map)#set transform-set MOJ-TRANSFORM
R2(config-crypto-map)#match address 100
R2(config-crypto-map)#exit
R2(config)#interface gigabitEthernet 0/1
R2(config-if)#crypto map MOJA-MAPA
R2(config-if)#end
R2#copy running-config startup-config

Kompletna konfiguracija – R-ISP

Router>enable
Router#configure terminal
Router(config)#hostname R-ISP
R-ISP(config)#interface gigabitEthernet 0/0
R-ISP(config-if)#ip address 203.0.113.2 255.255.255.252
R-ISP(config-if)#no shutdown
R-ISP(config-if)#exit
R-ISP(config)#interface gigabitEthernet 0/1
R-ISP(config-if)#ip address 198.51.100.2 255.255.255.252
R-ISP(config-if)#no shutdown

(R-ISP ne treba nikakvu dodatnu rutu — obe javne mreže su directly connected, a R-ISP nikada ne treba da zna za privatne LAN mreže 192.168.1.0/24 i 192.168.2.0/24.)

Konfiguracija PC1 i PC2

UređajIP adresaMaskaGateway
PC1192.168.1.10255.255.255.0192.168.1.1
PC2192.168.2.10255.255.255.0192.168.2.1

Korak 6 – Provera GRE tunela (bez IPsec-a, pre Koraka 7)

R1#show interfaces tunnel 0
Tunnel0 is up, line protocol is up

PC1> ping 192.168.2.10
Reply from 192.168.2.10: bytes=32 time<1ms TTL=126

Uspešno, ali još uvek bez enkripcije.

Korak 11 – Provera nakon dodavanja IPsec-a

R1#show crypto isakmp sa
dst             src             state          conn-id status
198.51.100.1    203.0.113.1     QM_IDLE        1       ACTIVE

R1#show crypto ipsec sa
   ...
   #pkts encaps: 5, #pkts decaps: 5
   #pkts encrypt: 5, #pkts decrypt: 5

Objašnjenje: Nakon ping saobraćaja sa PC1 ka PC2, brojači encaps/decaps rastu, potvrđujući da GRE saobraćaj (koji nosi originalni privatni ping) sada prolazi kroz IPsec enkripciju pre nego što napusti R1 ka javnom internetu.

Korak 12 – Dijagnostička vežba

Nakon promene pre-shared key-a na R2 na PogresnaLozinka:

R1#clear crypto isakmp
R1#clear crypto ipsec sa
PC1> ping 192.168.2.10
Request timed out.
R1#show crypto isakmp sa
dst             src             state          conn-id status
198.51.100.1    203.0.113.1     MM_NO_STATE    0       ACTIVE (deleting)

Objašnjenje: IKE Faza 1 ne uspeva jer R1 i R2 sada imaju različite pre-shared key-eve — deljena tajna se koristi za međusobnu autentifikaciju rutera pre nego što se bilo kakav enkripcijski ključ zapravo razmeni; ako se ne poklapaju, autentifikacija propada i IKE sesija ostaje u nestabilnom stanju (npr. MM_NO_STATE), nikada ne dostiže QM_IDLE. Pošto ISAKMP nikada nije uspešno završen, IPsec SA se nikada ne uspostavlja, a crypto map na Gi0/1 blokira GRE saobraćaj koji odgovara ACL 100 dok se ne uspostavi validna IPsec zaštita — ping ne uspeva iako Tunnel0 interfejs i dalje tehnički postoji i prikazuje se kao up/up.

Nakon vraćanja ispravnog pre-shared key-a (crypto isakmp key VezaPoslovnica123 address 203.0.113.1 na R2) i ponovnog clear crypto isakmp/clear crypto ipsec sa, ping se ponovo uspostavlja.

Rešenje dodatnog izazova

Promena na R1 na esp-des (slabiji, zastareo algoritam) dok R2 zadržava esp-aes 256 izaziva nepoklapanje transform-set parametara — IKE Faza 2 (IPsec SA pregovaranje) ne uspeva jer oba rutera moraju ponuditi/prihvatiti bar jednu zajedničku kombinaciju transform-set parametara. DES se smatra zastarelim jer koristi samo 56-bitni ključ, lako probojan modernim računarskim resursima (brute-force napad je praktično izvodljiv za razliku od AES-256, koji je danas industrijski standard za jaku enkripciju). Preporučeni savremeni izbor: AES-256 (ili AES-GCM za kombinovanu enkripciju i integritet u jednom koraku).