Friday, June 19, 2015

ARP Nedir? (Address Resolution Protocol)

ARP (Address Resolution Protocol), özetle TCP/IP ağlarında IP adresi bilinen bir bilgisayarın MAC adresini öğrenmeye yarayan bir protokoldür.

ARP'ın nasıl çalıştığını basit bir senaryo üzerinden anlatmaya çalışalım. Senaryomuzda aynı ağda bulunan A bilgisayarı, B bilgisayarına erişmek istemektedir. Her iki bilgisayar aynı anahtarlama cihazına bağlanmışlardır. Tüm cihazlar açıldığı andan itibaren A bilgisayarının ARP tablosunun ve anahtarlama cihazının MAC adres tablosunun nasıl değiştiği adım adım anlatılmaya çalışılacaktır.
A bilgisayarının IP adresi 192.168.61.61/24 ve B bilgisayarının IP adresi de 192.168.61.20/24 olarak belirlenmiştir. A bilgisayarı anahtarlama cihazının 13 numaralı portuna, B bilgisayarı da anahtarlama cihazının 7 numaralı portuna bağlanmıştır.

Cihazlar ilk açıldıkları zaman A bilgisayarının ARP tablosu ve anahtarlama cihazının MAC adres tablosu boş durumdadır.

Bilgisayarların ARP tablosunda, iletişim yaptıkları bilgisayarların IP adresleri ve bu IP adreslerine karşılık gelen MAC adresleri yer almaktadır. Bilgisayarımızın komut satırına (cmd.exe) arp -a komutunu yazdığımız takdirde bilgisayarımızın ARP tablosunu görüntüleyebiliriz. Aşağıda bir bilgisayarın ARP tablosunun nasıl göründüğü gösterilmiştir:
Şekilden de görülebileceği gibi bilgisayarın ARP tablosunda, bilgisayarın ağ üzerinden haberleştiği diğer bilgisayarların IP adresleri ve bu IP adreslerine ait olan MAC adresleri yer almaktadır.

Anahtarlama cihazının MAC adres tablosunda da, cihazın fiziksel portlarına karşılık gelen MAC adresleri, yani cihazın fiziksel portlarına bağlı olan cihazların MAC adresleri ve portların atandığı VLAN'ler yer alır. Bir anahtarlama cihazının örnek MAC adres tablosu aşağıdaki gibidir:
Şimdi de 192.168.61.61 IP numaralı A bilgisayarının, 192.168.61.20 IP numaralı B bilgisayarına erişmek istediğini farz ediyoruz. A bilgisayarı, B bilgisayarına anahtarlama cihazı üzerinden erişecektir. Bunun için A bilgisayarının, B bilgisayarının MAC adresine ihtiyacı vardır çünkü anahtarlama cihazları sadece MAC adresleri üzerinden haberleşme yapabilmektedirler.

A bilgisayarı, B bilgisayarının MAC adresini öğrenebilmek amacıyla bir "ARP Request" çerçevesi (frame) oluşturur ve bu isteği, bağlı bulunduğu 13 numaralı port üzerinden anahtarlama cihazına gönderir. Bu çerçevenin başlığında (header) yer alan "kaynak MAC adresi" bölümünde A bilgisayarının MAC adresi olan A0-A1-00-90-D3-82, "hedef MAC adresi" bölümünde ise ikinci katman "broadcast" adresi sayılan FF-FF-FF-FF-FF-FF adresi vardır:
Anahtarlama cihazı bu çerçeveyi aldıktan sonra MAC adres tablosunu günceller. MAC adres tablosundaki 13 numaralı porta karşılık gelen alana A bilgisayarının MAC adresini yazar. Anahtarlama cihazının MAC adres tablosu bu ilk istekten sonra aşağıdaki gibi olacaktır:
Anahtarlama cihazı kendisine gelen çerçevelerin "hedef MAC adres" kısmına bakarak anahtarlama (switching) işlemini gerçekleştirir. Anahtarlama cihazının A bilgisayarından almış olduğu çerçevenin "hedef MAC adres" kısmında FF-FF-FF-FF-FF-FF bulunduğu için anahtarlama cihazı bu çerçeveyi 13. port haricindeki tüm portlarına gönderecektir.

A bilgisayarının göndermiş olduğu "ARP Request" çerçevesinin "veri" kısmında şu soru vardır diyebiliriz: "192.168.61.20 IP numaralı adres hangi bilgisayara aitse cevap versin."
Anahtarın portlarına bağlı olan bilgisayarların tümü bu çerçeveyi alır. 192.168.61.20 IP numarasına sahip olmayan bilgisayarlar bu çerçeveyi (frame) düşürürler. B bilgisayarı gelen bu "ARP Request" çerçevesine "ARP Reply" çerçevesiyle cevap verir. B bilgisayarı, oluşturmuş olduğu bu "ARP Reply" çerçevesini anahtarlama cihazına bağlı bulunduğu 7. porttan gönderir.

"ARP Reply" çerçevesinin "kaynak MAC adresi" kısmında B bilgisayarının MAC adresi olan B0-BB-66-90-43-82 ve "hedef MAC adresi" kısmında ise A bilgisayarının MAC adresi olan A0-A1-00-90-D3-82 vardır.

Anahtarlama cihazı B bilgisayarından "ARP Reply" çerçevesini aldıktan sonra, bu çerçevenin "kaynak MAC adresi" kısmına bakarak MAC adres tablosunu günceller.
B bilgisayarının oluşturmuş olduğu "ARP Reply" çerçevesinin "veri" kısmında da şu cevap vardır diyebiliriz: "192.168.61.20 IP numaralı bilgisayar benim ve MAC adresim de B0-BB-66-90-43-82'dir."
Anahtarlama cihazı bu çerçeveyi aldıktan sonra "hedef MAC adres" kısmına bakar ve bu çerçeveyi, MAC adres tablosuna bakarak, 13 numaralı porta gönderir. "ARP Reply" çerçevesini alan A bilgisayarı bu çerçevenin içine bakarak B bilgisayarının MAC adresini öğrenmiş olur.
Buraya kadar anlatılan işlem ARP (Address Resolution Protocol) diye adlandırılmaktadır.

Bundan sonra A bilgisayarı, B bilgisayarıyla iletişim kurmak istediği zaman kendi ARP tablosuna bakacak ve burada bulunan B bilgisayarının MAC adresini kullanarak çerçeveleri oluşturacaktır.