Почему нельзя использовать MAC-адреса вместо IPv4 | 6 для работы в сети? [закрыто]

184

Я читаю по TCP / IP и другим связанным протоколам и технологиям. MAC-адреса описываются как (разумно :) уникальные и имеющие большое пространство возможностей (несколько сотен триллионов), а также назначаются всем сетевым интерфейсам. Каковы исторические и технические причины, по которым адреса IPv4 или IPv6 используются вместо MAC-адресов для межсетевого взаимодействия?

Я упускаю что-то фундаментальное или это просто глупая причина (например, построение на основе устаревших технологий)?

Феликс Сапарелли
источник
55
Педантичная коррекция: достаточно уникальная; карты с одинаковыми HW MAC-адресами были замечены в дикой природе - это «веселая» проблема сети для отладки.
Писквор
9
Я лично был свидетелем глючного драйвера, который фактически назначал один и тот же MAC-адрес различным сетевым картам на разных компьютерах (которые имели уникальные HW-адреса до установки этого драйвера). Ну, это было больно .
Массимо
3
Массимо, я видел то же самое. Это не редкость, когда драйвер делает это в процессе разработки, а программисты забывают повернуть этот компонент, когда он начинает работать. @ Феликс, производители также часто используют MAC со временем и в разных частях мира. Например, карта, проданная в 2005 году в США, может иметь тот же MAC, что и карта, проданная в Китае в 2013 году.
Роберт Каучер
30
Обращение к пакету с MAC-адресом было бы похоже на обращение к письму с номером социального страхования.
Майки
14
Как бы вы узнали, где сейчас находится конкретный MAC-адрес? Заранее, без необходимости уведомлять каждый узел в Интернете, когда вы переходите в другую сеть?
Турбьерн Равн Андерсен

Ответы:

345

MAC-адрес может быть уникальным, но в числе нет ничего особенного, что указывало бы, где он находится. MAC 00-00-00-00-00-00может быть на другой стороне планеты от 00-00-00-00-00-01.

IP - это произвольная схема нумерации, наложенная иерархически на группу компьютеров, чтобы логически выделить их как группу (то есть подсеть). Отправка сообщений между этими группами осуществляется с помощью таблиц маршрутизации, которые разделены на несколько уровней, поэтому нам не нужно отслеживать каждую подсеть. Например, 17.x.x.xв сети Apple. Оттуда Apple узнает, где находится каждая из ее тысяч подсетей и как к ним добраться (никто другой не должен знать эту информацию, им просто нужно знать, что 17. все идет в Apple).

Также довольно легко связать это с другой парой систем. У вас есть выданный государством идентификационный номер. Зачем вам нужен почтовый адрес, если этот идентификационный номер уже уникален только для вас? Вам нужен почтовый адрес, потому что это произвольная система, которая описывает, куда должен направляться уникальный адрес для связи с вами.

Крис С
источник
23
Это отличный ответ. Я бы добавил, что MAC-адреса в конечном итоге используются в IP-коммуникациях, когда компьютеры определяют, что они находятся в одной подсети; Вот почему отравление ARP работает как атака. То же самое со шлюзом по умолчанию, компьютер адресует пакеты, предназначенные для другой подсети, по MAC-адресу, возвращенному поиском ARP для IP-адреса шлюза по умолчанию. Адресация уровня 3 / IP в основном используется маршрутизаторами и используется только хостом для определения того, находится ли пункт назначения в той же подсети.
Шон К.
7
@SeanC, MAC-адреса в конечном итоге используются в IP-коммуникациях по линейным протоколам на основе 802.1 (Ethernet, WiFi, Token Ring и т. Д.). Но не через протоколы ATM, такие как PoSDH и IPoATM.
Крис С
25
Кроме того, вы можете сохранить тот же IP-адрес, когда ваша сетевая карта (или весь компьютер) нуждается в замене. Представьте, как это будет раздражать без абстракции IP.
OrangeDog
3
@ChrisS У меня есть друг, который как системный администратор получил партию карт от одного поставщика, и у карт был только один MAC-адрес во всей палитре. Продавец сказал, что карты не были правильно добавлены в розничную сеть, так что были дубликаты, так как заказ был доставлен напрямую с завода. До того, как карты пошли в розничную дистрибуцию, они должны были смешаться, чтобы распространить обманщиков. Так что для данного поставщика MAC-адреса не уникальны, а тем более у разных поставщиков.
4
Существуют различные исторические причины появления дублированных mac-адресов, в том числе ошибки встроенного ПО производителя .
Майк Пеннингтон
73

Потому что таблицы маршрутизации станут невероятно большими.

IP-адреса распределяются иерархически, поэтому маршрутизатор может группировать маршруты по префиксам адресов. Количество автономных систем, присутствующих в сети, в настоящее время достаточно разумно, чтобы соответствовать современному оборудованию.

С другой стороны, распределение MAC-адресов по сети является случайным и совершенно не связано с топологией. Группировка маршрутов была бы невозможна, каждый маршрутизатор должен был бы отслеживать маршруты для каждого устройства, которое передает трафик через него. Это то, что делают коммутаторы уровня 2, и это не масштабируется далеко за пределы определенного количества хостов.

b0fh
источник
Вы можете остановиться на этом? С чего бы им? Почему это не так с IPv *?
Феликс Сапарелли
2
Нет никакой внутренней причины, по которой таблицы маршрутизаторов, использующие адрес в формате MAC, были бы «невероятно большими» по сравнению с форматами IPv4 / 6. Проблема заключается в том, что распределение IP-адресов связано с иерархией, которая делает возможным использование WAN-маршрутизации. MAC-адреса назначаются для устройств Ethernet изготовителями (и могут быть изменены программно), и, поскольку аппаратное устройство перемещается, внесение этих специальных изменений в таблицы маршрутизации WAN будет «невероятно большой» задачей.
hardthth
34

Мир не работает исключительно по сети Ethernet (по крайней мере, исторически). Уровень IP не зависит от уровня оборудования под ним.

Узлы PPP не имеют адресов Mac. Никто не делает arcnet, Token Ring, fddi, hppi. Эти другие стандарты могут быть не такими подходящими сегодня, но Ethernet может быть заменен другими технологиями в будущем, и это будет прозрачно для уровня IP.

Существует более продолжительная дискуссия о том, как мы продолжаем изобретать новые аппаратные протоколы и называть их Ethernet, но я отвлекся ...

Джефф Сакстедер
источник
5
Token Ring имеет MAC-адреса.
Крис С
Вы имеете в виду, что они также не могут переключиться на ipv6, потому что у узла PPP нет адреса v6? (Или, по крайней мере, не было 5-10 лет назад). Насколько я могу судить, это никогда не останавливало развертывание ipv6 сегодня. Это также не имеет значения для MAC.
Дорус
6
@Dorus: Ваш комментарий не имеет смысла. Узлы PPP могут иметь адреса как IPv4, так и IPv6, именно потому, что IP строится на базовых протоколах, таких как Ethernet или PPP. Однако узлы PPP не имеют MAC-адреса (потому что стандарт PPP не имеет их).
слесье
Спустя 3 года (и немного более знающих), я хотел бы прочитать эту «более длительную дискуссию о том, как мы продолжаем изобретать новые аппаратные протоколы и называть их Ethernet». ; P
Феликс Сапарелли
Это хорошее начало - standard.ieee.org/events/ethernet/history.html
Джефф Сэкстедер,
30

В дополнение к иерархической маршрутизации IP, их отделение от MAC-адресов позволяет вам менять сетевую карту или весь компьютер, сохраняя тот же IP-адрес (и, следовательно, логическую топологию сети).

Эта абстракция обеспечивает гораздо более гибкую и удобную поддержку сетей.

OrangeDog
источник
22

Взгляните на модель OSI : http://en.wikipedia.org/wiki/OSI_model

Это объясняет, почему не имеет смысла делать маршрутизацию, концепцию уровня 3, решения, основанные на физическом механизме уровня 2.

Современное сетевое взаимодействие разбито на множество разных уровней, чтобы обеспечить вам сквозное общение. Ваша сетевая карта (по адресу с MAC-адресом [физический адрес]) должна отвечать только за связь со сверстниками в своей физической сети.

Связь, которую вам разрешено осуществлять с вашим MAC-адресом, будет ограничена другими устройствами, которые находятся в пределах физического контакта с вашей машиной. Например, в Интернете вы физически не связаны с каждой машиной. Вот почему мы используем механизм TCP / IP (уровень 3, логический адрес), когда нам нужно общаться с машиной, к которой мы физически не подключены.

barancw
источник
6
+1 за упоминание модели OSI.
Массимо
7

b0fh прав - но также потому, что MAC-адреса не всегда уникальны.

Смотрите, например, в сценариях виртуализации. Здесь несколько хостов могут обслуживать виртуальные машины с одинаковыми MAC-адресами.

Фредерик Нильсен
источник
4

Таблицам маршрутизации для MAC-адресов потребуется почти каждое устройство с указанным MAC-адресом. Маршрутизация в Интернет по IP ведется одной записью 0.0.0.0/0. Для классов сетей они делятся на 10.0.0.0/8 172.16.0.0/16 и 192.168.0.0/24. Многие из них могут быть агрегированы, например 172.16.0.0/12 и 192.168.0.0/16, что дополнительно уменьшает размер таблицы маршрутизации.

Маршруты ищутся в обратном порядке по числу битов в их маске. Это заставляет работать маршрутизацию до 192.168.100.0/24, когда существует маршрут для 192.168.0.0/16 и другой для 0.0.0.0/0 (маршрут по умолчанию).

РЕДАКТИРОВАТЬ: Первоначально, диапазон IP был разбит на несколько классов; А, В и С являются наиболее значимыми. Класс A составлял первую половину диапазона адресов, диапазон B - следующий квартал, а диапазон C - следующие восемь диапазонов. Эти классы имели маски 8, 16 и 24 бита соответственно. Позже строгое использование этих масок было прекращено, и распределение адресов было сделано в различных размерах.

Размер распределения всегда является степенью 2, а самый низкий и самый высокий адреса в каждом распределении зарезервированы. Каждое распределение также будет иметь адрес для маршрутизатора. Часто это самый низкий или самый высокий незарезервированный адрес. Наименьшее практическое распределение - это адрес / 30.

IPv6 использует ту же форму размещения с / 64 наименьшее распределение, которое может появиться в Интернете. Как правило, и провайдеру будет предоставлено гораздо большее распределение, о котором все интернет-маршрутизаторы должны знать. Ожидаемые отчисления указаны в RFC. Интернет-провайдеру необходимо знать, как маршрутизировать свою собственную подсеть и какие адреса направлять на какие соединительные маршрутизаторы. Это значительно проще, чем знать, как маршрутизировать каждый MAC-адрес.

BillThor
источник
7
В сети больше нет классов , и их не было с 1994 года. = [
Chris S
@ChrisS IPv4 PTR все еще выполняется поиск по классам, хотя делегирование возможно. Агрегации по-прежнему применяются с классами или без них, а агрегации B и C по-прежнему применяются даже до бесклассовых сетей.
BillThor
2
Поиск PTR выполняется Octet, классов нет. См. RFC с 1517 по 1520.
Крис С.
2
@ChrisS Среди людей, с которыми я работаю, классы используются для обозначения количества октетов в маске сети A = 1, B = 2 и C = 3. Мы не связываем их с историческими диапазонами и разбиваем класс A 10.0.0.0 на куски B и C. Классы живут в традициях, если не в их первоначальном значении.
BillThor
2

Я думаю, что главное, что они пытаются донести, - это то, что MAC-адреса определяются поставщиками, поэтому в локальной подсети отсутствует согласованная схема адресации из-за огромного разнообразия производителей, которые создают интерфейсы.

MAC-адреса используются, когда адрес назначения находится в локальной подсети (например, 192.168.0.x). Когда трафик не соответствует локальной подсети, компьютер обращается к таблице маршрутизации. Обычно таблица маршрутизации сообщает любому трафику, который не соответствует локальной подсети (0.0.0.0), направляться к локальному шлюзу, после чего любая принадлежность к MAC-адресам полностью удаляется. Единственный способ использовать MAC-адреса в глобальном масштабе - это иметь одну огромную плоскую подсеть, которая была бы полностью неработоспособна.

Алекс Берри
источник
2

MAC-адрес может быть одинаковым на разных адаптерах Ethernet на одной машине. У SUN был один уникальный MAC-адрес для каждой машины. Таким образом, у сетевых карт для компьютеров SUN не было уникального MAC-адреса, как у машины.

Поэтому, когда вы подключили аппарат к двум разным сетям, у него был одинаковый MAC-адрес в обеих сетях.

Андерс
источник
2

MAC - адрес адрес канального уровня (2n) в модели ISO / OSI и модели TCP / IP . Это означает, что MAC-адреса используются для подключения узлов внутри локальной сети (точка-точка). IP-адреса - это адреса сетевого уровня (3-го) внутри Интернета (сквозной).

Оба адреса используются только в своем слое и не предназначены для использования вне его.

выйти
источник
1

MAC-адрес целевого IP-адреса полезен только для доставки пакетов в пределах одного локального широковещательного домена.

mr_eclair
источник
1

Люди здесь заявили, что проблема использования MAC-адресов вместо IPv4-адресов заключается в маршрутизации, потому что таблицы маршрутизации вырастут большими - однако это предполагает использование маршрутизаторов IPv4. Можно иметь небольшие таблицы маршрутизации, и если вам интересно, как искать плоскую маршрутизацию в пространстве имен. Вот одна из статей, описывающих эту технику: http://www.cs.uiuc.edu/~caesar/papers/rofl.pdf

Никола Кнежевич
источник
2
ROFL предлагает, чтобы каждый маршрутизатор внутри AS отслеживал каждый хост внутри этой AS ... И использовал криптографические хеши для идентификаторов хостов ... Таким образом, не только будут миллионы записей в таблицах маршрутизации и чудовищных требованиях к передаче / обслуживанию, но криптографические алгоритмы необходимы для интерпретации таблицы. Автор сошел с ума. У IP могут быть недостатки, но, по крайней мере, в базовом дизайне нет безумных предположений.
Крис С
В ROFL только маршрутизаторы первого перехода должны сохранять набор подключенных узлов, а не всех узлов в AS. В разделе № 2 упоминается кэширование, но это оптимизация. Криптография необходима только тогда, когда узлы присоединяются к маршрутизатору, а не для интерпретации таблицы маршрутизации. Маршрутизация выполняется на DHT, который намного более устойчив, чем иерархическая маршрутизация.
Никола Кнежевич
1

Я помню, что MAC-адреса на самом деле являются адресами Ethernet. Адреса Ethernet делятся на две части: часть поставщика - которая идентифицирует продавца карты Ethernet и часть адреса, которая назначается продавцом. Поставщик должен сделать их уникальными или нет.

Таким образом, 48-битное адресное пространство MAC не используется ни иерархически, ни, как уже упоминалось выше.

Адрес предназначен для уникальных адресов в локальной сети CSMA.

По крайней мере, насколько я помню.

IP-адреса предназначены для более общего масштабирования и решения другой проблемы.

Майк Ховард
источник
MAC-адреса должны быть уникальными - это не всегда происходит, как отмечали другие, но это требование. Производители могут получить более одного идентификатора поставщика. Существует около 4 миллионов возможных идентификаторов поставщиков (в адресном пространстве MAC48 также есть адресное пространство MAC64), и было назначено менее десятой части. В каждом идентификаторе поставщика имеется 16 миллионов идентификаторов устройств, и даже крупным поставщикам потребуется время, чтобы закончиться.
Крис С