Почему ipv6 определяет 128-битный адрес, когда в MAC-адресах только 48 бит?

37

Итак, я читаю для сетевого экзамена, и мне просто интересно, если я пропустил что-то основное. Есть ли необходимость в большем количестве ip-адресов, чем в MAC-адресах, и как бы узлу с одним сетевым адаптером было назначено много ip-адресов в этом случае?

Лоренц Веделер
источник
2
+1, несмотря на то, что очевидно, что MAC должен быть уникальным только для устройств в одной локальной сети (подключенных к одной шине), тогда как интернет-уровень объединяет все локальные сети в одну глобальную сеть, в которой фундаментальный принцип проектирования, разделяющий завоевателя, точно предписывает, что локальная сеть сети не должны знать о локальных адресах в других локальных сетях для успешной связи через глобальную схему IP, и, кроме того, вы можете подключать локальные сети, не основанные на Ethernet, к Интернету. Итак, мне интересно знать, каким был бы ответ, если бы IP требовал только Ethernet на нижнем уровне.
Val
1
Переход с IPv4 на IPv6 был и остается таким медленным и дорогим, что мы больше не хотим повторять этот переход. 128 бит имеют достаточный шанс быть «навсегда». tools.ietf.org/html/rfc1606 - это отличный юмористический подход («Поскольку протокол IP версии 9 подходит к концу, еще раз из-за исчерпания адресного пространства, ...»)
Бени Чернявский- Паскин
@ BeniCherniavsky-Paskin, переход медленный, потому что NAT смягчают потребность. Опять же, это показывает нам, что нам не нужно локальное адресное пространство для покрытия глобального адресного пространства.
Val

Ответы:

40

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

Интернет не является одним глобальным широковещательным доменом и поэтому должен быть разделен на множество блоков адресов, назначенных разным провайдерам, и каждый провайдер делит свои блоки на более мелкие блоки для разных клиентов / услуг. Чтобы каждый из этих меньших блоков содержал много MAC-адресов, вам нужно, чтобы IP-пространство было намного больше, чем пространство MAC-адресов.

Теун Винк
источник
8
Также из-за агрегации. 48 бит было бы более чем достаточно IP-адресов (40 КБ на человека), но это означало бы, что каждый маршрутизатор должен смотреть на плоскую таблицу более 2PB, эта технология не существует.
ytti
1
@ytti: По крайней мере, до тех пор, пока у всех нас не
появятся
1
Вероятно, они могут использовать linklocal, поскольку лишь немногие из них будут взаимодействовать за пределами локальной сети.
Ytti
1
На бумаге они должны быть глобально уникальными. Однако реальность, как известно, отличается.
Рикки Бим
4
Это оправдывает другой вопрос. Но MAC-адрес создается из 24-битного или 36-битного номера OUI, который вы покупаете у IEEE, который должен быть уникальным, но на практике, чтобы сэкономить 1300USD, некоторые люди используют OUI других людей, или некоторые люди производят NIC с неуникальным MAC-адресом. Хотя MAC-адрес равен 48b, на самом деле это всего лишь 46b, поскольку 1 бит определяет, является ли он одноадресным / многоадресным, и 1 бит, если он является глобальным / локальным, если бит локальной области включен, то все ставки отключены для уникальности.
ytti
16

Не все типы сетевых интерфейсов используют MAC-адреса. MAC-адреса в основном связаны с Ethernet, хотя некоторые другие сетевые стандарты используют его. Однако IPv6-адрес все еще может быть назначен сетевому интерфейсу, который не использует MAC-адреса для уровня 2.

Также следует отметить, что MAC-адрес может быть преобразован в хост-часть IPv6 посредством преобразования EUI-64 (в основном используется для автоматической конфигурации без сохранения состояния) путем вставки шестнадцатеричных значений FFFE между крайним левым и правым 24-битами 48-битного MAC-адреса, и седьмой бит становится инвертированным.

Так, например, 0c: 3a: bb: 2a: cd: 23 можно преобразовать в хост-часть адреса IPv6 автоматической конфигурации без сохранения состояния. 0c в вышеуказанных MAC-адресах, представленных как 0000 1100 в двоичном формате, станет 0000 1110 в двоичном или 0e в шестнадцатеричном. Поэтому конечная часть хоста EUI-64 IPv6-адреса, преобразованная из MAC-адреса, будет 0e: 3a: bb: ff: fe: 2a: cd: 23.

WaxTrax
источник
1
Вам также нужно перевернуть MAC-адрес «локальный бит»
ytti
Я забыл об этой части - я отредактировал свой ответ, чтобы отразить информацию. Спасибо, что
поймали
Глупый скрипт, делающий это автоматически: ruby ​​-e'EUI = (ARGV [1]); k = ARGV [0] .delete (":."). Scan (/. {6} /). Join ("fffe" ) .scan (/../); k [0] = "% 02x"% (k [0] .hex ^ 0b10); p EUI + ":" + k.join.scan (/..../) .join (":") '74: 66: 30: 42: 42: 42 2001: 67c: 17a0: 0
2013 года
Перевод MAC-адреса в EUI-64 для использования при распределении IP-адресов представляется более поздним, в первоначальном стандарте IPv6 через Ethernet (RFC 2464) указывались MAC-адреса с нулевым префиксом.
Питер Грин
6

Кроме того, есть несколько протоколов уровня 2 с более чем 48 битами в их MAC, например, Fibre Channel имеет 64-битный (или, по-видимому, 128-битный в соответствии с Википедией), как и FireWire (ну, вроде), поэтому они могут помещаться в / 64 без возможности перекрытия.

LapTop006
источник
4

IPv6 SLAAC может генерировать только один адрес для каждого префикса, поскольку он использует MAC для генерации достаточно уникального адреса. Расширения конфиденциальности могут генерировать один или несколько псевдослучайных адресов, которые затем проверяются на наличие совпадений в локальном сегменте. Конечно, локальные администраторы могут назначать столько статических адресов, сколько пожелают - их задача - не допускать дублирования.

[Под достаточно уникальным я имею в виду вероятность столкновения равна нулю. И если это произойдет, у вас возникнет проблема второго уровня! (две машины в одном сегменте с одинаковым MAC)]

Рики Бим
источник
Расширение конфиденциальности Afaict было запоздалой мыслью, когда люди поняли, что автоматическая настройка на основе MAC была кошмаром конфиденциальности. Не одна из движущих сил в дизайне IPv6
Питер Грин
Большая часть IPv6 - это запоздалая мысль ... Те, кто не извлекают уроки из истории, обречены повторять это.
Рикки Бим
2

Я думаю, что в основном это сводится к двум ключевым моментам.

  1. Интернет-адреса не просто должны быть глобально уникальными, они должны быть глобально маршрутизируемыми. Маршрутизация адреса каждой машины по отдельности приведет к непомерно большим таблицам маршрутизации. Разработчики IPv6 мечтали об иерархической системе маршрутизации *, чтобы таблицы маршрутизации были небольшими.
  2. Разработчики IPv6 хотели автоматическую настройку без сохранения состояния. Автоматическая конфигурация без сохранения состояния требует, чтобы часть адреса хоста была большой, чтобы приспособить либо существующий адрес ссылки, либо разместить случайное число, достаточно большое, чтобы коллизии были очень маловероятными.

Сложите эти точки вместе, и вам понадобятся как "хост", так и "сеть" части адреса, чтобы быть большими. Конечно, более 32 бит каждый. 64-битные были, вероятно, избыточными, но лучше, чем заканчивающимися.

* Мечта на самом деле не осуществилась, потому что Интернет не является фиксированной иерархией, но речь идет не о том, что на самом деле произошло за 20 лет или около того с момента появления IPv6, а о том, что привело к разработке.

Питер Грин
источник