Где используется MAC-адрес?

«Где используется MAC-адрес?» — вопрос из категории Сети, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В DevOps и администрировании инфраструктуры MAC-адрес (аппаратный адрес) — это ключевой идентификатор на канальном уровне (L2), который я использую для:

1. Коммутация в локальной сети (Ethernet):

  • Коммутаторы (switches) строят таблицу MAC-адресов (CAM-table), чтобы направлять кадры Ethernet только на порт, где находится устройство-получатель, а не на все порты.

2. Безопасность и контроль доступа:

  • MAC-фильтрация на Wi-Fi точках доступа и коммутаторах для разрешения или запрета подключения конкретных устройств.
  • В облачных провайдерах (AWS, GCP) MAC-адрес виртуального сетевого интерфейса (ENI) может использоваться для лицензирования ПО, привязанного к "железу".

3. Автоматическая конфигурация сети (DHCP):

  • DHCP-сервер может выдавать постоянный (статический) IP-адрес, привязанный к MAC-адресу конкретного сервера или устройства (dhcpd.conf или isc-dhcp-server).

4. Отслеживание и мониторинг:

  • В инструментах мониторинки сети (например, arpwatch) для обнаружения новых устройств или ARP-спуфинга.
  • В системах управления конфигурациями (например, Ansible facts) для уникальной идентификации хоста в инвентаре.

5. Виртуализация и контейнеризация:

  • Гипервизоры (KVM, VMware) генерируют MAC-адреса для виртуальных сетевых карт (vNIC).
  • Docker по умолчанию также генерирует MAC-адрес для каждого контейнерного интерфейса (bridge network).

Практический пример (Linux):

# Просмотр MAC-адресов всех интерфейсов
ip link show
# или
cat /sys/class/net/eth0/address

# Использование в Ansible для сбора фактов
ansible all -m setup -a "filter=ansible_macaddress_*"

Важно: MAC-адрес работает только в пределах одного широковещательного домена (L2-сети). Для маршрутизации между сетями используется IP-адрес (L3).