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
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.
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.
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.
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.
Ponownie z przełącznika S1 wykonuje polecenie traceroute na adres 10.10.16.1. Tym razem pakiet wykorzystał tunel GRE.
Poleceniem show crypto ipsec sa | include encrypt|decrypt wykonanym na routerze R1 możemy zwerywikować czy IPsec działa prawidłowo.
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