markdown
MAC-ARP-a-prepinani.md
markdown
# MAC adresy, ARP a přepínání Tohle je vrstva 2, tedy to, co se děje uvnitř jedné sítě mezi zařízeními, která se navzájem vidí na drátě. Většina lidí ji přeskočí a pak nechápe, proč jim nefunguje něco, co „přece má správnou IP adresu". ## MAC adresa Každá síťová karta má od výroby přidělené číslo, které ji identifikuje. Vypadá takhle: ```a4:83:e7:2c:19:f0``` Šest bajtů zapsaných hexadecimálně. První tři bajty patří výrobci — `a4:83:e7` je Apple. Podle nich se dá odhadnout, co je to za zařízení, což je občas užitečné, když ve seznamu klientů koukáš na neznámou položku. Zásadní rozdíl proti IP adrese: **MAC adresa je natrvalo přidělená zařízení, IP adresa je přidělená jeho pozici v síti.** Když vezmeš notebook a připojíš ho jinde, MAC zůstane a IP se změní. Je to podobné jako rodné číslo versus adresa bydliště. ### Randomizace Moderní telefony a notebooky si na WiFi generují náhodné MAC adresy pro každou síť zvlášť, aby se nedaly sledovat mezi místy. Je to dobrá věc pro soukromí a nepříjemná věc, když si stavíš pravidla nebo rezervace podle MAC adres. U vlastní domácí sítě to většinou vypneš na straně klienta — v iOS je to „Soukromá adresa Wi-Fi", v Androidu „Používat náhodné MAC". ## Proč nestačí IP adresa Když počítač chce něco poslat, ví cílovou IP adresu. Jenže když ten rámec pouští do kabelu, musí ho adresovat MAC adresou, protože Ethernet o IP adresách vůbec neví. Potřebuje tedy překlad z IP na MAC. Ten dělá **ARP**. ## ARP Funguje to prostě a překvapivě hrubě. Počítač pošle rámec na broadcastovou MAC adresu `ff:ff:ff:ff:ff:ff`, což znamená „všem v tomhle segmentu", a v něm je otázka: kdo má IP adresu `192.168.1.1`? Všichni to dostanou, skoro všichni to zahodí, a ten jediný, kdo tu adresu má, odpoví svojí MAC adresou. Odpověď se uloží do ARP tabulky, obvykle na jednotky minut. Podívat se na ni můžeš takhle: ```ip neigh # Linuxarp -a # Windows, macOS``` ### Co to znamená prakticky ARP funguje **jen uvnitř jednoho segmentu**. Nikdy se nedostane přes router. To je definice toho, co je „tvoje síť": prostor, kam dosáhne broadcast. Proto když ti nefunguje komunikace se zařízením, které je podle IP adresy ve stejné síti, je jedna z prvních věcí zkontrolovat ARP tabulku. Prázdný nebo neúplný záznam znamená problém na vrstvě 2 — špatná VLANa, vadný kabel, izolace klientů na WiFi. ### Duplicitní IP Když dvě zařízení dostanou stejnou IP adresu, na ARP dotaz odpoví obě. Výsledkem je síť, která funguje střídavě podle toho, čí odpověď dorazila poslední. Projevuje se to jako naprosto nevysvětlitelné výpadky. Většina operačních systémů to dnes hlásí, ale ne vždy nápadně. ### ARP spoofing Na ARP odpověď nemá nikdo nárok si stěžovat — protokol nemá žádné ověřování. Kdokoliv v tvé síti může tvrdit, že je brána, a odchytávat tak provoz ostatních. Tohle je hlavní důvod, proč se [odděluje IoT do vlastní VLANy](VLANy). Levná čínská zásuvka s děravým firmwarem v tvé hlavní síti není teoretické riziko. ## Switch Switch je zařízení, které rozhoduje podle MAC adres. Když dostane rámec, podívá se na cílovou MAC adresu a pošle ho **na jediný port**, kde to zařízení podle své tabulky je. Ostatní porty o tom neví. ### Jak se to naučí Switch se nekonfiguruje, učí se sám. Když dostane rámec, poznamená si zdrojovou MAC adresu a port, ze kterého přišel. Tím si postupně staví tabulku. Když dostane rámec pro MAC adresu, kterou nezná, pošle ho na všechny porty a čeká. Ta odpověď mu prozradí, kde adresát je. Záznamy se po pár minutách nečinnosti zapomínají, aby tabulka nezastarala, když zařízení přesuneš. ### Co switch nedělá Nedívá se na IP adresy. Nefiltruje podle nich. Neomezuje přístup mezi zařízeními, pokud mu k tomu nedáš [VLANy](VLANy). To je důvod, proč mezi dvěma zařízeními ve stejné síti nemá firewall v routeru šanci nic zakázat — jejich provoz do routeru vůbec nedorazí. Zůstane ve switchi. Tohle je jedna z nejčastěji přehlédnutých věcí při stavbě domácí sítě. Pravidlo „kamera nesmí na NAS" nefunguje, když jsou obě ve stejné VLANě. ## Broadcastová doména Prostor, kam se dostane broadcast, se jmenuje broadcastová doména. Switch ji nedělí — jen router nebo VLANa. Prakticky: čím víc zařízení v jedné síti, tím víc broadcastu se vysílá všem. U desítek zařízení je to jedno. U stovek už to začne škodit. Doma se s tím nesetkáš, ale je to důvod, proč se ve firmách sítě dělí.