Ответ
В 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).