Değerli arkadaşlar, merhaba! Bu yazımızda sizlere, 'ARP' protokolünden bahsedeceğiz. Fakat bloga başlamadan önce aşağıda linkleri verilen blogları okumanızı öneririz.
Bildiğiniz üzere program veya uygulamaların çoğu mesaj göndermek veya almak için mantıksal adres olarak nitelendirdiğimiz IP adreslerini kullanır. Fakat buradaki gerçek iletişim, fiziksel adres olarak nitelendirdiğimiz MAC adresleri ile yani OSI'nin ikinci katmanından gerçekleşir. Dolayısıyla bahsettiğimiz bu mesaj gönderme/alma olayı için bizim, MAC adreslerine ihtiyacımız vardır.
Açılımı, 'Address Resolution Protocol' yani 'Adres Çözümleme Protokolü' olan ARP dediğimiz bu arkadaşın devreye girdiği yer tam olarak burasıdır. ARP, isminden de anlayacağınız üzere; IP adresi üzerinden MAC adresini bulur ve IP adresinin MAC adresine eşleşmesini sağlar. İşte, tam bu yüzden Katman 3 (L3) cihazlarının IP ve MAC adreslerinin eşleşme bilgilerini depolamak için bir ARP tablosu tutması gerekir. Bu tabloya girilen veriler, dinamik veya statik olabilir. Bunları açıklamadan önce bu tablonun neye benzediğine bir bakalım.

Yukarıda gördüğünüz gibi komut istemine 'arp -a' komutunu verdiğinizde size bu tabloyu sunacaktır.
ARP paketleri gönderilip alındığında dinamik ARP girişleri otomatik olarak oluşturulur ve korunur. Bir alt başlıkta göreceğimiz statik ARP kullanılması durumunda dinamik ARP girişleri eskitilebilir, üzerine yazılabilir veya güncellenebilir. Dinamik ARP, gecikmeye duyarlı hizmetleri ileten karmaşık ağlar için geçerlidir.
Dinamik ARP girişleri yanlış güncellenmiş veya eskimiş olabilir. Dolayısıyla bir ağ, bir ARP saldırısına maruz kalırsa bu, iletişimi anormal hâle getirir.
Bir ağ yöneticisinin IP ve MAC adresleri arasındaki eşleşmeleri manuel olarak oluşturmasına olanak tanır. Bunlar el ile girildiği için dinamik ARP girişler tarafından eskitilemez veya üzerine yazılamaz. Tahmin edeceğiniz üzere bu, sistem güvenliğini sağlar.
Eğer ortada bir statik ARP girişi varsa cihaz, yalnızca belirtilen MAC adresini kullanarak eş cihazla iletişim kurabilir. Bu noktada dinamik ARP'ın aksine statik ARP, ARP saldırısına karşı güzel bir önlemdir. Statik ARP girişleri genelde ağ geçitlerinde (gateway) yapılandırılır.
İsterseniz gördüğümüz her şeyi pekiştirebileceğimiz bir simülasyon oluşturalım.
Aşağıdaki görselde, üç adet bilgisayar, bir switch ve bir sunucu mevcut.

Bu noktada isterseniz şu anki ARP tablosuna bakalım. Bunun için 'arp -a' komutunu veriyorum.

'No ARP Entries Found' yani 'ARP girişi bulunamadı' şeklinde bir uyarı ile karşılaştık. Demek ki ARP tablomuz şu an bomboş. Hemen bunu ispat edelim.

Yukarıda gördükleriniz, PC0 ve Server0'ın ARP tablolarıdır; bomboş. O zaman biz, PC0 ile Server0 arasında bir iletişim sağlayalım ve tablonun son haline bir bakalım.
PC0'dan Server0'a basit bir 'ping' paketi yolladım.

Bunu yapar yapmaz sol tarafta daire içerisine aldığım kısımda yeşil paketler ortaya çıktı. Şimdi bu paket, ağdaki tüm cihazlara gidecek (broadcast) fakat paket sadece Server0'a ait olduğu için diğer cihazlar bunu reddedecek. Bunları, blogun başında verdiğim linklerden biliyorsunuzdur.

Broadcast tamamlandı ve paket Server0'a ulaştı. Burada, Server0'ın ARP tablosuna dikkat edin. IP adresi ve MAC (Hardware Address) adresi kısmında PC0'ın IP'si ve MAC adresi belirdi. Şimdi bu isteğin (request) bir de yanıtı (response) olacaktır.

Response işlemi de tamamlandı ve gördüğünüz gibi bu sefer PC0 için ARP tablosu dolduruldu; IP adresi ve MAC (Hardware Address) adresi kısmında Server0'ın IP'si ve MAC adresi belirdi.
PC0 için 'arp -a' çalıştırıp sonucu görelim.

İki cihaz arasında bir iletişim oldu ve iki cihazın da ARP tablosu doldu. Peki, neden sadece Server0'ın IP adresi mevcut? Çünkü burada, sadece PC0'ın iletişim kurduğu cihazların bilgilerini gördük. Biraz önce, bir iletişimden söz ettik. Bizim yaptığımız işlemde PC0, Server0'a bir istekte bulundu yani PC0, Server0 ile iletişime geçti. İşte, PC0'ın ARP tablosunda Server0'ın bilgilerinin olması tam olarak bunu ifade eder; bu bilgi artık öğrenilmiş ve tabloya kaydedilmiştir.
İsterseniz bir de Server0 için bir 'arp -a' çalıştıralım. Sizce orada ne gözükecek?

Evet, tahmin ettiğiniz gibi; PC0'ın bilgileri mevcut. Bu durum, bu cihazların birbiriyle haberleşmiş olduğunu gösterir.
Bu uygulamadan bazı sonuçlar çıkarmamız gerekmektedir. Örneğin bir ARP paketinde 4 parça vardır. Bunlar; "Source IP - Kaynak IP", "Source MAC - Kaynak MAC", "Destination IP - Hedef IP" ve "Destination MAC - Hedef MAC" olarak sıralanabilir.
Bununla beraber bir ARP'nin, IP adresi üzerinden MAC adresine ulaştığını söyledik. Bir iletişimden sonra ARP'nin, 'ARP Table' yani 'ARP Tablosu' dediğimiz bir tabloda iletişime geçen cihazların IP ve MAC adreslerini tuttuğunu öğrendik. Buna bağlı olarak aynı cihazların bir sonraki iletişim girişiminde ARP tablosuna danışılacak ve işlemler daha kolay gerçekleşecektir.
IP paketi gönderilmeden önce hedefin MAC adresi bilinmek zorundadır. Bu bilgi zaten tablomuzda tutuluyor ancak eğer böyle bir bilgi tabloda yoksa tam olarak ne oluyor? İşte, tam bu sırada bir 'ARP Keşif Paketi' yayınlanıyor. Elbette, biraz önce gördüğünüz Broadcast işlemi gerçekleşir yani paketi tüm cihazlar alır. Ancak sadece IP adresi ile eşleştirilmek istenen cihaz bu paketi kabul edebilir. Bundan sonra bir de yanıt gelecektir ama bu yanıt, bir broadcast olarak değil, unicast (tek taraflı) olarak sadece sahibine gidecektir. Bu yanıttan sonra gönderici taraf yani yanıtı alan taraf, ARP önbelleğini güncelleyecek ve sonraki paket transferlerinde paketleri unicast olarak yayınlayacaktır. Bunu görmemiz faydalı olabilir.

ARP tablolarında kayıt mevcut. Ben tekrardan PC0'dan Server0'a bir ping yolladım ve gördüğünüz gibi yuvarlak içerisine aldığım cihazlarda herhangi bir paket simgesi yok; sadece Server0'da mevcut. İşte bunun sebebi, cihazların ARP tablosunda tanınıyor olmasından kaynaklıdır.
Yayınlanma Tarihi: 2022-09-12 15:54:35
Son Düzenleme Tarihi: 2022-09-14 21:06:51