Эта инверсия является биективной, поэтому я не могу понять, для чего она нужна.
ipv6
protocol-theory
Silviu
источник
источник
Ответы:
RFC 4291 содержит инструкции по созданию адреса EUI64:
А RFC 2373 обеспечивает «почему» за переключением 7-го бита:
Но это немного глоток. Итак, проще говоря ... В архитектуре MAC-адреса 7-й бит обозначает, был ли MAC-адрес назначен универсально или локально. Значение 0 указывает, что адрес администрируется универсально. Например, когда IANA назначает уникальный идентификатор организации (OUI) поставщику карты NIC, 7-й бит будет равен 0, указывая, что OUI был назначен повсеместно. Если пользователь вручную изменит свой MAC-адрес, этот 7-й бит будет установлен в 1, указывая, что адрес Ethernet был локально администрирован .
На PacketLife также есть более подробная информация об этом .
источник
Это делается для того, чтобы классифицировать назначенные вручную адреса, такие как
prefix::1
иprefix::2
т. Д., Как локальные.Предположим, что вы настраиваете сеть в префиксе
2001:db8:dead:beef::/64
. Вы, вероятно, будете использовать IP-адреса на основе MAC для большинства ваших узлов. Однако для некоторых узлов, таких как DNS-сервер, сервер каталогов и т. Д., Вы захотите использовать адреса, которые легче вводить и которые легче запомнить, чем адреса на основе MAC-адресов. Для DNS-сервера вы, вероятно, захотите использоватьОбратите внимание, что бит U / L установлен в 0, что из-за инверсии бита идентифицирует идентификатор хоста как локальный.
источник
Короче говоря, поскольку в локальных сетях MAC седьмой бит определяется как локальный / # глобальный, в то время как в IPv6 седьмой бит в 64-битном идентификаторе интерфейса определяется как глобальный / # локальный.
источник
EUI 64 означает только MAC-адрес (48 бит), который имеет
в середине, чтобы заполнить все 64 бита. Отсюда и название EUI-64. Точнее говоря , вы имеете в виду модифицированный EUI-64, который означает EUI-64 в сочетании с бит-флипом 7-го бита.
Седьмой бит изменен, потому что в MAC-адресах этот седьмой бит указывает на разницу между локальным (0) и глобальным (1). Локальным в этом смысле является, например, последовательный интерфейс.
Поскольку все это заключается в автоматическом создании публичного адреса, который будет на глобальном интерфейсе (в терминах MAC), это приведет к 1 на 7-й позиции. Они изменили этот бит, так что вам не нужно записывать адрес дыры, и вы можете использовать сокращенную запись "::"
Пример (из RFC 2373):
Краткий ответ Даже несмотря на то, что каждый MAC-адрес будет в конечном итоге иметь адрес IPv6, который будет иметь номер HEX больше 0 в некоторой позиции в адресе IPv6. Это позволяет иметь там нули, чтобы вы могли использовать сокращенную запись.
источник