Merhaba arkadaşlar, ben Cem Zengin.

Şirket şubeleri arasında VPN bağlantısı kurarken genellikle IPsec VPN tünelleri tercih edilir. Ancak standart IPsec VPN’in çok kritik bir dezavantajı vardır: IPsec, multicast ve broadcast trafiğini geçiremez. Bu durum, şubeler arasında OSPF, EIGRP veya RIP gibi dinamik yönlendirme protokollerini çalıştıramayacağınız veya şubeler arası dinamik routing güncellemelerini paylaşamayacağınız anlamına gelir.

Bu kısıtlamayı aşmak için multicast trafiği taşıyabilen GRE (Generic Routing Encapsulation) tünelleri kullanırız. Fakat GRE tünelleri de tek başlarına veriyi şifreleyemezler (Clear-text taşırlar). En ideal çözüm, GRE tüneli kurup, bu tüneli IPsec ile şifrelemektir (GRE over IPsec).

Bu yazıda, iki Cisco IOS Router arasında GRE over IPsec VPN yapılandırmasını CLI üzerinden adım adım inceleyeceğiz.


1. Topoloji ve Senaryo

  • Router-A (Merkez):
    • WAN IP: 85.90.95.10
    • LAN Network: 192.168.10.0/24
    • GRE Tünel IP: 10.0.0.1/30
  • Router-B (Şube):
    • WAN IP: 90.100.110.20
    • LAN Network: 192.168.20.0/24
    • GRE Tünel IP: 10.0.0.2/30

2. Router-A (Merkez) Üzerinde GRE Tünel Yapılandırması

İlk olarak şifrelemesiz, temel GRE tünel arayüzünü (Tunnel 0) oluşturalım:

Router-A(config)# interface Tunnel0
Router-A(config-if)# ip address 10.0.0.1 255.255.255.252
Router-A(config-if)# tunnel source 85.90.95.10  # Merkez WAN IP
Router-A(config-if)# tunnel destination 90.100.110.20  # Şube WAN IP
Router-A(config-if)# ip mtu 1400  # GRE ek yükü (overhead) sebebiyle MTU düşürüyoruz
Router-A(config-if)# ip tcp adjust-mss 1360
Router-A(config-if)# exit

3. Router-A (Merkez) Üzerinde IPsec Şifreleme Yapılandırması

GRE tünelini şifrelemek için IPsec Phase 1 (ISAKMP) ve Phase 2 (Transform-Set) politikalarını oluşturalım:

! IPsec Phase 1 Politikası (ISAKMP)
Router-A(config)# crypto isakmp policy 10
Router-A(config-isakmp)# encryption aes 256
Router-A(config-isakmp)# hash sha256
Router-A(config-isakmp)# authentication pre-share
Router-A(config-isakmp)# group 14
Router-A(config-isakmp)# exit

! Paylaşılan Gizli Anahtar (Pre-Shared Key) Tanımlama
Router-A(config)# crypto isakmp key GizliVpnAnahtari123 address 90.100.110.20

! IPsec Phase 2 Yapılandırması (Transform-Set)
Router-A(config)# crypto ipsec transform-set TS-GRE-IPSEC esp-aes 256 esp-sha256-hmac
Router-A(cfg-crypto-trans)# mode transport  # GRE paketini şifreleyeceğimiz için Transport mod daha verimlidir

! Crypto Profile Oluşturma
Router-A(config)# crypto ipsec profile IPSEC-PROF-GRE
Router-A(ipsec-profile)# set transform-set TS-GRE-IPSEC
Router-A(ipsec-profile)# exit

4. IPsec Profilini GRE Tüneline Bağlamak (Tunnel Protection)

Oluşturduğumuz crypto profilini tünel arayüzüne atayarak GRE tünelini şifreli hale getiriyoruz:

Router-A(config)# interface Tunnel0
Router-A(config-if)# tunnel protection ipsec profile IPSEC-PROF-GRE
Router-A(config-if)# exit

Bu aşamadan sonra Tunnel 0 üzerinden geçmeye çalışan her paket otomatik olarak IPsec ile şifrelenecektir.


5. Router-B (Şube) Üzerinde Yapılandırma

Aynı ayarları simetrik olacak şekilde Şube Router’ı üzerinde de gerçekleştiriyoruz:

! GRE Tünel Oluşturma
Router-B(config)# interface Tunnel0
Router-B(config-if)# ip address 10.0.0.2 255.255.255.252
Router-B(config-if)# tunnel source 90.100.110.20
Router-B(config-if)# tunnel destination 85.90.95.10
Router-B(config-if)# ip mtu 1400
Router-B(config-if)# ip tcp adjust-mss 1360
Router-B(config-if)# exit

! ISAKMP ve IPsec Politikaları
Router-B(config)# crypto isakmp policy 10
Router-B(config-isakmp)# encryption aes 256
Router-B(config-isakmp)# hash sha256
Router-B(config-isakmp)# authentication pre-share
Router-B(config-isakmp)# group 14
Router-B(config-isakmp)# exit

Router-B(config)# crypto isakmp key GizliVpnAnahtari123 address 85.90.95.10
Router-B(config)# crypto ipsec transform-set TS-GRE-IPSEC esp-aes 256 esp-sha256-hmac
Router-B(cfg-crypto-trans)# mode transport
Router-B(config)# crypto ipsec profile IPSEC-PROF-GRE
Router-B(ipsec-profile)# set transform-set TS-GRE-IPSEC
Router-B(ipsec-profile)# exit

! Tünel Korumasını Aktif Etme
Router-B(config)# interface Tunnel0
Router-B(config-if)# tunnel protection ipsec profile IPSEC-PROF-GRE
Router-B(config-if)# exit

6. OSPF ile Dinamik Yönlendirme (Dynamic Routing) Kurulumu

Tünelimiz şifreli olarak kurulduktan sonra, multicast geçişi aktif olduğu için OSPF üzerinden şubelerin LAN networklerini dinamik olarak anons edebiliriz:

Router-A (Merkez) OSPF Ayarı:

Router-A(config)# router ospf 1
Router-A(config-router)# network 10.0.0.0 0.0.0.3 area 0  # Tünel IP bloğu
Router-A(config-router)# network 192.168.10.0 0.0.0.255 area 0  # Merkez LAN bloğu

Router-B (Şube) OSPF Ayarı:

Router-B(config)# router ospf 1
Router-B(config-router)# network 10.0.0.0 0.0.0.3 area 0
Router-B(config-router)# network 192.168.20.0 0.0.0.255 area 0

Bu tanımlardan sonra OSPF komşuluğu kurulacak ve statik rotalar yazmadan her iki tarafın yerel bilgisayarları tünel üzerinden güvenle haberleşecektir.


7. Sorun Giderme ve Doğrulama Komutları

  • Tünel Arayüz Durumunu Kontrol Etme:
    show interfaces tunnel 0
    

    Arayüzün Line protocol is up durumda olduğunu teyit edin.

  • IPsec Phase 2 Tünel Durumu:
    show crypto ipsec sa
    

    Bu komutla paketlerin şifrelendiğini (#pkts encaps) ve şifresinin çözüldüğünü (#pkts decrypt) canlı olarak görebilirsiniz.

  • OSPF Komşuluk Tablosu:
    show ip ospf neighbor
    

    Komşuluğun FULL statüsünde olduğunu teyit edin.

Kurulum esnasında yaşadığınız OSPF komşuluk veya MTU problemlerini yorumlarda paylaşabilirsiniz. Bir sonraki teknik yazıda görüşmek üzere!