ARP (Address Resolution Protocol) Nedir ?

Günümüzde en çok kullanılan LAN teknolojisi Ethernet protokolüdür. Ethernet yapısı gereği sadece MAC adreslerini anlar. MAC adresleri 48 bitlik adreslerdir. Bu adresler Fiziksel Adres olarak da geçer. Çünkü her NIC (Network Interface Card) özel olarak atanmaktadır.

MAC Adresleri 2 kısıma ayrılmaktadır. İlk üç oktet network kartının üretici numarasıdır. Diğer bir adıyla buna OUI denmektedir. OUI numaraları IEEE tarafından tahsis edilir. Eğer bir NIC kart üreticisi olacaksanız bu numaraya ihtiyacınız olacaktır. Bir OUI numarasından yaklaşık 16 milyon MAC adresi üretilebilir. OUI numarasını sorgulatmak için aşağıdaki adresi kullanabilirsiniz.

https://www.wireshark.org/tools/oui-lookup.html

Eğer dünyadaki tüm OUI numaralarını görmek istiyorsanız aşağıdaki IEEE sayfasını ziyaret edebilirsiniz. Burada şöyle bir örnek verelim Apple firması IEEE de yaklaşık 100+ OUI numarasına sahiptir. Bu da bir nevi Apple şu zamana kadar yaklaşık 1.6 milyar cihaza MAC adresi tanımlamış diyebiliriz.

https://standards-oui.ieee.org/

Aşağıdaki görselden farkı daha iyi anlayabilirsiniz.

OUI : Organizationally Unique Identifier

Bir diğer önemli kavram IP adresleridir. IP adresi networkler arası haberleşmede kullandığımız adreslerdir. İki tip IP adresi bulunmaktadır. Bunlar IPv4 ve IPv6 dır. IPv4 adresleri 32 bitlik adreslerdir. IPv6 adresleri ise 128 bitlik adresledir. Günümüzde hala en çok kullanılan IPv4 dür. Ama ISP ler hem IPv4 hem de IPv6 iletişime izin vermektedir.

Ama IP adresi yanında “Subnet Maskesi” veya “Prefix” değeri olmadan hiç birşey ifade etmemektedir. Subnet maskesi 32 bitlik bir adrestir. IP adresinde, network kısmı ile host kısmını birbirinden ayırmamızı sağlar.

Örnek IPv4 Adresi ve Subnet Maskesi:

192.168.1.10 > Cihazın IP adresi

255.255.255.0 > Subnet Maskesi

Subnet Maskesindeki 255 kısımları IP adresinin network kısmını temsil etmektedir. Yani bu cihaz “192.168.1.0” networkündedir. “.10” onun newtorkteki adresidir. Bilgisayar network adresini hesaplamak için IP ile Subnet Maskesini “Andleme devresine” alır. İşlem sonucunda Bilgisayar ben 192.168.1.0 adresindeyim diyebilir.

Prefix değeri ise “Subnet Maskesini” uzun uzun yazmak yerine kullanabileceğimiz bir adrestir. Prefix değeri bir IP adresinin network kısmındaki bitlere karşılık gelir. Örneğin ;

192.168.1.10/24

Bu örnekte bir IPv4 adresi var. IPv4 adresleri 32 bittir. Prefix değeri /24 verilmiş, buradan çıkarmamız gereken sonuç ilk 24 bitin network kısmı olduğudur. Yani “192.168.1” bölümü bizim network kısmımız, geriye kalan “.10” kısmı ise bizim host bölümümüzdür. Prefix değerleri IPv6 adreslerinde tercih edilmektedir. Çünkü 128 bitlik bir adresin subnet maskesini yazmak uzun zaman alacaktır.

MAC adresleri aynı networkte iletişimde çok önemlidir. Bu yüzden bu adresleri öğrenmemiz gerekir. Bunun için geliştirilmiş iki protokol vardır. Bunlar IPv4 ve IPv6 olmak üzere farklıdır. Biz IPv4 te IP adresinden MAC adresini öğrenmek için “ARP ( Address Resolution Protocol )” kullanırız. IPv6 da ise IP adresinden MAC adresini öğrenmek için “ND ( Neighbour Discovery )” protokolünü kullanırız.

Bir cihaz networkte bulunan başka bir cihaza paket göndereceği zaman MAC adresini öğrenmek isteyecektir. Bu yüzden hedef cihaza “ARP Request” gönderecektir. Bu istek networkte bulunan herkese gidecektir. Bu yüzden “Broadcast” bir pakettir. Ardından tüm cihazlar bu paketi alır. Kendilerine gelmediğini gören cihazlar bu paketi çöpe atar. Kendine geldiğini gören cihaz istek yapan cihaza “Arp Reply” paketini gönderir. Bu paket sadece istek yapan cihaza gider. Hedef cihaz paketi alır. Gönderilen MAC adresini “ARP” tablosuna yazar.

“ARP” tablosunu “arp -a” komutuyla görütüleyebiliriz.

“Type” bölümünde “dynamic” yazılırsa bu hedeften gönderildiği anlamına gelir. Yani biz bir “ARP Request” sorgusu gönderdik. Bize dönen “ARP Reply” içinde bulunan cevabı da buraya yazdık.

ARP tablosuna statik olarak ta bir değer girilebilir. Ama tercih edilen bir durum değildir. Eğer ARP tablomuzu temizlemek istiyorsak “arp -d” komutunu kullanabiliriz.

ARP tabloları sonsuza kadar cihaz tarafından tutulmaz. İşletim sistemine göre değişmekle beraber örneğin “Linux” sistemlerde bu tablo 2 dakika tutulmaktadır.

Aynı Networkte ARP Sorgusu :

Aynı networkte haberleşmede cihaz öncelikle paket göndereceği cihaz ile aynı networkte olup olmadığına bakar. Ardından aynı newtorkte ise “ARP” tablosuna bakar. Eğer “ARP” tablosunda cihazı göremediyse, paketi bekletir, “ARP Request” yollar ( ARP Request sorgularında hedef MAC adresine ff:ff:ff:ff:ff:ff yazılır ) ardından giden broadcast paketi her cihaz alır. Kendine gelmediğini gören cihaz paketi çöpe atar. Kendine geldiğini gören cihaz “ARP Reply” paketi ile istekte bulunan cihaza karşılık verir. Paketi alan cihaz içindeki “MAC” adresini “ARP” tablosuna ekler. Ardından beklettiği paketi düzenler ve iletişimine devam eder.

Farklı Networklerde ARP :

İlk olarak cihaz paket göndereceği cihaz ile aynı networkte olup olmadığını sorgular. Eğer aynı networkte değil ise MAC adresine “Default Gateway” yani “Router” “MAC” adresini yazması gerekiyor. Cihaz öncelikle “ARP” tablosuna bakar. Routerin “MAC” adresini göremez ise Routera “ARP Request” isteği yollar. Ardından “Router” bu isteğe “ARP Reply” ile dönüş sağlar. Gelen cevaptaki “MAC” adresini ARP tablosuna yazar. Ardından paketi “Routera” iletir. Router 2.katmana çıkarır. Kendine geldiği görür. Daha sonra 2. katman başlığını çöpe atar. 3.Katmana çıkarır. Hedef IP adresine bakar ve yolu belirler. Cihaz gideceği Sunucunun MAC adresini bilmediği için “ARP Request” gönderir. Ardından sunucudan “ARP Reply” dönüşü alır. Ama bu işlem belli bir zaman gerektirdiği için aşağıdaki gibi ilk ICMP paketi zaman aşımına uğrar. Ama öğrendikten sonra gönderdiği paketler zaman aşımına uğramadan gidecektir.

Routerlar’da kendine bağlı olan tüm cihazların “ARP Tablosunu” tutmaktadır. “show ip arp” komutu ile bu tablo görülebilmektedir.

“ARP” yararlı bir protokoldür. Ama güvenilecek bir protokol değildir. Çünkü birçok zafiyeti bulunmaktadır. ARP protokolünün dezavantajı “ARP Request” istekleri broadcast olduğu için networkte bulunan tüm kullanıcılara gitmektedir. Çok büyük bir networkte tüm cihazlar ARP sorgusu yolladığı için network performansını etkilemektedir.

Diğer bir sorunu da arp basit ve şifreli olmayan bir protokoldür. Yani ağınıza dahil olan bir tehdit aktörü basit bir saldırı yöntemiyle size kendini “Router” gibi gösterebilir “Router” ada kendini siz gibi gösterebilir bu sayede newtork trafiğinizi ele geçirmiş olur.

Bu yapılan saldırıya “ARP poisoning attack” denilir. Aşağıdaki görselden daha fazla içselleştirebilirsiniz.

Kurumsal switchler’de bu saldırının engellenmesi için bir önlem alınmış durumdadır. Bu önleme “Dynamic ARP inspection” denir. Burada ARP paketleri switch tarafından dinlenir ve “ARP reply” sorgularda dönen MAC adreslerinin doğruluğunu kontrol edebilir. Bu sayede bu saldırı bir nevi engellenmiş olur.

Daha fazla bilgisayar ağları içeriği için takipte kalın…

Her başarı, sabır ile zamanı birleştirerek sağlanır.

Honoré de Balzac
Hüseyin Pala hakkında 53 makale
System and Network Specialist Candidate

İlk yorum yapan olun

Bir yanıt bırakın

E-posta hesabınız yayımlanmayacak.


*