Каждое оборудование в вашей локальной сети имеет MAC-адрес в дополнение к IP-адресу, назначенному ему локальным маршрутизатором или сервером. Для чего именно нужен этот MAC-адрес?
Сегодняшняя сессия вопросов и ответов проходит благодаря SuperUser - подразделению Stack Exchange, группы веб-сайтов вопросов и ответов, управляемой сообществом.
Вопрос
Читателю SuperUser Вишну Вивек интересно узнать о MAC-адресах и их функциях:
Я понимаю, что IP-адреса являются иерархическими, поэтому маршрутизаторы в Интернете знают, в каком направлении пересылать пакет. В MAC-адресах нет иерархии, и поэтому пересылка пакетов невозможна. Таким образом, MAC-адреса не используются для передачи пакетов.
Я не думаю, что он сидит там без причины. Итак, мой вопрос: где именно MAC-адрес играет роль во время передачи пакетов?
Где действительно? Какова конкретная функция MAC-адреса?
Ответ
Участник SuperUser Вернер Хенце предлагает некоторое представление о функции MAC-адреса:
Для чего используются MAC-адреса?
MAC-адреса - это основы низкого уровня, которые заставляют вашу сеть на основе Ethernet работать.
У каждой сетевой карты есть уникальный MAC-адрес. Пакеты, отправляемые по сети Ethernet, всегда приходят с MAC-адреса и отправляются на MAC-адрес. Если сетевой адаптер получает пакет, он сравнивает MAC-адрес назначения пакета с собственным MAC-адресом адаптера. Если адреса совпадают, пакет обрабатывается, в противном случае он отбрасывается.
Существуют специальные MAC-адреса, например, ff: ff: ff: ff: ff: ff, который является широковещательным адресом и адресует каждый сетевой адаптер в сети.
Как IP-адреса и MAC-адреса работают вместе?
IP - это протокол, который используется на уровне выше Ethernet. Другой протокол, например, будет IPX.
Когда ваш компьютер хочет отправить пакет на какой-то IP-адрес x.x.x.x, то сначала проверяется, находится ли адрес назначения в той же IP-сети, что и сам компьютер. Если x.x.x.x находится в той же сети, тогда IP-адрес назначения может быть достигнут напрямую, в противном случае пакет необходимо отправить на настроенный маршрутизатор.
До сих пор дела, кажется, стали еще хуже, потому что теперь у нас есть два IP-адреса: один - это целевой адрес исходного IP-пакета, другой - IP-адрес устройства, на которое мы должны отправить пакет (следующий переход, либо последний пункт назначения или маршрутизатор).
Поскольку Ethernet использует MAC-адреса, отправителю необходимо получить MAC-адрес следующего перехода. Для этого используется специальный протокол ARP (протокол разрешения адресов). Как только отправитель получил MAC-адрес следующего прыжка, он записывает этот целевой MAC-адрес в пакет и отправляет его.
Как работает ARP?
Сам по себе ARP является протоколом выше Ethernet, например IP или IPX. Когда устройство хочет узнать MAC-адрес для данного IP-адреса, оно отправляет пакет на широковещательный MAC-адрес с вопросом: «У кого есть IP-адрес y.y.y.y?» Все устройства получат этот пакет, но только одно с IP-адресом y.y.y.y ответит пакетом «Это я». Запрашивающее устройство получает ответ и теперь знает, что исходный MAC-адрес является правильным MAC-адресом для использования. Конечно, результат будет кэширован, поэтому устройству не нужно каждый раз определять MAC-адрес.
Маршрутизация
Чуть не забыл упомянуть: маршрутизации по MAC-адресам нет. Ethernet и MAC-адреса низкого уровня могут достигать только каждого устройства на те же самые сеть (проводная или беспроводная). Если у вас есть две сети с маршрутизатором между ними, у вас не может быть устройства в сети A, чтобы отправить пакет на MAC-адрес устройства в сети B. Ни одно устройство в сети A не имеет MAC-адреса устройства в сети B, поэтому a Пакет на этот MAC-адрес будет отклонен всеми устройствами в сети A (также маршрутизатором).
Маршрутизация выполняется на уровне IP. Просто видно, что маршрутизатор просто выполняет то, что я описал выше в разделе «Как IP-адреса и MAC-адреса работают вместе?». Маршрутизатор будет получать пакеты для своего собственного MAC-адреса, но для другого IP-адреса. Затем он проверит, может ли он напрямую связаться с целевым IP-адресом. Если это так, он отправляет пакет адресату. В противном случае на самом маршрутизаторе также настроен восходящий маршрутизатор и он отправит пакет на этот маршрутизатор.
Конечно, вы можете настроить несколько маршрутизаторов. На вашем домашнем маршрутизаторе будет настроен только один восходящий маршрутизатор, но в магистрали Интернета у больших маршрутизаторов есть большие таблицы маршрутизации, поэтому они знают лучшие способы для всех пакетов.
Другие варианты использования MAC-адресов
- Сетевые коммутаторы хранят список MAC-адресов, видимых на каждом порту, и пересылают пакеты только на те порты, которые должны видеть пакет.
- Точки беспроводного доступа часто используют MAC-адреса для управления доступом. Они разрешают доступ только для известных устройств (MAC-адрес уникален и идентифицирует устройства) с правильной парольной фразой.
- DHCP-серверы используют MAC-адрес для идентификации устройств и присваивают некоторым устройствам фиксированные IP-адреса.