İçeriğe geç
academia.sh

Ders 05 / 18

Ethernet ve MAC Adresleri

Ethernet çerçevesinin alanları, 48 bitlik donanım adresinin bit yapısı, yayın adresleri ve anahtarın adres öğrenme mekanizması.

İçindekiler

Önceki konu, verinin katmanlar boyunca nasıl sarmalandığını tanımladı ve en dıştaki sargıya çerçeve adını verdi. Çerçevenin içeriği ise henüz açılmadı: bir çerçeve hangi alanlardan oluşur, üzerindeki adres ne anlama gelir?

Bu dersin sorusu, aynı fiziksel ortamı paylaşan cihazların birbirini nasıl bulduğudur. Yanıt, ağ katmanı adreslerinden bağımsız, tamamen yerel bir adresleme düzeninde yatar.

Ethernet Çerçevesi

Bir Ethernet çerçevesi şu alanlardan oluşur:

Alan Boyut İşlev
Hedef adresi 6 bayt Çerçeveyi alacak cihazın donanım adresi
Kaynak adresi 6 bayt Gönderen cihazın donanım adresi
Tür / uzunluk 2 bayt Yükün protokolü (0x0800 IPv4, 0x86DD IPv6, 0x0806 ARP)
Yük 46–1500 bayt Taşınan ağ katmanı paketi
Çerçeve denetim dizisi 4 bayt Döngüsel artıklık denetimi (CRC-32)

Çerçeveden önce tel üzerine 7 baytlık bir eşitleme dizisi ve 1 baytlık çerçeve başlangıç imi konur; çerçeveler arasında 12 bayt süresince ortam boş bırakılır. Bu 20 bayt çerçeveye ait değildir, ancak tel üzerindeki zamanı tüketir.

Yükün alt sınırı 46 bayttır. Yük daha kısaysa dolgu (padding) eklenerek 46’ya tamamlanır. Bu sınırın nedeni çarpışma sezmedir: bir çerçeve, tel üzerinde en uzak cihaza ulaşıp geri dönecek kadar uzun sürmelidir; aksi hâlde gönderen, çarpışmayı fark etmeden göndermeyi bitirir. Adresler ve tür alanıyla birlikte en küçük çerçeve 6+6+2+46+4=646 + 6 + 2 + 46 + 4 = 64 bayttır.

Yükün üst sınırı 1500 bayttır — önceki derste tanımlanan MTU değeri budur. Çerçevenin kendi başlıkları bu sınırın dışındadır; en büyük çerçeve 1518 bayttır.

Çerçeve denetim dizisi, çerçevenin tamamı üzerinde hesaplanan bir döngüsel artıklık denetimidir. IP başlığındaki sağlamadan farklı olarak yükü de kapsar ve bit hatalarını belirgin biçimde daha güçlü sezer. Denetim başarısızsa çerçeve sessizce atılır; Ethernet yeniden gönderme yapmaz. Kaybı fark etmek ve gidermek üst katmanların işidir.

MAC Adresinin Yapısı

MAC adresi (media access control address), bir ağ arayüzünü fiziksel düzeyde adresleyen 48 bitlik değerdir. İki nokta üst üste veya tire ile ayrılmış altı onaltılık bayt olarak yazılır: 00:00:5e:00:53:01.

Adres iki bölümden oluşur:

  • İlk 3 bayt: Kuruluş benzersiz tanımlayıcısı (organizationally unique identifier). Arayüzü üreten kuruluşa tahsis edilir.
  • Son 3 bayt: Kuruluşun kendi verdiği arayüz numarası.

İlk baytın en düşük iki biti ayrı anlam taşır ve adresi okurken ilk bakılacak yerdir:

Bit Ad 0 ise 1 ise
0 (en düşük) I/G Tekil adres (tek arayüz) Grup adresi (yayın veya çok noktaya gönderim)
1 U/L Evrensel yönetimli (üretici verdi) Yerel yönetimli (yerel olarak atandı)

Aşağıdaki program bu iki biti çözer.

def mac_coz(mac: str) -> None:
    baytlar = [int(x, 16) for x in mac.split(":")]
    ilk = baytlar[0]
    tur = "grup" if ilk & 0b1 else "tekil"
    kaynak = "yerel" if ilk & 0b10 else "evrensel"
    print(f"{mac}  ilk bayt={ilk:08b}  {tur:5s}  {kaynak}")


for adres in ("00:00:5e:00:53:01",      # örnek ağdaki istemci
              "00:00:5e:00:53:00",      # geçidin iç arayüzü
              "ff:ff:ff:ff:ff:ff",      # yayın
              "01:00:5e:00:00:01",      # IPv4 çok noktaya gönderim
              "33:33:00:00:00:01",      # IPv6 çok noktaya gönderim
              "02:00:5e:00:53:2f"):     # yerel yönetimli
    mac_coz(adres)

Çıktı:

00:00:5e:00:53:01  ilk bayt=00000000  tekil  evrensel
00:00:5e:00:53:00  ilk bayt=00000000  tekil  evrensel
ff:ff:ff:ff:ff:ff  ilk bayt=11111111  grup   yerel
01:00:5e:00:00:01  ilk bayt=00000001  grup   evrensel
33:33:00:00:00:01  ilk bayt=00110011  grup   yerel
02:00:5e:00:53:2f  ilk bayt=00000010  tekil  yerel

Maskeleme işlemleri, Bilgisayarlar Nasıl Çalışır kursundaki Bit Düzeyi İşlemler dersinde tanıtılan yöntemin doğrudan uygulanmasıdır: ilk & 0b1 en düşük biti, ilk & 0b10 bir sonraki biti yalıtır.

Üç adres sınıfı ayırt edilir. ff:ff:ff:ff:ff:ff yayın (broadcast) adresidir; yerel ağdaki tüm arayüzler bu çerçeveyi işler. 01:00:5e:... ile başlayan adresler IPv4 çok noktaya gönderim, 33:33:... ile başlayanlar IPv6 çok noktaya gönderim içindir; yalnızca ilgili gruba katılmış arayüzler işler. Geri kalanlar tekil adreslerdir.

Yerel yönetimli adresler, üreticiden gelmeyen adreslerdir: sanal arayüzler, konteyner ağları ve gizlilik için adres değiştiren kablosuz istemciler bu bloğu kullanır. 02:00:5e:00:53:2f adresinde ikinci bit kurulu olduğu için adres yereldir.

Adreslerin Kapsamı

MAC adresi yerel bir adrestir. Bir çerçeve yönlendiriciden geçtiğinde çerçeve tümüyle yeniden kurulur: kaynak adresi yönlendiricinin çıkış arayüzü, hedef adresi ise bir sonraki cihaz olur. Önceki konuda vurgulanan ayrım burada somutlaşır — bağlantı katmanı adresleri her sekmede değişir, IP adresleri değişmez.

Bunun bir sonucu şudur: bir MAC adresi, yalnızca aynı yerel ağdaki cihazlar tarafından görülebilir. Uzak bir sunucu, kendisine bağlanan istemcinin donanım adresini bilmez.

Anahtarın Adres Öğrenmesi

Bir anahtar (switch), bağlantı katmanında çalışan ve çerçeveleri yalnızca gerekli bağlantı noktasına ileten bir cihazdır. Hangi adresin hangi bağlantı noktasında olduğunu önceden bilmez; kaynak adreslerini gözleyerek öğrenir.

Kural üç adımdadır:

  1. Gelen çerçevenin kaynak adresi, geldiği bağlantı noktasıyla birlikte tabloya yazılır.
  2. Çerçevenin hedef adresi tabloda varsa, çerçeve yalnızca o bağlantı noktasına iletilir.
  3. Hedef adres tabloda yoksa veya bir grup adresiyse, çerçeve gelen bağlantı noktası dışındaki tüm bağlantı noktalarına gönderilir. Buna taşırma (flooding) denir.

Örnek ağdaki yönetim bölümünün anahtarında, istemci geçide ilk çerçevesini gönderdikten sonra tablo şu hâle gelir:

MAC adresi Bağlantı noktası Nasıl öğrenildi
00:00:5e:00:53:01 4 İstemcinin gönderdiği çerçevenin kaynak adresi

Geçidin adresi henüz tabloda yoktur; istemcinin çerçevesi taşırma ile tüm bağlantı noktalarına gider. Geçit yanıt verdiğinde onun adresi de öğrenilir:

MAC adresi Bağlantı noktası Nasıl öğrenildi
00:00:5e:00:53:01 4 İstemcinin çerçevesi
00:00:5e:00:53:00 1 Geçidin yanıt çerçevesi

Tablo girdileri bir yaşlanma süresi sonunda silinir; böylece bir cihaz başka bir bağlantı noktasına taşındığında tablo kendini düzeltir.

Öğrenme yönteminin bir sonucu, iki adresin doğal olarak birlikte öğrenilememesidir: bir cihaz hiç çerçeve göndermediyse anahtar onun yerini bilmez ve ona giden her çerçeve taşırılır.

Çarpışma Alanı ve Yayın Alanı

İki kapsam kavramı ayrılmalıdır.

Çarpışma alanı (collision domain), aynı anda gönderim yapıldığında çakışmanın oluşabileceği cihaz kümesidir. Anahtarın her bağlantı noktası ayrı bir çarpışma alanıdır; çift yönlü çalışan bir bağlantıda çarpışma hiç oluşmaz.

Yayın alanı (broadcast domain), bir yayın çerçevesinin ulaştığı cihaz kümesidir. Anahtar yayın çerçevelerini taşırdığı için yayın alanını bölmez. Yayın alanını bölen cihaz yönlendiricidir: bir yönlendirici yayın çerçevelerini karşı tarafa geçirmez.

Bu ayrım, örnek ağın bölümlere ayrılmasının gerekçelerinden biridir. Tek bir yayın alanında bulunan cihaz sayısı arttıkça, her yayın çerçevesinin oluşturduğu iş de artar: yüz cihazlık bir yayın alanında bir yayın çerçevesi doksan dokuz gereksiz işleme yol açar. Kurumun bölümlerini ayrı ağlara koymak, bu yükü sınırlar.

Sanal yerel ağ (VLAN) düzeneği, tek bir fiziksel anahtar üzerinde birden çok yayın alanı tanımlamayı sağlar: her bağlantı noktası bir kimlikle etiketlenir ve farklı kimlikli bağlantı noktaları arasında çerçeve geçmez. Örnek ağdaki bölümler, ayrı anahtarlar yerine tek bir anahtar üzerinde bu yolla da ayrılabilir; adres planı her iki durumda da aynıdır.

Özet

  • Ethernet çerçevesi hedef adresi, kaynak adresi, tür alanı, 46–1500 baytlık yük ve 4 baytlık denetim dizisinden oluşur; en küçük çerçeve 64, en büyüğü 1518 bayttır.
  • Denetim dizisi başarısızsa çerçeve sessizce atılır; kaybı gidermek üst katmanların işidir.
  • MAC adresi 48 bittir; ilk baytın en düşük biti tekil/grup, bir sonraki bit evrensel/yerel ayrımını verir.
  • ff:ff:ff:ff:ff:ff yayın adresidir; 01:00:5e:... ve 33:33:... önekleri çok noktaya gönderim içindir.
  • Anahtar, gelen çerçevelerin kaynak adreslerini gözleyerek adres tablosunu öğrenir; hedefi bilinmeyen çerçeveleri taşırır.
  • Anahtar çarpışma alanlarını böler, yayın alanını bölmez; yayın alanını bölen cihaz yönlendiricidir.

Sonraki Adım

Bir çerçeve göndermek için hedefin donanım adresi bilinmelidir. Oysa uygulamalar hedefi IP adresiyle belirtir; istemci 192.168.10.193 adresine göndereceğini bilir, ama o adresin hangi donanım adresine karşılık geldiğini bilmez. Sonraki ders, bu iki adres uzayı arasında köprü kuran adres çözümleme protokolünü ve onun bıraktığı güvenlik açıklığını ele alacak.

İlerlemeni kaydetmek ve not almak için Giriş yap

Notlarım

Not almak için giriş yapmalısın.

Aramak için yazmaya başlayın.

↑↓ Esc gezin · aç · kapat