Address Resolution Protocol (ARP), TCP/IP Network'lerinde IP adreslerini fiziksel MAC adreslerine çeviren bir protokoldür. Bu protokol, Local bir Network'teki cihazların birbirleriyle iletişim kurabilmesi için gereklidir. IP adresleri, Network'teki cihazların konumlarını belirlemek için kullanılırken, MAC adresleri, Network Interface Card'ların (NIC) benzersiz kimliklerini temsil eder. ARP, bu iki adresleme türü arasında köprü kurar ve veri paketlerinin doğru hedefe ulaşmasını sağlar.
ARP Protokolünün nasıl çalıştığını anlamak için, ARP Request (istek) ve ARP Reply (yanıt) süreçlerine ayrıntılı olarak bakmamız gerekir. Bir cihaz, başka bir cihazın MAC adresine ihtiyaç duyduğunda, ARP istek mesajı (ARP Request) gönderir. Bu mesaj, hedef cihazın IP adresini içerir ve tüm Network'e Broadcast edilir. Tüm cihazlar bu isteği alır, ancak yalnızca hedef IP adresine sahip olan cihaz yanıt verir. Hedef cihaz, ARP yanıt mesajı (ARP Reply) ile kendi MAC adresini gönderir. Bu yanıt mesajı sadece istek gönderen cihaza iletilir.
ARP Protokolünün temel işleyişi bu şekildedir. Ancak, ARP Protokolünün çalışma şekli hakkında daha fazla detay mevcuttur. ARP tabloları, her cihazda Local olarak tutulur ve bu tablolar, cihazların IP adresleri ile MAC adresleri arasındaki eşlemeleri saklar. Bu tablolar, ARP isteklerinin tekrar tekrar gönderilmesini engelleyerek Network trafiğini azaltır. ARP tablo girişleri genellikle belirli bir süre sonra zaman aşımına uğrar ve bu süre sonunda girişler silinir, bu da değişen Network yapılarına adaptasyonu sağlar.
ARP, Network güvenliği açısından da dikkate alınması gereken bir protokoldür. ARP spoofing veya ARP Cache Poisoning adı verilen saldırılar, saldırganların Network'teki cihazları kandırarak yanlış MAC adresleriyle yanlış yönlendirmeler yapmalarına neden olabilir. Bu tür saldırılar, Man-in-the-Middle (MitM) saldırılarına ve veri trafiğinin izlenmesine yol açabilir. ARP spoofing saldırılarına karşı korunmak için çeşitli güvenlik önlemleri alınabilir. Dinamik ARP Inspection (DAI) gibi güvenlik teknolojileri, ARP mesajlarını doğrulayarak sahte ARP mesajlarının Network'te yayılmasını engeller.
ARP Protokolünün çalışma prensipleri ve güvenlik açıkları, Network yöneticileri ve güvenlik uzmanları tarafından iyi anlaşılmalıdır. Network'teki cihazların güvenli ve verimli bir şekilde iletişim kurabilmesi için ARP Protokolünün doğru yapılandırılması ve yönetilmesi önemlidir. ARP tablolarının düzenli olarak izlenmesi, ARP Spoofing saldırılarına karşı koruma sağlanması ve Network güvenlik politikalarının uygulanması, sağlıklı bir Network altyapısının korunmasına yardımcı olur.
Özetle, ARP (Address Resolution Protocol), IP adreslerini MAC adreslerine çeviren ve cihazların birbirleriyle iletişim kurabilmesi için hayati öneme sahip bir protokoldür. ARP istek ve yanıt mesajları aracılığıyla çalışır ve ARP tablolarında IP-MAC eşlemelerini saklar. Güvenlik tehditlerine karşı korunmak için ARP Protokolünün güvenlik özellikleri dikkate alınmalı ve uygun güvenlik önlemleri alınmalıdır. ARP Protokolünün doğru yönetimi, Network performansını ve güvenliğini artırır, böylece cihazlar arasında kesintisiz ve güvenli iletişim sağlanır.
ARP protokolü, bir LAN ortamında IP adresi bilinen cihazın MAC adresi bilgisini bulmak için kullanılır. LAN ortamındaki cihazlar birbirleri ile MAC adreslerini kullanarak iletişim kurarlar. Bir cihaz IP adresini bildiği bir cihaz ile iletişim kurarken MAC adresini bilmiyorsa ARP protokolü kullanarak bunu tespit eder. Mantığın daha net anlaşılabilmesi için bir Data paketinin VLAN oluşturulmamış bir Network üzerinde tüm sisteme Broadcast ile nasıl dağıldığına bir göz atalım.
1- Örnek Network şema yapımdaki 3. Katta bulunan PC-46'dan, 1. kattaki PC-20'ye bilgisayara bir Data paketi yollayacağım. Her bilgisayar, RAM belleğinde yani Cache'inde bir ARP tablosu tutar ve öncelikle hedef cihazın MAC adresine bu tablodan bakar. Görüldüğü Data paketini yollayacak olan kaynak bilgisisayarın (PC-46) Cache'lenmiş ARP tablosu boş durumda.
2- Kaynak bilgisayarın (PC-46) Cache'lenmiş ARP tablosu boş durumda olduğu için, ARP protokolü çalıştırılacaktır. ARP protokolü çalıştırıldığında Data paketi için bir Data Frame'i oluşturulacak ve içine bir takım bilgiler eklenecektir. Bu bilgiler;
Source IP Address (Kaynak IP adresi)
» 10.10.10.12 (PC-46'nın IP adresi)
Source MAC Address (Kaynak MAC adresi)
» 00-60-3E-09-7C-07 (PC-46'nın MAC adresi)
Destination IP Address (Hedef IP adresi)
» 10.10.10.58 (PC-20'nin IP adresi)
Destination MAC Address (Hedef MAC adresi)
» FF-FF-FF-FF-FF-FF (Broadcast MAC adresi)
PC-46'ya ait ARP Request Frame içerği
3- Oluşturulan bu Data Frame'e ARP Request adı verilmektedir. ARP Request için bir Data Frame oluşturulmuşsa kaynak cihaz, ulaşmak istediği IP adresinin MAC adresi bilgisine sahip değil demektir. Bu nedenle Data Frame içindeki en önemli kısım, Destination MAC Address yani hedef MAC adresi kısmıdır. Ulaşılmak istenen cihazın MAC adresi bilgisi bilinmediği için Broadcast MAC Address bilgisi olan FF-FF-FF-FF-FF-FF kullanılacaktır.
4- Aşağıda görüldüğü gibi PC46'dan çıkan Data paketine ait ARP Request Data Frame'i içindeki Destination MAC Address bilgisi FF-FF-FF-FF-FF-FF (Broadcast MAC adresi) olduğu için, ilk önce 3. kataki tüm bilgisayarlara ulaştırıldı. İlgili Data paketi, ARP Request ile gelen Data paketindeki Destination IP Address kendilerine ait olmadığı için, tüm bilgisayarlar Data paketini reddetti!
5- Aynı Data paketi, ARP Request içindeki Destination MAC Address bilgisi FF-FF-FF-FF-FF-FF (Broadcast mac adresi) olduğu için, 2. kataki tüm bilgisayarlara da ulaştırıldı. İlgili Data paketi, ARP Request ile gelen Data paketindeki Destination IP Address kendilerine ait olmadığı için, tüm bilgisayarlar Data paketini reddetti!
6- Aynı Data paketi, ARP Request içindeki Destination MAC Address bilgisi FF-FF-FF-FF-FF-FF (Broadcast mac adresi) olduğu için, 1. kattaki tüm bilgisayarlara ulaştırıldı. İlgili Data paketi, ARP Request ile gelen Data paketindeki Destination IP Address kendilerine ait olmadığı için PC-20 hariç tüm bilgisayarlar Data paketini reddetti! PC-20, ARP Request ile gelen Data paketindeki Destination IP Address kendine ait olduğu için Data paketini aldı!
7- Buraya kadarki kısımda ARP Request aşaması gerçekleşti. PC-20, kendisine ARP Request ile gelen Data paketi içindeki Data Frame'i açtığında, Frame içinde Data Paketini kendisine yollayan bilgisayarın IP adresi ve MAC adresi bilgilerini öğrenerek, bu bilgileri kendi ARP tablosuna yazdı. ARP tablosundaki Cache'lenmiş bilgileri görüntülemek için CMD (Command Promt) üzerinden arp -a komutunu çalıştırmak yeterli olacaktır.
8- PC-20, kendisine ARP Request ile gönderilen Data paketine, ARP Reply ile yanıt verecektir. ARP Reply ile Data Frame'i içindeki bilgiler şu şekilde olacaktır.
Source IP Address (Kaynak IP adresi)
» 10.10.10.58 (PC-20'nin IP adresi)
Source MAC Address (Kaynak MAC adresi)
» 00-90-0C-4E-4B-83 (PC-20'nin MAC adresi)
Destination IP Address (Hedef IP adresi)
» 10.10.10.12 (PC-46'nın IP adresi)
Destination MAC Address (Hedef MAC adresi)
» 00-60-3E-09-7C-07 (PC-46'nın MAC adresi)
PC-20'ye ait ARP Reply Frame içerği
9- Bu sefer ARP Request paketi ile kendisine gelen Frame içindeki bilgide ARP Request paketini yollayan bilgisayarın IP adresi ve MAC adresi bilgisi yer aldığı için, kendi IP adresi ve MAC adresi bilgisini de ARP Reply Data paketi içindeki Frame'e ekleyerek PC-46'ya geri iletilmek üzere iletim için Network'e yollanıyor. Dikkat ederseniz, ARP Reply ile iletilen cevapta Network ortamında tekrar bir Broadcast oluşmuyor.
10- PC-46, kendisine ARP Reply ile gelen Data paketi içindeki Data Frame'i açtığında, Frame içinde Data Paketini kendisine yollayan bilgisayarın IP adresi ve MAC adresi bilgilerini öğrenerek, bu bilgileri kendi ARP tablosuna yazdı.
11- Aynı şekilde Network ortamındaki Swtich'ler de öğrendikleri bu MAC adresi bilgilerini kendi MAC adres tablolarında tutarlar. Bu sayede Data paketleri Network ortamında iletilirken, gönderilen Data paketindeki Frame içinde yer alan Target IP ve Target MAC bilgilerini kendi MAC tablosu içinden okuyarak ilgili MAC adresinin kendi Port'larından birinde mi? Değil mi? bilgisi ile hareket ederek, eğer mümkünse, Data paketini bir sonraki Switch'e iletir.
ARP (Address Resolution Protocol) Cache
ARP Cache (Adres Çözümleme Protokolü Ön Belleği), bir IP adresinin MAC adresine çözümlenmesiyle oluşturulan bir ön bellekleme yöntemidir. Makalemin en başından beri kullandığım bu yöntem ile bir cihaz, IP adresini MAC adresine çözümlediğinde, çözümlediği bu MAC adresi bilgisini sonraki iletişimlerde tekrar tekrar ARP Request işlemi başlatıp, Network ortamında tekrar bir Broadcast ortamı daha oluşturmamak için ön belleğinde tutar. Bir bilgisayarın ARP Cache bilgisinde tüm Network ortamındaki bilgisayarların MAC adresi bilgisini tutmasını sağlayabiliriz. Örneğin mesai saatleri dışında tüm ofis ortamına yeni bilgisayar kurulumları yaptınız. Bu kurumların yapılmasının ardından tüm bilgisayarlar açıkken bilgisayarların Network Interface Card (NIC) üzerinde tanımlı olan IP adresinin Network ID'sine ait Broadcast IP adresine Ping komutu ile Echo Request paketleri yolladığınızda, Network ortamındaki tüm IP adreslerine ait MAC adresi bilgilerini ön belleğe alarak mesai saatleri içindeki Broadcast trafiği oluşmasının önüne geçebilirsiniz. Bunun için;
1- Örnek bir bilgisayar üzerinde CMD'yi (Command Promt) açıyor, arp -a komutu ile ARP Cache bilgisini kontrol ediyorum.
2- Network Interface Card (NIC) üzerinde tanımlı olan IP adresinin Network ID'sine ait Broadcast IP adresine Ping komutu ile Echo Request paketleri yolluyorum. Bu sayede ilgili Network ID'sine ait olan tüm IP adreslerine Ping komutu ile tek seferde Echo Request paketleri yolluyorum. Bu işlem de Network ortamında ARP Request oluşmasına sebep olacağı için ortamda yoğun bir Broadcast oluşacaktır.
3- Network ortamındaki tüm IP adreslerine topluca Echo Request paketi yolladığım ve ARP Request oluşturduğum bilgisayar üzerinde tekrar arp -a komutunu çalıştırdığımda, MAC adresi çözümlenen tüm bilgisayarların IP adresi ve MAC adresi bilgileri ön belleklenmiş durumdadır.
Bilgi!: Bu uygulamayı Packet Tracer uygulamasındaki PC'ler üzerinde uyguladım. Gerçek Windows işletim sistemindeki CMD (Command Promt), Broadcast IP adresine ping komutu ile Echo Request paketleri yollama işlemini desteklemeyecektir. Bunun yerine, IP bloğunuza FOR döngüsü ile Echo Request paketleri yollamalısınız. Bunun için aşağıdaki komutu yine CMD üzerinde çalıştırmanız yeterli olacaktır.
For /L %i in (1,1,254) do Ping -n 2 -w 250 10.10.10.%i | FIND /i "Reply" |
Parametre |
Açıklama |
For |
Döngü komutudur. Ping işlemleri bir döngüye bağlı olarak ilerler. |
/L |
Loop parametresidir. for döngüsü, bu parametre ile tetiklenecektir. |
%i |
Bir değişken değeridir. "i" yerine başka bir değer de girilebilir. Bu değişken komut satırında belli noktalarda referans olarak kullanılır. |
(1,1,254) |
Echo Request paketleri yollanacak IP adresleri 1'den başlar, 1'er 1'er ilerler ve 254'e kadar devam eder. |
-n |
Echo Request paketi yollanacak IP adresi başına işlemin ne kadar tekrarlanacağını belirler. Varsayılan olarak 4 adet 32 Bit'lik paket gönderilir. |
-w |
Dönen her bir Echo Reply paketinin Timeout süresini milisaniye cinsinden belirler. |
10.10.10.%i |
%i, IP adresindeki üçüncü bölümdeki değeri temsil eder ve döngüde her bir IP'ye referans olur. |
FIND /i "Reply" |
Bu komut ile sadece Echo Request işlemlerine Echo Reply ile karşılık veren cihazlar döngü sonuçlarına eklenecektir. |
Faydalı olması dileğiyle...
Her türlü görüş ve önerilerinizi aşağıdaki yorum panelinden bırakabilir, kafanıza takılanları veya merak ettiklerinizi sorabilirsiniz.