book1

7.2.1 — MAC Address and Hexadecimal

Зачем hex в сетях?

  • IPv4 — десятичная система (192.168.1.1)
  • IPv6 и MAC-адреса — шестнадцатеричная (hex) система

MAC-адрес = 48 бит. Писать 48 нулей и единиц неудобно. Один hex-символ = 4 бита, значит весь MAC-адрес записывается всего 12 hex-символами.


Система счисления: hex

Hex использует символы: 0 1 2 3 4 5 6 7 8 9 A B C D E F

ДесятичноеДвоичноеHex
000000
910019
101010A
151111F

Один байт (8 бит) → 2 hex символа, диапазон 00FF:

Ведущие нули всегда пишутся: 0A, а не просто A.


Как конвертировать

Нет прямого способа decimal → hex “в уме”. Рабочий путь: decimal → binary → hex (или наоборот).

Пример: decimal 202 → binary 1100 1010 → hex CA


Обозначения hex в документации

Hex-числа можно записывать тремя способами:

  • С префиксом 0x: 0x73
  • С подстрочным 16: 73₁₆
  • С суффиксом H: 73H

Все три варианта означают одно и то же число.


7.2.2 — Ethernet MAC Address

Структура MAC-адреса

MAC-адрес = 48 бит = 12 hex-символов = 6 байт

Делится на две равные части по 24 бита (3 байта):

Пример Cisco:

  • OUI от IEEE: 00-60-2F
  • Уникальный код устройства: 3A-07-BC
  • Итоговый MAC: 00-60-2F-3A-07-BC

OUI — Organizationally Unique Identifier

abbreviation

Каждый производитель сетевого оборудования регистрируется в IEEE и получает свой уникальный OUI (первые 3 байта MAC). Это гарантирует глобальную уникальность адресов — при условии, что вендор правильно назначает уникальные коды для второй половины.

По OUI можно определить производителя устройства — именно это делают инструменты вроде arp -a или Wireshark, показывая “Cisco”, “Intel” и т.д. рядом с MAC-адресом.


Могут ли быть дубликаты MAC?

Теоретически нет, но на практике возможны из-за:

  • Ошибок на производстве
  • Виртуальных машин (VM генерируют MAC-адреса, которые могут совпасть)
  • Программного изменения MAC (MAC spoofing)

В таком случае нужно заменить NIC или изменить MAC программно.


Форматы записи MAC-адреса

Все три варианта — одно и то же:

  • 00-60-2F-3A-07-BC (через дефис, Windows)
  • 00:60:2F:3A:07:BC (через двоеточие, Linux)
  • 0060.2F3A.07BC (через точку, Cisco IOS)

7.2.3 — Frame Processing

BIA — Burned-In Address

abbreviation

MAC-адрес называют BIA (Burned-In Address) — потому что он “прожигается” в ROM-чип NIC на заводе. При загрузке компьютера NIC копирует его из ROM в RAM для использования.

⚠️ На современных ОС MAC-адрес можно изменить программно. Поэтому фильтрация сети только по MAC — не является надёжной защитой.


Как NIC обрабатывает входящий фрейм

Когда NIC получает фрейм, она проверяет Destination MAC:

Фрейм получен
     ↓
Destination MAC совпадает с моим MAC?
     ↓ Да                    ↓ Нет
Принять фрейм →         Отбросить фрейм
передать вверх
по стеку OSI

Из диаграммы: H1 (MAC: AA:AA:AA:AA:AA:AA) отправляет фрейм на H3 (MAC: CC:CC:CC:CC:CC:CC).

  • H3: “Это мой адрес → принимаю” ✅
  • H2, H4: “Не мой адрес → игнорирую” ❌

Исключения — NIC также принимает фреймы если Destination MAC:

  • Broadcast (FF:FF:FF:FF:FF:FF) — адресовано всем
  • Multicast — адресовано группе, членом которой является хост

У каких устройств есть MAC-адрес?

У любого устройства, которое является источником или назначением Ethernet-фрейма: ПК, серверы, принтеры, смартфоны, роутеры. Все они имеют NIC → у всех есть MAC.


7.2.4–7.2.6 — Unicast, Broadcast, Multicast MAC

Три типа MAC-адресов


Unicast (один к одному)

Фрейм от одного устройства к одному конкретному устройству.

Чтобы узнать MAC-адрес по IP-адресу: ARP (для IPv4) или Neighbor Discovery / ND (для IPv6).

Source MAC всегда unicast — устройство не может “притвориться” группой при отправке.


Broadcast (один ко всем)

Фрейм получают все устройства в LAN-сегменте.

Dest MAC: FF-FF-FF-FF-FF-FF (все 48 бит = 1) Dest IP: 192.168.1.255 (все биты хостовой части = 1)

Поведение: коммутатор рассылает на все порты кроме входящего. Роутер не пересылает broadcast дальше — ограничивает broadcast-домен.

Примеры использования: DHCP (клиент ищет сервер), ARP (запрос “у кого IP X?”).

Не все Ethernet broadcast содержат IPv4 broadcast — например, ARP-запрос идёт как Ethernet broadcast, но сам не является IP-пакетом.


Multicast (один к группе)

Фрейм получают только устройства, подписанные на multicast-группу.

ПротоколDest MAC prefixDest IP range
IPv4 multicast01-00-5E-xx-xx-xx224.0.0.0239.255.255.255
IPv6 multicast33-33-xx-xx-xx-xxff00::/8
STP, LLDPСпециальные зарезервированные MAC

Из диаграммы: H1 отправляет на 224.0.0.200, Dest MAC = 01-00-5E-00-00-C8. Часть хостов принимает (галочки), часть нет (красные крестики) — только члены группы.

Коммутатор по умолчанию рассылает multicast как broadcast (на все порты), но если настроен multicast snooping — только на нужные порты. Роутер не пересылает multicast, если не настроен для этого.


Итого:

ТипDest MACКто получаетRouter пересылает?
UnicastКонкретный MAC1 устройство✅ Да
BroadcastFF:FF:FF:FF:FF:FFВсе в LAN❌ Нет
Multicast01-00-5E… / 33-33…Члены группы⚠️ Только если настроен

computernetworks