ARP (Address Resolution Protocol), Adres Çözümleme Protokolü olarak da adlandırılır. IPv4 kullanan bir yerel ağda yönlendirme kararının belirlediği sonraki hedefin IP adresini yerel bağlantıdaki donanım adresiyle eşler. Ethernet ortamında bu donanım adresi MAC adresidir; cihaz, bulduğu MAC adresini Ethernet çerçevesinin hedef alanına yazar ve IP paketini bu çerçevenin içine yerleştirir.

Bir cihaz veri göndermeden önce yerel bağlantıda hangi IPv4 adresine ulaşması gerektiğini belirler. Yönlendirme kaydı hedefe doğrudan yerel bağlantıdan ulaşılacağını gösteriyorsa ARP o hedefin adresini kullanır. Paket bir yönlendiriciye gönderilecekse ARP uzak sunucunun değil, seçilen sonraki yönlendiricinin IP adresine karşılık gelen MAC adresini bulur; bu yönlendirici her zaman varsayılan ağ geçidi değildir.

Cihaz, aynı IPv4 adresine ait MAC adresini her paket için yeniden sormaz. Öğrendiği eşlemeleri ARP tablosunda veya önbelleğinde tutabilir. Kayıt yoksa ARP isteğini yerel ağa yayın olarak gönderir; normal durumda sorulan IPv4 adresini kullanan cihaz yanıt verir ve öğrenilen eşleme sonraki iletimlerde kullanılabilir.

ARP Neden Gerekir?

IPv4 adresi ile MAC adresi aynı işi yapmaz. IPv4 adresi ağ katmanında paketin hangi ağa ve hangi IP adresine yöneltileceğini belirtir; Ethernet ise çerçeveyi yerel bağlantıda teslim etmek için hedef donanım adresini kullanır.

Örneğin bir cihaz aynı Ethernet ağındaki 192.168.1.20 adresine paket göndermek istediğinde yalnız bu IPv4 adresini bilmek yeterli değildir. Cihazın Ethernet çerçevesine hangi hedef MAC adresini yazacağını da bilmesi gerekir. ARP, bu iki adres türü arasındaki yerel eşlemeyi dinamik olarak sağlar.

ARP mesajı bir IPv4 paketinin içinde taşınmaz; Ethernet üzerinde ayrı bir mesaj türüdür ve taşıma protokolleri olan TCP veya UDP için tanımlanan portları kullanmaz. Eşleme öğrenildikten sonra gönderilen IP paketi, kendi Ethernet çerçevesine yerleştirilir.

ARP İsteği ve Yanıtı Nasıl Çalışır?

RFC 826, ARP mesajında donanım ve protokol türünü, adres uzunluklarını, işlem kodunu ve gönderen ile hedefin protokol ve donanım adreslerini tanımlar. İstek ve yanıt aynı temel alanları kullanır; işlem kodu mesajın istek mi yoksa yanıt mı olduğunu belirtir.

ARP İsteği Yerel Ağa Yayınlanır

Gönderen cihaz, ARP tablosunda gerekli eşleme yoksa bir ARP isteği oluşturur. İstekte kendi MAC ve IPv4 adresini, öğrenmek istediği hedef IPv4 adresini belirtir; hedefin MAC adresi henüz bilinmez ve isteğin amacı bu adresi öğrenmektir.

İstek Ethernet üzerinde yayın olarak gönderildiği için aynı yerel bağlantıdaki cihazlar mesajı alabilir. Normal işleyişte, istekte sorulan IPv4 adresini kullanan cihaz yanıt üretir. Cihazlar, ARP paketindeki gönderen cihaz bilgilerini de kullanabilir; bu nedenle bir ARP isteği yalnız soru sormaz, gönderenin mevcut adres eşlemesini de bildirir. Henüz kullanıma alınmamış bir adresin çakışmasını denetleyen ARP Probe mesajında ise gönderenin IPv4 adresi 0.0.0.0 olur.

ARP Yanıtı MAC Adresini Bildirir

Hedef cihaz, isteğin kendi IPv4 adresini sorduğunu belirlediğinde yanıt mesajını oluşturur ve MAC adresini gönderen donanım adresi alanına yerleştirir. Normal yanıt doğrudan isteği gönderen cihazın MAC adresine iletilir; buna unicast yanıt denir. Bununla birlikte adres çakışmasını daha çabuk fark etmek gibi amaçlarla yayın biçiminde gönderilen ARP yanıtları da geçerlidir.

İsteği başlatan cihaz yanıtı aldığında hedef IPv4 adresi ile yanıtta bildirilen MAC adresi arasında eşleme kurar. Cihaz bundan sonra Ethernet çerçevesine bu MAC adresini hedef olarak yazabilir.

ARP Önbelleği Tekrarlanan Sorguları Azaltır

Cihaz her veri iletiminden önce ARP yayın isteği gönderse gereksiz trafik oluşurdu. Bu nedenle cihaz öğrenilen eşlemeleri ARP tablosunda veya önbelleğinde tutar ve sonraki iletimlerde önce bu kayıtlara bakar. Kullanılabilir bir kayıt varsa cihaz bu MAC adresiyle iletime başlayabilir. İşletim sistemi kaydın gösterdiği cihazın erişilebilirliğini ayrıca denetleyebilir; örneğin Linux, bilinen MAC adresine doğrudan bir ARP isteği göndererek eşlemeyi yeniden kontrol edebilir.

RFC 826, tablo kayıtlarının yaşlandırılmasının veya zaman aşımıyla silinmesinin yararlı olabileceğini belirtir, ancak kesin bir süre tanımlamaz. Bu nedenle bir ARP kaydının ne kadar süre tutulduğu işletim sistemine veya ağ cihazına göre değişebilir.

RFC 826'daki alım algoritmasını uygulayan cihaz, mevcut dinamik eşlemeyi gelen mesajdaki gönderen bilgisiyle güncelleyebilir. Ancak yeni bir bilginin gelmesi onun güvenilir olduğunu kanıtlamaz; ARP kendi başına güçlü bir kimlik doğrulaması yapmaz. Statik kayıtların ve güvenlik denetimlerinin nasıl ele alındığı uygulamaya bağlıdır.

Hedef Başka Bir Ağdaysa ARP Hangi MAC Adresini Bulur?

ARP, bir IP paketinin internet boyunca geçeceği tüm cihazların MAC adreslerini bulmaz. Yönlendirme işlemi önce paketin yerel bağlantıdaki hangi cihaza gönderileceğini belirler; ARP yalnız yerel bağlantıdaki bu sonraki hedefin donanım adresini çözer.

Örneğin 192.168.1.10/24 adresli bir bilgisayar 10.20.30.40 adresine ulaşmak istiyorsa hedef aynı alt ağda değildir. Bilgisayarın yönlendirme kararı paketi 192.168.1.1 adresindeki varsayılan ağ geçidine gönderiyorsa ARP sorgusu 10.20.30.40 için değil, 192.168.1.1 için yapılır. Ethernet çerçevesinin hedef MAC adresi ağ geçidine ait olur; IP paketinin hedef IPv4 adresi ise uzak hedef olarak kalır.

Yerel Ağda ARP İsteği ve Yanıtı Örneği

192.168.1.10 adresli A cihazının, 255.255.255.0 maskesiyle tanımlanmış aynı /24 ağındaki 192.168.1.20 adresli B cihazına veri göndereceğini varsayalım. A cihazının ARP tablosunda B cihazı için kayıt yoksa süreç şu sırayla ilerler:

  1. A cihazı, 192.168.1.20 adresini kullanan cihazın MAC adresini öğrenmek için ARP isteğini yerel ağa yayınlar.
  2. B cihazı hedef IPv4 adresinin kendisine ait olduğunu görür ve kendi MAC adresini içeren ARP yanıtını A cihazına gönderir.
  3. A cihazı 192.168.1.20 ile B'nin MAC adresi arasındaki eşlemeyi tablosuna kaydeder.
  4. A cihazı gönderilecek IP paketini, B cihazının MAC adresini hedef olarak taşıyan bir Ethernet çerçevesine yerleştirir.
  5. Sonraki iletimlerde kayıt geçerliyse A cihazı aynı eşleme için yeniden yayın isteği göndermek zorunda kalmaz.

ARP Neden Yalnız Yerel Bağlantıda Çalışır?

ARP'nin temel işlevi yerel bağlantıda adres çözümlemektir. Yönlendiriciler ARP yayınlarını internet boyunca taşımaz; bu nedenle uzaktaki bir sunucunun MAC adresi yerel ağdaki ARP sorgusuyla öğrenilmez. Paket uzak hedefe ilerlerken her Ethernet bağlantısında o bağlantıdaki sonraki cihazın MAC adresi kullanılır; bütün bağlantı türleri MAC adresi veya ARP kullanmak zorunda değildir.

ARP alan adlarını çözmez. Cihaz ARP işlemini başlattığında yönlendirmenin belirlediği sonraki hedefin IPv4 adresini zaten bilir; ARP yalnız bu adresi yerel donanım adresiyle eşler.