SEN2008 · 4. hafta · Data Link Layer Concepts (II) : Channel allocation problem, multiple Access, Ethernet

Ethernet, MAC adresleri, switch ve ARP

Ethernet çerçevesinin alanları, minimum ve maksimum boy, 48 bitlik MAC adresinin yapısı, switch'in öğrenme tablosu, ARP ile IP'den MAC'e geçiş ve bunlara karşı ARP spoofing, MAC flooding gibi saldırılar.

Ethernet framepreambleEtherTypepayload paddingFCSMAC addressOUIunicast / multicast / broadcastswitchself-learningforwarding table (CAM)floodingfilteringcollision domainbroadcast domainARPARP cacheARP spoofingMAC floodingVLAN

Önceki sayfada paylaşımlı kanalda kimin konuşacağını gördün. Bugün kablolu LAN’ların neredeyse tamamı Ethernet, ve modern Ethernet’te hostlar bir switch’e tek tek bağlı. Bu sayfa link katmanının “adres” tarafını anlatır: MAC adresleri, switch’in nasıl öğrendiği ve IP adresinden MAC adresine nasıl geçildiği (ARP). Dersin güvenlik yarısında çok kez geri döneceğin bir sayfa, çünkü bu katmandaki protokoller kimlik doğrulama yapmaz.

Altın kurallar:

  1. Ethernet çerçevesi 64 ile 1518 byte (preamble hariç). Payload en az 46 byte; eksikse doldurulur.
  2. Switch kaynak adresi öğrenir, hedef adrese göre iletir.
  3. ARP isteği broadcast, cevabı unicast.
  4. IP adresi uçtan uca aynı kalır, MAC adresi her linkte değişir.

Ethernet çerçevesi

+----------+---------+---------+------+--------------+-----+
| Preamble | Dst MAC | Src MAC | Type |   Payload    | FCS |
|  8 byte  | 6 byte  | 6 byte  | 2 B  | 46-1500 byte | 4 B |
+----------+---------+---------+------+--------------+-----+
AlanGörev
Preamble7 byte 10101010 + 1 byte 10101011 (SFD). Alıcı saatini senkronlar. Çerçeve boyuna sayılmaz.
Dst / Src MACHedef ve kaynak arayüz adresi
Type (EtherType)Payload’daki protokol: 0x0800 IPv4, 0x0806 ARP, 0x86DD IPv6
PayloadGenelde bir IP datagramı. MTU = 1500 byte
FCSCRC-32 (3. hafta). Hatalı çerçeve sessizce atılır

Ethernet bağlantısızdır (connectionless) ve güvenilmezdir (unreliable): el sıkışma yok, ACK yok. CRC tutmayan çerçeve atılır; kaybı fark etmek üst katmanın (TCP) işi.

Boylar ve padding

Minimum: 6+6+2+46+4=646 + 6 + 2 + 46 + 4 = 64 byte. Bu sınır önceki sayfadaki CSMA/CD minimum çerçeve kuralından gelir (512 bit). 20 byte’lık bir datagram için 46−20=2646 - 20 = 26 byte doldurma (padding) eklenir.

Maksimum: 6+6+2+1500+4=15186 + 6 + 2 + 1500 + 4 = 1518 byte.

Verim

Kabloda her çerçeveden önce 8 byte preamble ve sonra 12 byte’lık çerçeveler arası boşluk (inter-frame gap) vardır.

Max payload (1500) : 1500 / (1518 + 8 + 12) = 1500 / 1538 = %97.53
Min payload (46)   : 46 / (64 + 8 + 12)     = 46 / 84     = %54.76
1518 B @100 Mbps   : 12,144 bit / 10^8      = 121.44 us

MAC adresleri

MAC (LAN, fiziksel) adresi 48 bittir ve onaltılık yazılır: 3C:22:FB:10:A4:7E. Ağ kartına (NIC) üretimde yazılır, ama yazılımla değiştirilebilir (bu bir güvenlik konusu).

KısımBitAnlam
OUIilk 24IEEE’nin üreticiye verdiği önek
NIC’e özgüson 24üreticinin atadığı seri
I/G bitiilk byte’ın en düşük biti0 unicast, 1 grup (multicast)
U/L bitiilk byte’ın ikinci düşük biti0 global (üreticiden), 1 yerel atanmış
ilk byte  ikili       I/G  U/L  tür
0x00      00000000    0    0    unicast, global
0x01      00000001    1    0    multicast (01:00:5E -> IPv4 multicast)
0x3A      00111010    0    1    unicast, yerel atanmış (rastgele MAC)
0xFF      11111111    1    1    FF:FF:FF:FF:FF:FF = broadcast

MAC ile IP farkı. MAC adresi sosyal güvenlik numarası gibi düz bir kimliktir, yer bilgisi taşımaz; laptop hangi ağa girerse girsin aynı kalır. IP adresi posta adresi gibi hiyerarşiktir ve bağlandığın ağa göre değişir. Yönlendirme IP ile yapılır, son linkteki teslimat MAC ile.

İPUCU · rastgele MAC. Telefonlar her Wi-Fi ağına farklı, yerel atanmış (U/L = 1) bir MAC ile bağlanır. Amaç kullanıcıyı farklı ağlarda MAC’ten takip etmeyi zorlaştırmak: bir mahremiyet önlemi.

Switch: kendi kendine öğrenen köprü

Hub sadece bitleri tüm portlara kopyalayan fiziksel katman cihazıdır; bağlı herkes tek bir çarpışma alanında kalır. Switch ise link katmanı cihazıdır: çerçeveyi okur ve sadece gereken porta gönderir. Hostlar switch’in varlığından haberdar değildir (transparent).

Switch’in bir iletim tablosu (forwarding table, CAM) vardır: MAC → port, zaman. Tabloyu kimse elle doldurmaz; switch kendisi öğrenir (self-learning):

  1. Çerçeve port xx‘ten geldi. Kaynak MAC’i tabloya “port xx” olarak yaz (ya da süresini yenile).
  2. Hedef MAC’i tabloda ara:
    • Yoksa: çerçeveyi geldiği port hariç tüm portlara gönder (flooding).
    • Varsa ve port xx ise: at (filtering), hedef zaten aynı segmentte.
    • Varsa ve başka port yy ise: sadece yy‘ye ilet (forwarding).
  3. Kayıtlar belli bir süre (aging time, tipik 300 s) kullanılmazsa silinir.

Çözümlü örnek: öğrenme izi

Çerçeve (kaynak -> hedef, giriş portu)   Karar        Tablo sonrası
A -> B, port 1                           flood        A=1
B -> A, port 2                           port 1       A=1 B=2
C -> A, port 3                           port 1       A=1 B=2 C=3
A -> C, port 1                           port 3       A=1 B=2 C=3
D -> B, port 4                           port 2       A=1 B=2 C=3 D=4

Dikkat: ilk çerçevede B öğrenilmez. Switch sadece kaynak adresten öğrenir; B ancak kendisi bir çerçeve gönderince tabloya girer.

Çarpışma alanı ve broadcast alanı

CihazKatmanÇarpışma alanıBroadcast alanı
Hub1Tüm portlar tek alanTek
Switch2Her port ayrı alanTek (broadcast her porta gider)
Router3Her arayüz ayrıHer arayüz ayrı

Full-duplex switch bağlantısında (host ile switch arası ayrı gönderme ve alma telleri) çarpışma hiç olmaz; CSMA/CD pratikte devre dışı kalır.

VLAN (sanal LAN), tek bir fiziksel switch’i mantıksal olarak birden fazla switch’e böler. Farklı VLAN’lar farklı broadcast alanlarıdır; aralarındaki trafik router’dan geçmek zorundadır. Kurumlarda misafir, öğrenci ve yönetim ağlarını ayırmak için kullanılır: bir güvenlik sınırı.

ARP: IP adresinden MAC adresine

Host bir IP datagramını aynı alt ağdaki bir hosta göndermek istiyor. Çerçeveye hedef MAC yazması lazım ama sadece IP’yi biliyor. ARP (Address Resolution Protocol) bu eşleştirmeyi yapar.

  1. Host ARP cache’ine bakar. Kayıt varsa kullanır.
  2. Yoksa bir ARP isteği yayınlar: hedef MAC FF:FF:FF:FF:FF:FF, içerik “10.0.0.9 kimde? Ben 10.0.0.5, MAC’im şu.”
  3. LAN’daki herkes isteği alır, sadece 10.0.0.9 cevap verir. ARP cevabı doğrudan isteyene unicast gider.
  4. İsteyen eşleştirmeyi cache’e TTL ile (dakikalar) yazar.

ARP “tak-çalıştır”dır (plug-and-play): yönetici bir şey ayarlamaz.

Başka bir alt ağa göndermek

H1 (192.168.1.10/24) bir web sunucusuna (93.184.216.34) yazıyor. Hedef farklı alt ağda olduğu için:

1. H1, maskesine bakar: hedef alt ağımda değil -> default gateway'e gönder
2. H1, gateway IP'si (192.168.1.1) için ARP yapar, router arayüzünün MAC'ini öğrenir
3. Çerçeve: dst MAC = router arayüzü, dst IP = 93.184.216.34
4. Router çerçeveyi söker, IP'ye bakar, bir sonraki link için YENİ çerçeve kurar
   (yeni src MAC = router'ın çıkış arayüzü, dst MAC = bir sonraki düğüm)

TUZAK · uzak sunucu için ARP yapılmaz. ARP sadece aynı alt ağda çalışır, broadcast router’dan geçmez. Sınavda “dst MAC nedir?” sorusunun cevabı sunucunun değil, gateway’in MAC’idir. IP başlığındaki adresler ise yol boyunca değişmez (NAT hariç, 5. hafta).

Ethernet ve ARP, yerel ağdaki herkesin dürüst olduğunu varsayar. Bu varsayım çökerse:

SaldırıNasıl çalışırEtkisiSavunma
ARP spoofing (poisoning)Saldırgan istenmemiş ARP cevaplarıyla “gateway’in IP’si benim MAC’imde” derTrafik saldırgandan geçer: MITMDynamic ARP Inspection, statik ARP, TLS
MAC floodingBinlerce sahte kaynak MAC’li çerçeve CAM tablosunu doldururSwitch tanımadığı hedefleri flood eder, saldırgan her şeyi görürPort security (port başına MAC sınırı)
MAC spoofingKart MAC’i başka birininkine değiştirilirMAC tabanlı erişim kontrolü atlatılır802.1X kimlik doğrulama
Rogue DHCPSahte DHCP sunucusu kendini gateway olarak verirMITMDHCP snooping

Hepsinin ortak dersi: link katmanında kimlik iddia edilir, doğrulanmaz. Bu yüzden gizlilik ve bütünlük için uçtan uca şifrelemeye (12. hafta, TLS) güvenilir.

Sık yapılan hatalar

Yanlış düşünceDoğrusu
Ethernet min çerçeve 46 byte46 byte payload; çerçeve 64 byte.
Preamble çerçeve boyuna dahil64 ve 1518 sınırlarına preamble dahil değil.
Switch hedef adresi öğrenirKaynak adresi öğrenir, hedefi arar.
Tabloda olmayan hedefe çerçeve atılırFlood edilir. Atılan, aynı porttaki hedef.
ARP cevabı da broadcastCevap unicast.
Uzak sunucunun MAC’i için ARP yapılırGateway için yapılır.
Switch broadcast alanını bölerBölmez; router ya da VLAN böler.
MAC adresi değiştirilemezYazılımla kolayca değişir; kimlik kanıtı değildir.

Kendini test et

Sınavdaki gibi İngilizce sorular. Önce kâğıt kalemle çöz, sonra cevabı aç.

Soru 1kolay

An IP datagram of only 20 bytes is sent inside an Ethernet frame. How many bytes of padding must be added to the payload?

Cevabı göster
26 bytes

Ethernet payload'u en az 46 byte olmalı (çerçeve 6 + 6 + 2 + 46 + 4 = 64 byte). 46−20=2646 - 20 = 26 byte dolgu.
Alıcı dolguyu IP başlığındaki toplam uzunluk alanından anlayıp atar.

Soru 2kolay

Which Ethernet header field tells the receiver which network-layer protocol is carried in the payload?

  1. Preamble
  2. Destination MAC address
  3. EtherType
  4. FCS (CRC)
Cevabı göster
C) EtherType

EtherType: 0x0800 IPv4, 0x0806 ARP, 0x86DD IPv6. Alıcı payload'u hangi protokole vereceğini buradan bilir (demultiplexing).
FCS hata tespiti içindir, preamble saat senkronizasyonu için.

Soru 3kolay

How many bits are in a MAC address, and how many bits form the OUI (vendor prefix)?

  1. 32 and 16
  2. 48 and 24
  3. 48 and 16
  4. 64 and 32
Cevabı göster
B) 48 and 24

MAC 48 bit (6 byte), örnek 3C:22:FB:10:A4:7E. İlk 24 bit IEEE'nin üreticiye verdiği OUI, son 24 bit üreticinin seri numarası.
Adres uzayı 248≈2.8×10142^{48} \approx 2.8 \times 10^{14}.

Soru 4orta

A frame's destination MAC address begins with the byte 0x01. What kind of address is it?

  1. Unicast, globally administered
  2. Unicast, locally administered
  3. Multicast (group) address
  4. Invalid address
Cevabı göster
C) Multicast (group) address

İlk byte'ın en düşük biti I/G bitidir: 1 ise grup (multicast/broadcast), 0 ise tek bir arayüz (unicast).0x01 = 00000001, en düşük bit 1: multicast. İkinci düşük bit (U/L) 0: global. IPv4 multicast'in MAC karşılığı 01:00:5E ile başlar.

Soru 5orta

A switch with an empty table receives these frames in order (source, destination, incoming port): (A, B, 1), (B, A, 2), (C, A, 3), (A, C, 1). What does the switch do with each frame?

Cevabı göster
flood, port 1, port 1, port 3

Switch her çerçevenin kaynak adresini geldiği portla tabloya yazar, hedefi tabloda arar.
1) A→B: A=1 öğrenilir, B bilinmiyor → flood (1 hariç tüm portlar).
2) B→A: B=2 öğrenilir, A tabloda port 1 → sadece port 1.
3) C→A: C=3 öğrenilir, A port 1 → port 1.
4) A→C: C port 3 → port 3.

Soru 6orta

A switch receives a frame on port 4 whose destination MAC is already in the table, mapped to port 4. What does it do?

  1. Floods it to all ports
  2. Forwards it back out port 4
  3. Discards it (filtering)
  4. Sends an ARP request
Cevabı göster
C) Discards it (filtering)

Hedef, çerçevenin geldiği segmentte. Hedef çerçeveyi zaten görmüştür (aynı segment), switch'in iletmesine gerek yok: çerçeveyi atar. Buna filtering denir.

Soru 7kolay

Host H1 (IP 10.0.0.5) wants to send an IP datagram to 10.0.0.9 on the same LAN but does not know its MAC address. Which statement about ARP is correct?

  1. The ARP request is unicast to 10.0.0.9 and the reply is broadcast
  2. The ARP request is broadcast to FF:FF:FF:FF:FF:FF and the reply is unicast to H1
  3. Both request and reply are broadcast
  4. ARP queries a DNS server for the MAC address
Cevabı göster
B) The ARP request is broadcast to FF:FF:FF:FF:FF:FF and the reply is unicast to H1

H1 MAC'i bilmediği için soruyu herkese yayınlar: "10.0.0.9 kimde? Söyle 10.0.0.5'e."
Sadece 10.0.0.9 cevap verir, ve isteği soranın MAC'i istekte olduğu için cevabı doğrudan H1'e (unicast) yollar. H1 sonucu ARP cache'ine TTL ile yazar.

Soru 8zor

Host H1 (subnet 192.168.1.0/24) sends a datagram to a web server at 93.184.216.34. In the Ethernet frame that leaves H1, what are the destination IP and the destination MAC?

  1. IP of the server; MAC of the server
  2. IP of the router; MAC of the router
  3. IP of the server; MAC of H1's default gateway (router interface)
  4. IP of the router; MAC of the server
Cevabı göster
C) IP of the server; MAC of H1's default gateway (router interface)

Hedef başka bir alt ağda. H1 ARP'yi sunucu için değil, default gateway için yapar.
IP başlığı uçtan uca aynı kalır (hedef sunucu). MAC başlığı her linkte yeniden yazılır; bu linkte hedef router arayüzünün MAC'i.

Soru 9orta

Counting the 8-byte preamble and the 12-byte inter-frame gap as overhead, what fraction of the wire time carries payload for a maximum-size frame (1500-byte payload)?

Cevabı göster
≈ 97.53%

Çerçeve: 6+6+2+1500+4=15186+6+2+1500+4 = 1518 byte. Kabloda ayrıca 8 byte preamble ve 12 byte boşluk.1500/(1518+8+12)=1500/1538≈0.97531500 / (1518 + 8 + 12) = 1500 / 1538 \approx 0.9753.
Minimum payload'da (46 byte) 46/84≈54.76%46/84 \approx 54.76\%'ya düşer.

Soru 10kolay

How long does it take to transmit a maximum-size 1518-byte Ethernet frame (excluding preamble) at 100 Mbps?

Cevabı göster
121.44 µs

L=1518×8=12,144L = 1518 \times 8 = 12{,}144 bit. L/R=12144/108=1.2144×10−4L/R = 12144 / 10^8 = 1.2144 \times 10^{-4} s =121.44 μs= 121.44\ \mu s.

Soru 11zor

An attacker on the LAN keeps sending unsolicited ARP replies saying 'IP 192.168.1.1 is at the attacker's MAC'. What is the attack and a suitable defense?

  1. MAC flooding; increase the switch table size
  2. ARP spoofing (poisoning) enabling man-in-the-middle; Dynamic ARP Inspection or static ARP entries for the gateway
  3. DNS spoofing; use DNSSEC
  4. SYN flood; use SYN cookies
Cevabı göster
B) ARP spoofing (poisoning) enabling man-in-the-middle; Dynamic ARP Inspection or static ARP entries for the gateway

ARP'de kimlik doğrulama yok ve hostlar istemedikleri cevapları bile cache'e yazar. Kurbanlar gateway'e gidecek trafiği saldırgana yollar: araya girme (MITM), dinleme ya da değiştirme.
Savunma: switch'te Dynamic ARP Inspection (DHCP kayıtlarıyla eşleşmeyen ARP'yi düşür), kritik adresler için statik ARP, ve en önemlisi uçtan uca şifreleme (TLS), çünkü araya girse de okuyamaz.

Soru 12zor

A network has 3 hubs, each with 4 hosts, all connected to one 3-port switch. How many collision domains and how many broadcast domains are there?

Cevabı göster
3 collision domains, 1 broadcast domain

Hub tüm portlarını tek bir çarpışma alanında birleştirir. Switch'in her portu ayrı bir çarpışma alanıdır: 3 port → 3 çarpışma alanı (her hub ve hostları bir alan).
Switch broadcast'i bütün portlara iletir, yani hepsi tek broadcast alanı. Broadcast alanını bölen router (ya da VLAN).

Doğrulama: Çerçeve boyları, padding, verim, iletim süresi, MAC bit alanları (I/G, U/L) ve switch öğrenme izi node ile hesaplandı (verify/SEN2008/04.mjs). ARP ve çarpışma alanı soruları kavramsal; protokol tanımına göre kontrol edildi.

Deftere not kartı

Ethernet: [preamble 8][dst 6][src 6][type 2][data 46-1500][FCS 4] min çerçeve 64 B (pad ile), max 1518 B; FCS = CRC-32; preamble sayılmaz EtherType: 0800 IPv4, 0806 ARP, 86DD IPv6 MAC 48 bit: OUI (24) + seri (24). Broadcast FF:FF:FF:FF:FF:FF ilk byte en düşük bit 1 -> multicast; ikinci bit 1 -> locally administered Switch: KAYNAĞI öğren (MAC -> port, TTL), HEDEFİ ara: yok -> flood | aynı port -> filter (at) | başka port -> sadece oraya Hub: tek collision domain. Switch: port başına collision domain, tek broadcast domain Router ve VLAN broadcast domain'i böler ARP: istek broadcast, cevap unicast; cache TTL; sadece aynı alt ağ içinde Uzak hedef: dst IP = sunucu, dst MAC = default gateway ARP'de doğrulama yok -> ARP spoofing -> MITM (savunma: DAI, statik ARP, TLS) MAC flooding: CAM taşar, switch hub gibi flood eder (savunma: port security)