GNS3 Üzerinde Cisco Router DHCP Relay Agent Yapılandırma

Hızlı Bakış

DHCP Relay Agent, farklı bir ağdaki sunucunun IP adresi dağıtmasını sağlıyor. Cisco router üzerinde bu hizmet için ip helper-address komutunu kullanıyorsunuz. Örneğin, FastEthernet 0/0 arayüzünde 192.168.10.10 adresini hedef gösteriyorsunuz. Bu sayede Windows 8.1 sanal makine, kendi ağı dışındaki Windows 10 VM üzerinde çalışan DHCP sunucusundan adres alabiliyor. Bu yöntem, asıl DHCP sunucusu devre dışı kaldığında bile otomatik IP atamasının sürmesini garanti ediyor. Böylece ağdaki istemciler kesintisiz hizmet almaya devam ediyor. Aktarım aracı, yalnızca birkaç konfigürasyon adımıyla ağınıza yedeklilik kazandırıyor.

Önceki yazımızda, Cisco Router’lar üzerinde DHCP Server nasıl yapılandırılır incelemiştik. Bu yazımızda ise farklı bir ağ üzerindeki DHCP Server’dan istemcilere otomatik IP adresleri nasıl atanır inceleyeceğiz.

GNS3 ile Cisco Router DHCP Relay Agent Yapılandırma

Router Üzerinde DHCP Relay Agent Nasıl Yapılandırılır?

Bir ağ üzerinde yapılandırılan DHCP sunucu herhangi bir nedenden dolayı yanıt veremez duruma girerse, farklı bir ağ üzerinde yedek olarak bir DHCP sunucu yapılandırılabilir.

Böylece LAN1’de bulunan DHCP sunucu, istemcilerin IP adresi isteği mesajlarına yanıt veremediğinde, LAN2’deki DHCP sunucu otomatik olarak yanıt vermeye başlayacaktır.

Bu yazıda, VMware Workstation ve GNS3 programlarını kullanarak küçük bir ağ topolojisi oluşturarak Relay Agent hizmetini yapılandıracağız.

VMware ile 2 adet sanal makine oluşturunuz ve VMnet ayarlarını yapılandırınız. GNS3 programına ise bu sanal makinelar için Cloud Node ekleyiniz.

DHCP Relay Agent Konfigürasyonu

Cisco yönlendiricilerde DHCP Relay Agent (DHCP Aktarım Aracı) servisini konfigüre etmek için aşağıdaki adımları sırasıyla takip ediniz.

Adım 1

Bilgisayarınızda kurulu olan GNS3 programını açınız ve yeni bir proje oluşturunuz.

GNS3'te Yeni Bir Proje Oluşturma

Adım 2

DHCP Relay Agent için aşağıdaki görüntüdeki gibi bir ağ topolojisi oluşturunuz.

GNS3'te Router'a Bağlı İki Switch

Adım 3

Cisco Router üzerindeki FastEthernet 0/0 ve FastEthernet 0/1 arayüzlerini yapılandırınız.

R1# conf t
R1(config)# interface fastethernet 0/0
R1(config-if)# ip address 192.168.5.1 255.255.255.0
R1(config-if)# no shutdown
R1(config-if)# exit
R1(config)# interface fastethernet 0/1
R1(config-if)# ip address 192.168.10.1 255.255.255.0
R1(config-if)# no shutdown
R1(config-if)# end

R1(config-if)# ip address 192.168.5.1 255.255.255.0

Adım 4

Router R1 üzerinde örnek olarak DHCP havuzu oluşturunuz ve domain-name olarak R1DHCP yazınız. Öncelikle Windows 8.1 sanal makineye otomatik bir IP adresi atamak için Cisco Router’da çalışan DHCP sunucusunu yapılandıracağız.

Daha sonra, Windows 10 sanal makine üzerinde 3. parti bir DHCP sunucusu uygulaması kurarak, Router üzerinde DHCP Relay Agent için gerekli ayarları yapılandıracağız.

DHCP Pool LAN

Adım 5

Windows 8.1 sanal makinenin TCP/IP ayarlarında otomatik IP adresi seçeneğini etkinleştiriniz.

Windows Sanal Makine TCP/IP Ayarlarını Yapılandırma

Adım 6

TCP/IPv4 tercihler penceresini OK (Tamam) butonuna tıklayarak kapatınız.

Windows Otomatik IP Adresi Alma

Adım 7

Windows 8.1 Ethernet Details (Ayrıntılar) butonuna tıklayınız ve IP adresi ayarlarını kontrol ediniz. Aşağıdaki görüntüdeki gibi otomatik bir IP adresi Cisco Router’da yapılandırılan DHCP sunucusundan alındığını doğrulayınız.

Ağ Bağlantısı Detayları

Adım 8

Windows 10 sanal makineyi gidiniz ve Win8.1 VM’ye Ping atarak ağ bağlantısını test ediniz.

CMD Üzerinden Ping Atma

Adım 9

Yazının en altındaki butondan 3. Parti DHCP Server programını indiriniz. Klasör içerisinde dhcpwiz.exe dosyasını çalıştırdıktan sonra Next (İleri) butonuna tıklayarak devam ediniz.

dhcpwiz.exe

Adım 10

Buradaki ayara dikkat ediniz! 192.168.10.10 IP adresi DHCP sunucunun IP adresi olacaktır.

Ağ Kartı Ayarları

Adım 11

Programın desteklediği protokol ve hizmetleri alttaki görüntüden inceleyebilirsiniz. Burada, herhangi bir servisi seçmeden Next ile devam ediniz.

Destekli Protokoller

Adım 12

Win8.1 VM’nin bağlı olduğu Switch, Cisco Router’ın FastEthernet 0/0 arayüzüne bağlı olduğu için, bu Switch’e bağlanacak herhangi bir aygıt 192.168.5.0/24 IP adresi bloğundan bir IP adresi alacaktır.

Fakat, Router üzerinde FastEthernet 0/0 için yapılandırılan DHCP konfigürasyonu herhangi bir nedenden dolayı hizmet veremezse, bu noktada FastEthernet 0/1 alanında hizmet sağlayan bir DHCP Relay hizmetini etkinleştirerek ağ bağlantısının çalışabilirliğini devam ettirmelisiniz.

Bu yüzden, FastEthernet 0/1 alanında bir bilgisayar üzerinde DHCP Server programı kurarak, 192.168.5.0/24 bloğu için bir IP havuzu oluşturmalısınız.

Alttaki görüntüdeki gibi DHCP havuzunu yapılandırdıktan sonra, DHCP Options (DHCP Seçenekleri) butonuna tıklayınız.

Arayüz İçin DHCP Ayarları

Adım 13

DHCP Options penceresinde, domain adı kısmına DHCPRELAY yazını ve OK butonuna tıklayınız.

DHCPRELAY

Adım 14

DHCP Server Advanced (Gelişmiş) penceresinde Subnet Mask ve Default Gateway seçeneklerini aşağıdaki gibi yapılandırınız.

Gelişmiş Yapılandırma

Adım 15

Windows 10 VM üzerinde DHCP Server’ı yapılandırdıktan sonra, Next butonuna tıklayarak bir sonraki adıma devam ediniz.

IP Havuzu Yapılandırma

Adım 16

Burada dikkat edilmesi gereken nokta, özet gösterilen bilgilerin bir dosyaya yazılmasıdır. Overwrite existing file (Varolan dosya üzerine yaz) seçeneğini seçiniz ve ardından Write INI file (INI dosyasını yaz) butonuna tıklayarak ayarları kaydediniz.

Değişiklikleri INI Dosyasına Yazma

Adım 17

DHCP servisini başlatmak için aşağıdaki gibi pencere açılacaktır ve bu pencerede Admin butonuna tıklayınız.

DHCP Server'ı Hemen Çalıştır

Adım 18

Service kısmından Install (Kur) butonuna tıklayınız.

DHCP Servisi Kurulumu

Adım 19

DHCP servisi şuan çalışmamaktadır. DHCP servisini başlatmak için Start (Başlat) butonuna tıklayınız.

DHCP Servisini Başlatma

Adım 20

Status (Durum) kısmında DHCP Server’ın sorunsuz çalıştığını görebilirsiniz!

DHCP Servisi Durumu

Adım 21

Şimdi, Cisco Router CLI komut istemini açınız ve FastEthernet 0/0 arayüzünde ip helper-address komutunu kullanarak 3. Parti DHCP sunucu IP adresini yazınız.

Router’ın Fa0/0 arayüzünde çalışan DHCP servisini herhangi bir hata ile karşılaştığını varsayarak devredışı bırakmak için no ip dhcp pool LAN komutu kullanınız.

R1# conf t
R1(config)# interface fastethernet 0/0
R1(config-if)# ip helper-address 192.168.10.10
R1(config-if)# exit
R1(config)# no ip dhcp pool LAN

ip helper-address

Adım 22

Windows 8.1 VM üzerinde DHCP sunucusundan başka bir IP adresi tahsis etmek için CMD komut istemini açınız ve ipconfig /release komutunu uygulayınız.

ipconfig /release

Adım 23

Şimdi ipconfig /renew komutunu uygulayarak yeni bir IP adresi alalım.

ipconfig /renew

Adım 24

Sanal makine, 192.168.10.0/24 ağındaki Windows 10 VM üzerinde çalışan 192.168.10.10 IP adresine sahip DHCP Sunucusundan başarıyla IP adresi bilgilerini almıştır.

Aşağıdaki görüntüde domain adı kısmına dikkat ediniz…

Ağ Bağlantısı Detayları

Farklı Bir Ağdan IP Adresi Almak İçin Relay Agent Kullanımı ⇒ Video

DHCP Relay Agent kullanımı için aşağıdaki videoyu izleyebilir ve ayrıca bize destek olmak için YouTube kanalımıza abone olabilirsiniz!

Video Önizleme Görseli
YouTube'da İzle

Sonuç

Bu yazımızda farklı bir ağ üzerindeki DHCP sunucusundan otomatik IP adresi nasıl alınır inceledik. Relay Agent hizmetini, bir yardımcı DHCP sunucu olarak düşünebilirsiniz.

Eğer Router üzerinde Relay Agent yapılandırmasaydık, Windows 8.1 makinesi IP adresi alamayacaktı! Bizi takip ettiğiniz için teşekkürler!

Programı İndir

3. Parti DHCP Server programını aşağıdaki butondan bilgisayarınıza indirebilirsiniz.

Programı İndir

GNS3 Ortamında DHCP Aktarım Aracı Hakkında SSS

Relay Agent tam olarak ne işe yarıyor? Normal DHCP sunucusundan ne farkı var?

Aslında en büyük kafa karışıklığı tam da burada başlıyor. Normal DHCP sunucusu mahalle muhtarı gibidir. Sadece kendi sokağındaki evlere kapı numarası dağıtır. Ama Relay Agent farklı bir canavar. O bir nevi telsiz operatörüdür. Karşı mahalledeki muhtara sesini duyuramayanların imdadına yetişir.
Şöyle düşünün. Bilgisayarınız IP isterken bağıra çağıra ‘Hey ben buradayım, bana adres verin!’ diye bir broadcast paketi yollar. Router’lar ise dedikoduyu sevmez. Bu gürültüyü kendi arayüzlerinde sustururlar. Paket bir sonraki ağa geçemez. Dolayısıyla farklı bir ağdaki sunucu sizi asla duyamaz.
İşte aktarım aracı bu noktada devreye girer. Router’a ‘Bak dostum’ deriz. ‘Fa0/0’dan böyle bir çığlık gelirse sakın kesme. Bunu al ve 192.168.10.10 adresine unicast olarak ulaştır.’ Bu sayede istemci farklı bir subnet’teki sunucudan IP almayı başarır. Olay tamamen broadcast trafiğini hedefli bir postaya çevirmektir.

Router üzerinde hem DHCP havuzu hem de ip helper-address komutu varsa hangisi çalışır?

İşte bu soru gerçek bir network cambazlığı gerektirir. Cisco router üzerinde ikisi aynı anda aktif olabilir. Ama top sizde değil. İlk kim cevap verirse IP’yi o kapar. Router üzerindeki yerel havuz genelde milisaniyeler içinde yanıt döner. Uzaktaki sunucu ise ağ gecikmesine takılır.
Dolayısıyla yazıdaki senaryoda kasıtlı bir sabotaj yaptık. Yerel havuzu ‘no ip dhcp pool LAN’ komutuyla imha ettik. Eğer bunu yapmazsanız Windows 8.1 neredeyse her seferinde 192.168.5.1’deki yerel sunucudan adres alır. Relay’i test etmek istiyorsanız ya havuzu kaldıracaksınız ya da sunucuyu susturacaksınız.
Bir keresinde laboratuvarda 45 dakika ‘neden çalışmıyor’ diye uğraşmıştım. Meğer yerel havuzu silmeyi unutmuşum. İstemci hep yerelden besleniyordu. Açıkçası router konfigürasyonunda her zaman ‘show ip dhcp binding’ komutuyla kimin ne dağıttığını kontrol etmek şarttır.

Yazıda 3. parti bir yazılım kullanılıyor. Bunu gerçek bir Windows Server ile yapsak komut değişir mi?

Bu çok güzel bir noktaya parmak basıyor. Komutun gramı dahi değişmez. İster karşınızda devasa bir Microsoft Windows Server olsun, ister minik bir Tiny PXE uygulaması. Router’ın umurunda değil. Onun tek derdi ‘ip helper-address’ ile tanımladığınız IP adresine paketi ulaştırmaktır.
Router şöyle bir bakar. ‘Aha Fa0/0’dan DHCP Discover geldi. Hemen bunu UDP 67 portuna, 192.168.10.10 hedefine yönlendireyim.’ der. Paket içeriğine veya sunucunun markasına asla karışmaz. Zira ortada bir standart var. RFC 1542 kuralları bu işin anayasasıdır.
Ancak ufak bir fısıltı. Gerçek sunucularda Scope ayarlarında biraz daha titiz olmanız gerekir. Özellikle Option 3 (Router) yani Default Gateway’i doğru girmek hayati önem taşır. Eğer yanlış ağ geçidi verirseniz istemci IP’yi alır ama dış dünyaya çıkamaz. Neticede yazılım ne olursa olsun, router tarafındaki konfigürasyon gram değişmez.

ip helper-address girince sadece DHCP paketlerini mi aktarır? Başka servislere bulaşır mı?

Bunu bilmeyen çok networkçü gece uykusunda terler. Varsayılan olarak bu komut tam bir gevezedir. Sadece DHCP paketlerini değil, ağzına gelen bir sürü broadcast’i ilgili adrese yamultmaya çalışır. TFTP’den tutun DNS’e, NetBIOS’tan Time Servis’ine kadar yedi farklı protokolü varsayılan olarak yönlendirir.
Bu durum bazen istenmeyen trafik yükü veya güvenlik açığı yaratabilir. Örneğin bir kullanıcı yanlışlıkla PXE boot yapmaya kalkarsa router bunu da TFTP sunucusuna taşımaya çalışır. Bereket versin ki Cisco bize fren yapma imkanı sunar. ‘no ip forward-protocol udp tftp’ gibi komutlarla gevezeliğini kesebilirsiniz.
Laboratuvar ortamında bu pek dert değildir. Ama kurumsal bir ağda broadcast fırtınasından korunmak istiyorsanız muhakkak ‘ip forward-protocol’ ayarlarını gözden geçirmelisiniz. Sadece UDP port 67 ve 68’i geçirmek en temizi olacaktır.

Windows 8.1 makinem hala 192.168.5.x bloğundan adres alıyor. Tüm adımları doğru yaptım ama neden olmaz?

Bu sorunu yaşayan ilk kişi siz değilsiniz ve son da olmayacaksınız. Öncelikle GNS3 bulut bağlantılarınızı bir kontrol edin derim. VMware’deki VMnet ayarı ile GNS3’teki Cloud node aynı ağ kartını mı işaret ediyor? Genelde VMnet2 yerine yanlışlıkla VMnet8 seçilir. Bu uyumsuzluk trafiği keser.
İkinci bir can sıkıcı detay da Windows güvenlik duvarıdır. 3. parti DHCP programınız alev alev yanıyor olabilir. Ama Windows Defender onu bloklamıştır. Hemen kontrol paneline dalın ve gelen kutusu kurallarında UDP 67 portuna izin verin. Üstelik programı yönetici olarak çalıştırmak da bir diğer altın kuraldır.
Son olarak en kritik nokta. Router üzerinde ‘show ip route’ ile ağların göründüğünden emin olun. Eğer router 192.168.10.0 ağına ulaşamıyorsa helper zaten anlamsızdır. Fa0/1 arayüzünün ‘no shutdown’ olduğunu teyit edin.

Relay kullanırken istemci tarafında farklı bir ağ geçidi mi görmem gerekir?

Kesinlikle evet. Bu konfigürasyonun en zarif tarafı da burasıdır zaten. İstemci fiziksel olarak 192.168.5.0 ağındadır. Ama IP’sini 192.168.10.10’dan alır. Buna rağmen ona verdiğiniz Default Gateway bilgisi 192.168.5.1 olmak zorundadır. Yani yerel router’ın arayüz IP’si.
Yazıda Adım 14’te bunu bilinçli olarak vurguladım. DHCP havuzunu 192.168.5.x için oluşturdum. Ama Gateway’i 192.168.5.1 olarak belirledim. Özetle istemci şunu düşünür. ‘Benim mahalle muhtarım 5.1 numarada oturuyor. Ama kimlik bilgilerimi 10.10 numaradaki büyük şehir belediyesinden aldım.’
Buna karşın dikkat edilmesi gereken ince bir ayrım var. Eğer uzaktaki sunucu hatalı ayarlanırsa ve gateway olarak 192.168.10.1 verirse ağ iletişimi çöker.
İstemci dışarı çıkmak için olmayan bir kapıyı zorlar. Dolayısıyla DHCP sunucu Scope ayarlarında ‘Router’ kısmını lokal ağa göre elle girmek bu işin kilit taşıdır. Bu detayı atlamak bütün emeğinizi saniyeler içinde çöpe atabilir.

Bu Rehberi Keşfettikleri İçin Sana Teşekkür Edecekler!

Sadece bir tıkla sevdiklerine dev bir iyilik yapmaya hazır mısın? Bilgi paylaştıkça devleşir.

İlk yorumu sen paylaş