![Базовые концепции IPv6/лучшие практики](https://rvso.com/image/1645740/%D0%91%D0%B0%D0%B7%D0%BE%D0%B2%D1%8B%D0%B5%20%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%86%D0%B8%D0%B8%20IPv6%2F%D0%BB%D1%83%D1%87%D1%88%D0%B8%D0%B5%20%D0%BF%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D0%BA%D0%B8.png)
Я пытаюсь ознакомиться с IPv6.
я нашелэто руководствоочень полезно, но я все еще не понимаю некоторые аспекты.
Ссылка-локальная против уникально-локальной
Читая вышеприведенное руководство, я понимаю, что локальные адреса не пересекают границы хоста (т.е. они не используются для связи между устройствами). Уникальные локальные адреса, напротив, близки к концепции локальных IP-адресов IPv4.
Это верно?
Идентификатор интерфейса
Если я правильно понимаю, каждый хост идентифицируется значением, которое можно вычислить из MAC-адреса. Это обязательно/лучшая практика?
В IPv4 адреса не связаны с MAC-адресом, поэтому, например, я могу сменить сетевую карту на ПК (тем самым изменив ее MAC-адрес) и продолжать использовать тот же адрес.
Кроме того, IP-адреса обычно назначаются с использованием некоторых критериев (от a до b для ПК, от x до y для принтеров и т. д.). Это не обязательно, но полезно для ежедневного обслуживания.
Как это можно сделать в IPv6?
решение1
Локальные адреса не пересекают границы хоста (т.е. они не используются для связи между устройствами).
Не ониделатьпересекают границы хоста, но никогда не пересекают границы сети (или подсети).
Адреса Link-local используются для пакетов, которые ранее должны были отправляться с нулевого адреса (например, DHCP → DHCPv6) или которые вообще не были основаны на IP (например, ARP → ICMPv6 NDP). Они также используются протоколами маршрутизации (RIPng, OSPFv3, Babel…), которые ранее использовали «нормальный» IP-адрес для сообщений, которые по своей сути являются link-scope.
(Технически IPv4 также имеет адреса области действия канала 169.254.0.0/16, но они необязательны, и их использование гораздо более ограничено — их часто считают взаимоисключающими с «обычными» адресами. Это не относится к IPv6, где все интерфейсы обычно имеют локальный адрес канала в дополнение ко всему остальному.)
Однако вы можете путать область действия ссылки с адресами области "interface-local" или "host", которые на самом деле не пересекают границы хоста. На самом деле единственный адрес области действия хоста, который вы когда-либо увидите, это ::1
(loopback).
Уникально-локальные адреса близки к концепции локальных IP-адресов IPv4.
Да, хотя опять же их предполагаемое использование немного отличается от IPv4. То есть, даже если вы хотите использовать уникальные локальные адреса в вашей локальной сети, вы должнывсе ещеиспользуйте глобальные адреса вместе с ними (т.е. каждый хост будет иметь два адреса) – NAT крайне не рекомендуется, даже 1:1 NAT.
Обратите внимание, что как в IPv4, так и в IPv6 эти адреса считаются имеющимиГлобальныйОбласть действия. Они тольколокально назначенный, но IP не считает их принципиально отличными от адресов «публичного Интернета»; они маршрутизируются таким же образом.
Если я правильно понимаю, каждый хост идентифицируется значением, которое можно вычислить из MAC-адреса. Это обязательно/лучшая практика?
Нет. Это опция по умолчанию (для сетей, изначально имеющих MAC-адреса), но она не обязательна — IPv6 допускает любые типы идентификаторов интерфейсов и не будет обрабатывать их по-разному, за небольшими исключениями.
В настоящее время вы часто видите, как основной идентификатор интерфейса заменяется непрозрачными идентификаторами интерфейса на основе хэша в соответствии с RFC 7217. Он остается стабильным, но не раскрывает никакой внешней информации. (Некоторые операционные системы могут использовать другой алгоритм, но с тем же конечным результатом.)
Задолго до этого, когда большинство хостов все еще использовали идентификаторы интерфейса EUI-64, многие из них уже реализовали RFC 4941 для генерации случайныхвременныйидентификаторы интерфейса.
В целом MAC или EUI-64 не могут быть обязательными просто потому, что существует множество механизмов туннелирования «точка-точка», работающих только на уровне 3 (например, PPP), которые вообще не имеют адреса уровня 2.
Алгоритм генерации адресов IPv6 из адресов EUI-64 или MAC был тщательно проработан с учетом бита EUI-64 «Local/Global», так что если вы просто вручную назначите свой предпочтительный идентификатор интерфейса (например, <whatever>::123:ab
), он будет синтаксически выглядеть так же, как если бы он был основан на «локально администрируемом» адресе EUI-64 (в этом примере 02:00:00:00:01:23:00:ab
).
Кроме того, IP-адреса обычно назначаются с использованием некоторых критериев (от a до b для ПК, от x до y для принтеров и т. д.). Это не обязательно, но полезно для ежедневного обслуживания.
Мой первый совет — «использовать DNS». На работе я больше не ввожу адреса в чистом виде — если я хочу подключиться к определенному принтеру, я не начинаю вводить 192.
, я начинаю вводить pr-
, и браузер предлагает мне список принтеров, а не список разных IP-адресов.
В более крупных сетях вам также понадобится несколько VLAN и несколько подсетей. Назначьте идентификатор подсети 1 (например, 2001:db8:42:1::/64) для пользовательской VLAN, идентификатор подсети 2 (2001:db8:42:2::/64) для принтерной VLAN и т. д.
Большинство устройств не помешают вам назначать адреса IPv6 вручную, например, вы можете свободно использовать 2001:db8:42::53
для DNS-сервера. Как упоминалось ранее, это совершенно нормально даже в рамках предположений о назначении EUI-64 – оно просто сопоставляется с "локально администрируемым" адресом EUI-64.
(Лишь немногие поддерживают назначениетолькоидентификатор интерфейса вручную, продолжая получать сетевые префиксы автоматически, но, надеюсь, ваш префикс IPv6 не изменитсячто(Во всяком случае, часто.)