Компьютерные сети

Канальный уровень и Ethernet

2018 год, крупный банк. Атакующий получает физический доступ к сетевому порту в коридоре. Через ARP-spoofing он перехватывает трафик целого офисного сегмента. Атака работает потому, что MAC-адреса не аутентифицированы, а broadcast-домен слишком большой. Понимание канального уровня - это не академическая теория, это основа сетевой безопасности.

  • **ARP-spoofing**: подмена MAC в ARP-ответах - перехват трафика в локальной сети без взлома паролей
  • **CAM-table flooding**: заполнение MAC-таблицы коммутатора -> он начинает флудить как хаб
  • **VLAN hopping**: атаки на trunk-порты для перехода между изолированными сегментами
  • **Jumbo frames в дата-центрах**: 9000 байт вместо 1500 снижает CPU overhead при 10/40/100 Гбит/с трафике

Предварительные знания

  • The Physical Layer

Исторический контекст

Роберт Меткалф изобрёл Ethernet в 1973 году в Xerox PARC, вдохновившись ALOHAnet. Первый Ethernet работал на коаксиальном кабеле со скоростью 2.94 Мбит/с и использовал CSMA/CD для разрешения коллизий. В 1980 году DEC, Intel и Xerox стандартизировали DIX Ethernet (10 Мбит/с). Сегодня Ethernet - самый распространённый стандарт локальных сетей, определяющий всё от дата-центров до домашних роутеров.

MAC-адрес: уникальный идентификатор

2018 год. Атака ARP-spoofing в корпоративной сети - злоумышленник рассылает поддельные ARP-ответы, подменяя свой MAC-адрес адресом шлюза. Весь трафик офиса идёт через его машину. Атака возможна потому, что MAC-адреса не аутентифицированы на канальном уровне. Чтобы понять почему - нужно разобраться, что такое MAC.

Первый байт MAC содержит флаги: бит 0 (LSB) - unicast (0) или multicast (1); бит 1 - глобально уникальный (0) или локально назначенный (1). Broadcast-адрес: FF:FF:FF:FF:FF:FF.

MAC-адрес работает только в пределах одного сегмента сети (broadcast domain). Когда пакет пересекает маршрутизатор, MAC-адреса отправителя и получателя перезаписываются - остаётся только IP-адрес.

Пакет из Москвы в Нью-Йорк проходит через 15 маршрутизаторов. Что происходит с MAC-адресами на каждом маршрутизаторе?

Ethernet-фрейм: структура кадра

Ethernet-фрейм - это PDU канального уровня. Он содержит MAC-адреса источника и назначения, полезную нагрузку (обычно IP-пакет) и контрольную сумму CRC-32 для проверки целостности. Каждый байт зафиксирован стандартом IEEE 802.3.

MTU (Maximum Transmission Unit) Ethernet = 1500 байт. Если IP-пакет больше - он фрагментируется. Jumbo Frames (до 9000 байт) используются в дата-центрах для снижения overhead-а при большом трафике.

FCS (Frame Check Sequence) - это CRC-32 контрольная сумма, которую вычисляет отправитель и проверяет получатель. Если не совпадает - фрейм отбрасывается без уведомления. На L2 нет механизма повторной передачи - это задача TCP на L4.

Wireshark показывает фрейм с FCS mismatch. Что произойдёт с этим фреймом?

CSMA/CD: доступ к разделяемой среде

До появления коммутаторов (до 1990-х) все устройства в Ethernet делили одну шину - коаксиальный кабель. Если два устройства начинали передавать одновременно, сигналы накладывались - коллизия. CSMA/CD (Carrier Sense Multiple Access with Collision Detection) - алгоритм, который решал, кто и когда говорит.

Современный Ethernet - full duplex с коммутаторами. Каждое устройство имеет выделенный канал к коммутатору, коллизий нет. CSMA/CD не нужен и отключён. Но Wi-Fi до сих пор использует CSMA/CA (Avoidance).

Wi-Fi использует CSMA/CA (Collision Avoidance) вместо CD - нельзя обнаружить коллизию в радиоэфире, потому что передатчик 'оглушает' сам себя. Поэтому Wi-Fi старается избежать коллизии заранее через RTS/CTS и случайные паузы.

Офисная сеть 2024 года: все ПК через коммутатор. Активен ли CSMA/CD?

Collision Domain и Broadcast Domain

Два ключевых понятия сегментации сети: Collision Domain (область, где возможна коллизия) и Broadcast Domain (область, куда доходят broadcast-фреймы). Коммутатор разделяет первое, маршрутизатор - второе. Эта разница определяет дизайн любой корпоративной сети.

Broadcast Domain - область, где распространяются broadcast-фреймы (FF:FF:FF:FF:FF:FF). Коммутатор не ограничивает broadcast - все порты получат его. Разделяет broadcast domain только маршрутизатор или VLAN.

Чем больше broadcast domain - тем больше 'шума' в сети. ARP-запросы, DHCP-discover, NetBIOS - всё это broadcast. В сети на 1000 устройств broadcast storm может полностью положить сеть.

Коммутатор полностью изолирует устройства - broadcast не проходит между портами

Коммутатор изолирует unicast-трафик через MAC-таблицу, но broadcast (FF:FF:FF:FF:FF:FF) рассылается на все порты VLAN

Broadcast используется для ARP (кто имеет IP X?), DHCP Discover и других протоколов. Коммутатор обязан его форвардить по определению broadcast. Для изоляции broadcast нужны VLAN или маршрутизатор.

Какое устройство разделяет broadcast domain?

Ключевые идеи

  • MAC-адрес - 48-битный идентификатор сетевой карты (OUI + NIC). Работает только в локальной сети, перезаписывается на каждом маршрутизаторе
  • Ethernet-фрейм - контейнер с MAC-адресами (Src/Dst), EtherType, Payload и FCS (CRC-32). MTU = 1500 байт
  • FCS mismatch - фрейм молча отбрасывается без уведомления. Надёжность - задача TCP
  • CSMA/CD - алгоритм для shared media (хабы). В full-duplex коммутаторах не нужен
  • Коммутатор разделяет collision domain (каждый порт отдельный), маршрутизатор - broadcast domain

Что дальше

Освоили адресацию и фреймы. Следующий шаг - устройства, которые их обрабатывают:

  • Коммутаторы — MAC-таблица, STP, VLAN - умная коммутация фреймов
  • ARP протокол — Разрешение IP в MAC - мост между L2 и L3

Вопросы для размышления

  • Почему нельзя использовать MAC-адрес для маршрутизации в интернете, если он уникален?
  • ARP-таблица имеет TTL (время жизни записей). Почему нельзя хранить ARP-записи вечно?
  • Если broadcast domain очень большой - как это влияет на производительность сети и почему?

Связанные уроки

  • net-03-physical
  • net-05-switch
  • net-11-arp
  • net-06-ip-intro
  • sec-01
  • arch-02-logic-gates
Канальный уровень и Ethernet

0

1

Войти