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 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:
- Gelen çerçevenin kaynak adresi, geldiği bağlantı noktasıyla birlikte tabloya yazılır.
- Çerçevenin hedef adresi tabloda varsa, çerçeve yalnızca o bağlantı noktasına iletilir.
- 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:ffyayın adresidir;01:00:5e:...ve33: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.