ARP (Adres Çözümleme Protokolü)

Eyl 07, 2013

Yerel ağlarda kullanılan en yaygın arayüz Ethernettir. Ethernet arayüzüne sahip olan ağ kartları ile yerel ağlara kolayca bağlanılmaktadır. Bu arayüzler birbirlerine paket göndermek için kendilerine üretim aşamasında verilmiş 48 bit lik fiziksel adresleri (mac adresi) kullanırlar. TCP/IP protokolü ise veri gönderip almak için 32 bit lik IP adreslerini kullanır. Yerel ağda haberleşmek için veri alış-verişi yapılacak cihazın fiziksel adresi bilinmelidir. Bu işlem için kullanılan protokole, yani IP si bilinen cihazın fiziksel adresinin öğrenilmesi protokolüne Adres Çözümleme Protokolü (Address Resolution Protocol) denir.

Fiziksel Adresler (Mac Adresleri)

Yerel ağlarda kullanılmak için üretilmiş cihazlara (Ethernet, Token Ring, Lan) üretim aşamasında benzersiz bir adres verilir. Bu adres 48 bitten oluşur ve cihazın salt okunur belleğine yazılmıştır. Bu adresler 16'lık tabanda olup toplam 12 haneden oluşur (Örnek, 00-15-60-4F-E1-D8), IEEE tarafından belirlenen kurallara göre ilk 6 hane üreticinin kimliğini belirtir ve aynı üreticinin bütün cihazlarında aynıdır. Son 6 hane ise cihazın benzersiz adresini belirler.

Arp İsteği Paketi

IP si bilinen fakat fiziksel adresi bilinmeyen bir cihaz varsa bütün ağa arp isteği (arp request) gönderilir. Bu pakette gönderenin IP adresi, gönderenin fiziksel adresi ve alıcının IP adresi vardır. Alıcının fiziksel adresi bilinmediğinden tüm ağa yayın yapan (broadcast) bir paket yollanır ve isteğin bütün ağa ulaşması sağlanır. Belirtilen IP nin dışındaki hiçbir IP den cevap gelmez ve gelen cevap cihazın kendi fiziksel adresini içerir. Ayrıca isteği yollayan ve isteği yanıtlayan 2 cihazda diğerinin fiziksel adresini ve IP adresini daha sonra kullanmak üzere belleğine kaydeder.

Aynı Ağda Arp Fiziksel Adreslerinin Çözümlenmesi

 

A bilgisayarı B bilgisayarı ile iletişime geçmek istiyor. A bilgisayarının IP si 192.168.1.2 ve B bilgisayarının IP si 192.168.1.3 olsun.
  1. A bilgisayarı 192.168.1.3 IP adresine sahip olan cihazın fiziksel adresine kendi arp tablosundan bakar.
  2. Eğer arp tablosunda o girdiyi bulamazsa bütün ağa broadcast bir arp istek paketi yollar. Bu pakette kendi IP adresi, fiziksel adresi ve alıcının IP adresi vardır. Alıcı fiziksel adresi paketin bütün ağa gidebilmesi için FF:FF:FF:FF:FF:FF dir.
    Bu yerel ağdaki bütün bilgisayarlar arp paketini alır. Kendi IP adresi ile karşılaştırır. Eğer eşleşme olmazsa cevap dönmez ve arp paketini atar.
  3. B bilgisayarı arp paketindeki IP ile kendi IP adresinin eşleştiğini görür ve A bilgisayarı için IP adresi-fiziksel adres eşleştirmesini kendi arp tablosuna ekler.
  4. B bilgisayarı kendi fiziksel adresini içeren bir arp yanıt paketini A bilgisayarına yollar.
  5. A bilgisayarı gelen arp yanıt paketindeki fiziksel adresi, öğrenmek istediği IP adresiyle eşleştirip arp tablosuna ekler.

Farklı Ağlarda Arp Fiziksel Adreslerinin Çözümlenmesi

Genel olarak yukarıda anlatılanlar gibi olup birkaç temel fark vardır.



Örneğin yukarıdaki gibi bir ağda A bilgisayarı ile D bilgisayarı arasındaki haberleşmede paket önce Y1 e, sonra Y2 ye gönderilir. Çözümleme de;

  • A düğümü Y1 in adresini çözümler.
  • Y1, Y2 nin adresini çözümler.
  • Y2 de D nin adresini çözümler.
Arp Tablosu

Arp işlemini tekrar tekrar yapmamak, öğrenilen fiziksel adres-IP adresi bilgilerini ileride kullanabilmek için bu bilgiler arp tablosunda tutulur. Arp tablosu otomatik olarak dolabileceği gibi el ile de doldurulabilir. Otomatik girdiler silinip tekrar yazılabilirler ama el ile girilenler bilgisayar yeniden başlatılana kadar arp tablosundan silinmez.

Her arp girdisi en fazla 10 dakikalık bir ömre sahiptir. Tabloya eklendikten sonra 2 dakika içinde tekrar kullanılmayan girdiler silinir. Eğer 2 dakika içinde tekrar kullanılırsa tabloda 2 dakika daha kalır ama en fazla 10 dakika sonra silinir.

Arp Tablosuna Otomatik Yeni Veri Eklenmesi

Yerel ağdaki herhangi bir bilgisayarla iletişime geçildiğinde bu bilgisayarın IP ve fiziksel adresleri arp tablosuna eklenir.
  1. Aşağıdaki ekranda arp –a ile bilgisayardaki arp tablosu görüntülenmiştir.



  2. Daha sonra yerel ağdaki 192.168.1.3 IP adresine sahip bilgisayar ile ping komutu yardımıyla iletişime geçilmiştir.



  3. İletişime geçilen 192.168.1.3 IP adresine sahip olan bilgisayarın IP ve fiziksel adresleri öğrenilmiş ve arp tablosuna eklenmiştir.

Arp Tablosuna El İle Yeni Veri Eklenmesi
  1. Önce arp –a komutu ile arp tablosu görüntülenmiştir.



  2. Daha sonra arp –s komutu ile arp tablosuna eklenmek istenilen cihazın IP adresi ve fiziksel adresi girilmiştir.



  3. Tekrar arp –a komutu çalıştırıldığında listede son eklenen adres de vardır ve yanında “statik” yazar.

Arp Paket Formatı

Gerekli durumlardaki mesajlaşmalarda kolaylık sağlaması için bir ARP mesaj yapısı oluşturulmuştur. Bu mesaj yapısı herhangi bir protokol için fiziksel/donanım adres çözümlemesi amaçlasa da genelde IP ağlarında fiziksel adrese ulaşmak için kullanılır. Bir arp paket biçimi aşağıdaki gibidir.



  • Donanım Adres Tipi
    Her bir veri hattı katman protokolüne bu alanda kullanması için verilen numaradır. Örneğin Ethernet 1

  • Protokol Adres Tipi
    Her bir protokole bu alanda kullanılması için verilen numaradır. Örneğin, IP 0x0800

  • Donanım Adres Uzunluğu
    Donanım adresinin byte cinsinden uzunluğunu gösterir. Ethernet adresi 6 byte uzunluğundadır.

  • Protokol Adres Uzunluğu
    IP adresinin byte cinsinden uzunluğudur. IPv4 adresi 4 byte uzunluğundadır.

  • Operasyon
    Gönderici belirli operasyonları sergiler: istek için 1, cevap için 2, RARP isteği için 3 ve RARP cevap için 4.

  • Gönderen Donanım Adresi
    Donanım adres göndericisi

  • Gönderen Protokol Adresi
    Protokol adres göndericisi

  • Hedef Donanım Adresi
    Alıcıya yönelik donanım adresidir. Bu alanda istekler önemsenmez.Bir istek mesaji gönderilirken Varış Donanım Adresi’nin tamamı F yapılır. (FF:FF:FF:FF:FF:FF)

  • Hedef Protokol Adresi
    Alıcıya yönelik protokol adresidir.

RARP (Reverse Address Resolution Protocol - Ters Adres Çözümleme Protokolü)

Arp işleminin tam tersi olarak bilinir. Yeni çalıştırılmış bilgisayarlar fiziksel adreslerini ağa duyurup IP adresi ister. RARP  sunucuları bu isteğe cevap verir. Bu istek yerel ağın dışına çıkamayacağı için yerel ağda bir RARP sunucusu olması gereklidir. Bu sorunu çözmek için başka bir başlangıç protokolü (bootstrap) önerilmiştir: BOOTP.
BOOTP, UDP ile haberleştiğinden yerel ağın dışına çıkabilir. Fakat BOOTP de IP-fiziksel adres eşleştirmesinin elle yapılması gerekir.

Daha sonra önerilen DHCP ile BOOTP ve RARP ın sorunlarından kurtulmak amaçlanmıştır.