Skip to content

Konfiguracja GRE over IPsec

Przygotowanie, scenariusz

Info

Do realizacji tego zadania wymagany będzie dowolnie wybrany emulator np. Cisco Modeling Labs, GNS3, EVE-NG oraz dostęp do obrazów Cisco IOS.

Lab polega na konfiguracji tunelu GRE over IPsec między dwoma lokalizacjami, aby umożliwić bezpieczną i skalowalną wymianę tras przez sieć Internet. Uzupełniamy dwa poprzednie moduły.

Topologia

Screenshot

Adresacja

  • R1 e0/0 - 10.10.0.1/30
  • R1 e0/1 - 64.100.0.2/30

  • R2 e0/1 - 64.100.0.1/30
  • R2 e0/2 - 64.100.1.1/30
  • R2 lop0 - 209.165.200.225/27

  • R3 e0/0 - 10.10.4.1/30
  • R3 e0/2 - 64.100.1.2/30

  • S1 e0/0 - 10.10.0.2/30
  • S1 e0/1 - 10.10.1.1/24
  • S1 lop2 - 10.10.2.1/24
  • S1 lop3 - 10.10.3.1/24

  • S2 e0/0 - 10.10.4.2/30
  • S2 e0/1 - 10.10.5.1/24
  • S2 lop6 - 10.10.16.1/24
  • S2 lop7 - 10.10.17.1/24
  • S2 lop8 - 10.10.18.1/24
  • S2 lop9 - 10.10.19.1/24
  • S2 lop20 - 10.10.20.1/24
  • S2 lop21 - 10.10.21.1/24
  • S2 lop22 - 10.10.22.1/24
  • S2 lop23 - 10.10.23.1/24

Konfiguracja R1

Tryb konfiguracyjny i zmiana nazwy urządzenia.

inserthostname-here#configure terminal
inserthostname-here(config)#hostname R1

Adresujemy interfejsy i uruchamiamy OSPF dla połączenia z przełącznikiem S1. Na koniec rozgłaszamy domyślną trasę do sieci zewnętrznych przez router R2.

R1(config)#interface ethernet 0/1
R1(config-if)#ip address 64.100.0.2 255.255.255.252
R1(config-if)#no shutdown

R1(config)#interface ethernet 0/0
R1(config-if)#ip address 10.10.0.1 255.255.255.252
R1(config-if)#no shutdown

R1(config)#router ospf 123
R1(config-router)#router-id 1.1.1.1
R1(config-router)#auto-cost reference-bandwidth 1000
R1(config-router)#network 10.10.0.0 0.0.0.3 area 0
R1(config-router)#default-information originate

R1(config)#ip route 0.0.0.0 0.0.0.0 64.100.0.1

Konfiguracja R2

Router R2 pełni funkcję pośrednika, obsługuje połączenia z R1 i R3 oraz udostępnia trasę domyślną na interfejs loopback 0.

Tryb konfiguracyjny i zmiana nazwy urządzenia.

inserthostname-here#configure terminal
inserthostname-here(config)#hostname R2
R2(config)#interface ethernet 0/1
R2(config-if)#ip address 64.100.0.1 255.255.255.252
R2(config-if)#no shutdown

R2(config)#interface ethernet 0/2
R2(config-if)#ip address 64.100.1.1 255.255.255.252
R2(config-if)#no shutdown

R2(config)#interface loopback 0
R2(config-if)#ip address 209.165.200.225 255.255.255.224
R2(config-if)#no shutdown

R2(config)#ip route 0.0.0.0 0.0.0.0 loopback 0
R2(config)#ip route 10.10.0.0 255.255.252.0 64.100.0.2
R2(config)#ip route 10.10.4.0 255.255.252.0 64.100.1.2
R2(config)#ip route 10.10.16.0 255.255.248.0 64.100.1.2

Konfiguracja R3

Konfigurujemy połączenia do sieci i przełącznika S2 podobnie jak w przypadku routera R1.

Tryb konfiguracyjny i zmiana nazwy urządzenia.

inserthostname-here#configure terminal
inserthostname-here(config)#hostname R3
R3(config)#interface ethernet 0/2
R3(config-if)#ip address 64.100.1.2 255.255.255.252
R3(config-if)#no shutdown

R3(config)#interface ethernet 0/0
R3(config-if)#ip address 10.10.4.1 255.255.255.252
R3(config-if)#no shutdown

R3(config)#ip route 0.0.0.0 0.0.0.0 64.100.1.1

R3(config)#router ospf 123
R3(config-router)#router-id 3.3.3.3
R3(config-router)#auto-cost reference-bandwidth 1000
R3(config-router)#network 10.10.4.0 0.0.0.3 area 0
R3(config-router)#default-information originate

Konfiguracja S1

Przełącznik będzie pracował jako router, który obsługuje ruch do PC1 i R1. Dodatkowo na loopbackach będą dodatkowe sieci potrzebne do symulacji OSPF. Konfiguracja mogłaby wyglądać prościej ale szkoda powielać to samo z poprzednich labów 😄

Tryb konfiguracyjny i zmiana nazwy urządzenia.

inserthostname-here#configure terminal
inserthostname-here(config)#hostname S1
S1(config)#interface ethernet 0/0
S1(config-if)#no switchport
S1(config-if)#ip address 10.10.0.2 255.255.255.252
S1(config-if)#no shutdown

S1(config)#interface ethernet 0/1
S1(config-if)#no switchport
S1(config-if)#ip address 10.10.1.1 255.255.255.0
S1(config-if)#no shutdown

S1(config)#interface loopback 2
S1(config-if)#ip address 10.10.2.1 255.255.255.0
S1(config-if)#no shutdown
S1(config-if)#ip ospf network point-to-point

S1(config)#interface loopback 3
S1(config-if)#ip address 10.10.3.1 255.255.255.0
S1(config-if)#no shutdown
S1(config-if)#ip ospf network point-to-point

S1(config)#ip routing

S1(config)#router ospf 123
S1(config-router)#router-id 1.1.1.2
S1(config-router)#auto-cost reference-bandwidth 1000
S1(config-router)#network 10.10.0.0 0.0.3.255 area 0

Nasz sąsiad OSPF jest dostępny.

Screenshot

Konfiguracja S2

Analogicznie konfigurujemy przełącznik S2.

Tryb konfiguracyjny i zmiana nazwy urządzenia.

inserthostname-here#configure terminal
inserthostname-here(config)#hostname S2
S2(config)#interface ethernet 0/0
S2(config-if)#no switchport
S2(config-if)#ip address 10.10.4.2 255.255.255.252
S2(config-if)#no shutdown

S2(config)#interface ethernet 0/1
S2(config-if)#no switchport
S2(config-if)#ip address 10.10.5.1 255.255.255.0
S2(config-if)#no shutdown

S2(config)#interface loopback 6
S2(config-if)#ip address 10.10.16.1 255.255.255.0
S2(config-if)#no shutdown
S2(config-if)#ip ospf network point-to-point

S2(config)#interface loopback 7
S2(config-if)#ip address 10.10.17.1 255.255.255.0
S2(config-if)#no shutdown
S2(config-if)#ip ospf network point-to-point

S2(config)#interface loopback 8
S2(config-if)#ip address 10.10.18.1 255.255.255.0
S2(config-if)#no shutdown
S2(config-if)#ip ospf network point-to-point

S2(config)#interface loopback 9
S2(config-if)#ip address 10.10.19.1 255.255.255.0
S2(config-if)#no shutdown
S2(config-if)#ip ospf network point-to-point

S2(config)#interface loopback 20
S2(config-if)#ip address 10.10.20.1 255.255.255.0
S2(config-if)#no shutdown
S2(config-if)#ip ospf network point-to-point

S2(config)#interface loopback 21
S2(config-if)#ip address 10.10.21.1 255.255.255.0
S2(config-if)#no shutdown
S2(config-if)#ip ospf network point-to-point

S2(config)#interface loopback 22
S2(config-if)#ip address 10.10.22.1 255.255.255.0
S2(config-if)#no shutdown
S2(config-if)#ip ospf network point-to-point

S2(config)#interface loopback 23
S2(config-if)#ip address 10.10.23.1 255.255.255.0
S2(config-if)#no shutdown
S2(config-if)#ip ospf network point-to-point

S2(config)#ip routing

S2(config)#router ospf 123
S2(config-router)#router-id 3.3.3.2
S2(config-router)#auto-cost reference-bandwidth 1000
S2(config-router)#network 10.10.4.0 0.0.1.255 area 0
S2(config-router)#network 10.10.16.0 0.0.7.255 area 0

Test ping z PC1 do PC2 i S2

Przed główną konfigruacją zrobimy test ping z PC1 do PC2 oraz dowolny adres interfejsu loopback na przełączniku S1.

Screenshot

Konfiguracja GRE over IPsec na R1

Konfigurujemy IPsec podobnie jak w poprzednim labie.

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)#lifetime 3600

R1(config)#crypto isakmp key cisco123 address 64.100.1.2

R1(config)#crypto ipsec transform-set GRE-VPN esp-aes 256 esp-sha256-hmac
R1(cfg-crypto-trans)#mode transport

R1(config)#ip access-list extended GRE-VPN-ACL
R1(config-ext-nacl)#permit gre host 64.100.0.2 host 64.100.1.2

R1(config)#crypto map GRE-CMAP 10 ipsec-isakmp
R1(config-crypto-map)#match address GRE-VPN-ACL
R1(config-crypto-map)#set transform-set GRE-VPN
R1(config-crypto-map)#set peer 64.100.1.2

R1(config)#interface ethernet 0/1
R1(config-if)#crypto map GRE-CMAP

Konfigurujemy tunel GRE podobnie jak w poprzednim labie.


R1(config)#interface tunnel 1
R1(config-if)#bandwidth 4000
R1(config-if)#ip address 172.16.1.1 255.255.255.252
R1(config-if)#ip mtu 1400
R1(config-if)#tunnel source 64.100.0.2
R1(config-if)#tunnel destination 64.100.1.2

Konfiguracja GRE over IPsec na R3

Analogicznie powtarzamy cały proces konfigruacji przeprowadzony na routerze R1.

R3(config)#crypto isakmp policy 10
R3(config-isakmp)#encryption aes 256
R3(config-isakmp)#hash sha256
R3(config-isakmp)#authentication pre-share
R3(config-isakmp)#group 14
R3(config-isakmp)#lifetime 3600

R3(config)#crypto isakmp key cisco123 address 64.100.0.2

R3(config)#crypto ipsec transform-set GRE-VPN esp-aes 256 esp-sha256-hmac
R3(cfg-crypto-trans)#mode transport

R3(config)#crypto ipsec profile GRE-PROFILE
R3(ipsec-profile)#set transform-set GRE-VPN

R3(config)#interface tunnel 1
R3(config-if)#bandwidth 4000
R3(config-if)#ip address 172.16.1.2 255.255.255.252
R3(config-if)#ip mtu 1400
R3(config-if)#tunnel source 64.100.1.2
R3(config-if)#tunnel destination 64.100.0.2

R3(config-if)#tunnel protection ipsec profile GRE-PROFILE

Weryfikacja i testy

Z przełącznika S1 wykonam polecenie traceroute na adres 10.10.16.1. Zawuażyłem, że pakiet nie skorzystał z tunelu GRE, dlatego musimy wygenerować ruch, który będzie używał interfejsu tunelowego. Edytujmy routing OSPF.

Screenshot

R1(config)#router ospf 123
R1(config-router)#network 172.16.1.0 0.0.0.3 area 0

R3(config)#router ospf 123
R3(config-router)#network 172.16.1.0 0.0.0.3 area 0

Nasz sąsiad z drugiej strony tunelu już jest aktywny.

Screenshot

Ponownie z przełącznika S1 wykonuje polecenie traceroute na adres 10.10.16.1. Tym razem pakiet wykorzystał tunel GRE.

Screenshot

Poleceniem show crypto ipsec sa | include encrypt|decrypt wykonanym na routerze R1 możemy zwerywikować czy IPsec działa prawidłowo.

Screenshot

Success

Wszystkie przykłady są tylko formą zainteresowania danym zagadnieniem. Zachęcam do zapoznania się ze szczegółami zawartymi w dokumentacji autora lub producenta 😄


🕞 Ostatnia aktualizacja 07.06.2025