linuxlab.io
Учебники▾
  • Линукс и сети
    Файловая система, процессы, TCP/IP, BGP и OSPF
    →
  • Terraform и IaC
    HCL, state, plan/apply на sandbox LocalStack
    →
  • Git и GitHub
    Объектная модель, plumbing, ветвление, GitHub Actions
    →
Все учебники →
ЦеныО платформеВойтиСоздать аккаунт
/
  • Введение
  • Уроки
  • How it works
  • Симулятор
  • База знаний
  • Собеседование
Index
Categories
All entries
Footer
linuxlab-УчебникиЦеныО платформеКонфиденциальность и куки
Copyright © 2026 LinuxLab. Все права защищены.
home/linux/kb/Сеть: L2 / L3/mac-address

kb/network-l2-l3 ── Сеть: L2 / L3 ── beginner

MAC address

MAC - 48-битный аппаратный адрес сетевой карты, формат `aa:bb:cc:dd:ee:ff`. Уникален в пределах L2-сегмента, используется в [[ethernet-frame]] для адресации L2.

view as markdownaka: mac, hardware-address, ll-address

Структура

48 бит = 6 байт, обычно записывается шестнадцатерично через двоеточие или дефис: aa:bb:cc:dd:ee:ff.

  • Первые 3 байта - OUI (Organizationally Unique Identifier), выдаются IEEE производителям (Cisco, Intel, Dell, ...). По OUI можно найти вендора: https://www.wireshark.org/tools/oui-lookup.html
  • Последние 3 байта - серийник от производителя

Специальные значения

  • ff:ff:ff:ff:ff:ff - broadcast (все на сегменте)
  • 01:00:5e:xx:xx:xx - IPv4 multicast (используется протоколами вроде ospf, ip multicast)
  • 33:33:xx:xx:xx:xx - IPv6 multicast
  • Locally administered (второй младший бит первого октета, U/L bit) - адрес НЕ глобально уникальный, выдан админом локально. Так делают VM/container managers (Docker, libvirt). Видно по форматам типа 02:42:... (Docker, 0x02 = …10) или 0a:... (0x0a = …10).

ip link и MAC

В Linux MAC живёт «на интерфейсе», не «на IP». Один интерфейс = один MAC (исключение: macvlan/macvtap создают доп. виртуальные карты).

bash
ip -br link
# eth0  UP  fe:80:42:...      ← lladdr
# lo    UNKNOWN  00:00:...    ← у loopback нулевой MAC
cat /sys/class/net/eth0/address    # тот же MAC через sysfs

Можно сменить (если NIC поддерживает):

bash
sudo ip link set eth0 down
sudo ip link set eth0 address aa:bb:cc:00:11:22
sudo ip link set eth0 up

Зачем менять - MAC spoofing в обход 802.1x, тесты, обход MAC-allowlist у провайдера.

Диапазон видимости MAC

MAC - L2-адрес, виден только в одном broadcast-домене (между коммутаторами). Когда пакет проходит через роутер, его destination MAC на каждом hop'е переписывается на MAC следующего роутера. Source MAC тоже меняется. IP-адреса же сохраняются от первого до последнего hop'а (исключение - nat).

§ команды

bash
ip -br link

Все интерфейсы с их MAC-адресами одной строкой

bash
cat /sys/class/net/eth0/address

MAC через sysfs (без парсинга `ip` вывода)

bash
ip neigh | awk '{print $5}'

Все MAC-адреса соседей которых мы знаем (см. [[arp]])

bash
sudo ip link set eth0 address de:ad:be:ef:00:01

Поменять MAC интерфейса (требует down → set → up)

§ см. также

  • arpARP - Address Resolution ProtocolARP отвечает на вопрос «у кого MAC = ?» для конкретного IP в одной сети. Linux хранит результат в neighbor-таблице (`ip neigh`).
  • ethernet-frameEthernet frameEthernet-frame - единица передачи на L2: dst-MAC, src-MAC, ethertype, payload (обычно IP-пакет), FCS-checksum. Стандартный MTU = 1500 байт.
  • vlan-and-trunkVLAN и trunk - 802.1QVLAN - логическое разделение одного физического свитча на несколько L2. Tag 802.1Q добавляет 4 байта в Ethernet-frame с VLAN-ID (12 бит, до 4094 VLAN). Trunk = много VLAN на порте, access = один.
  • linux-bridgeLinux bridge - программный свитчBridge - программный L2-свитч в ядре Linux. Учит MAC в FDB, форвардит фреймы между интерфейсами. Основа Docker default network, KVM bridge, libvirt. С vlan_filtering эмулирует управляемый свитч.
  • bonding-and-teamingBonding и teaming - объединение интерфейсовBonding объединяет несколько физических интерфейсов в один логический. Режимы: active-backup (один активный), 802.3ad/LACP (LAG со свитчем), balance-xor (хэш по MAC). Используется для HA и удвоения throughput.

§ упоминается в уроках

  • ›intermediate-03-three-node-routing
Footer
linuxlab-
Copyright © 2026 LinuxLab. Все права защищены.
Учебники
Цены
О платформе
Конфиденциальность и куки