Первое, что следует упомянуть о подсетях IPv6, это то, что требуется другой способ мышления . В IPv4 вы обычно думаете о том, сколько адресов у вас доступно и как вы можете выделить их достаточно для каждого конечного пользователя. В IPv6 вы обычно думаете о том, сколько (/ 64) подсетей у вас есть и как вы можете выделить их для конечных пользователей. Вы почти никогда не беспокоитесь о том, сколько IP-адресов будет использоваться в данной подсети. За исключением некоторых особых случаев, таких как двухточечные ссылки, каждая подсеть просто имеет гораздо больше доступных адресов, чем когда-либо, поэтому вместо этого вы беспокоитесь только о выделении подсетей, а не хостов внутри них.
Подсети IPv6 обычно / 64, потому что это требуется для работы SLAAC (автоконфигурация адреса без сохранения состояния). Даже там, где SLAAC не используется, могут быть другие причины для использования / 64. Например, некоторые устройства конечного пользователя могут предполагать, что / 64, или подсети маршрутизации длиннее / 64 могут быть неэффективными на некоторых маршрутизаторах, потому что разработчик маршрутизатора оптимизировал случай / 64 или более короткие маршруты для сохранения память таблицы маршрутизации.
Почему рекомендуется использовать / 127 для двухточечных ссылок
Для конкретного случая соединений точка-точка рекомендуется / 127 вместо / 64, чтобы избежать уязвимости, когда пакеты адресов к любому из четырех миллиардов неиспользуемых адресов в подсети вызывают нежелательные запросы на запрос соседей и записи в таблице, которые мог утопить роутер. Такие пакеты неверного адреса могут быть злонамеренными или случайными. Но даже если вы на самом деле настраиваете соединение «точка-точка» как / 127, некоторые люди рекомендуют назначать целое / 64 в любом случае просто для согласованности.
Почему виртуальные машины должны иметь подсети меньше / 64?
Я не знаю точно, почему виртуальные машины должны быть предоставлены с подсетями меньше / 64. Возможно, потому что хостинг-провайдер предполагал, что сервер был похож на конечного пользователя и требовал только одну (/ 64) подсеть, не ожидая, что сервер фактически будет набором виртуальных машин, требующих топологии внутренней маршрутизации? Это также может быть сделано просто для упрощения запоминания плана адресации: хост получает PREFIX::/64
, затем каждая виртуальная машина получает то, PREFIX:0:NNNN::/96
где NNNN уникален для виртуальной машины, и виртуальная машина может распределять PREFIX:0:NNNN:XXXX:YYYY
ее по своему усмотрению.
Можно ли сопоставить напрямую из подсетей IPv4 в подсети IPv6? Например, соответствует ли IPv4 / 24 напрямую IPv6 / 56 или / 120?
С точки зрения низкого уровня работы адресации и маршрутизации длина префикса имеет одинаковое значение в IPv6 и IPv4. На этом уровне вы можете провести аналогию, например: «IPv4 / 16 использует половину битов для сетевого адреса и половину битов для адреса хоста, это похоже на / 64 в IPv6». Но это сравнение не совсем удачно. В IPv6 появились строгие соглашения, которые делают разделение размеров сетей несколько похожим на старый мир классных сетей в IPv4. Чтобы быть уверенным, IPv6 не вновь классовый адресации , в которой наиболее значимые несколько битов адреса заставить определенную маску подсети, но то , что IPv6 действительно есть, некоторые [/ де - факто условно] стандартные размеры сети:
- / 64 : базовый размер отдельной подсети: LAN, WAN, блок адресов для виртуальных веб-хостов и т. Д. Ожидается, что «нормальные» подсети никогда не будут меньше (с более длинным префиксом), чем / 64. Предполагается, что ни одна подсеть не будет больше (более короткий префикс), чем / 64, поскольку адрес хоста в / 64 намного больше, чем мы можем себе представить.
- / 56 : блок из 256 базовых подсетей. Несмотря на то, что действующие политики разрешают интернет-провайдерам раздавать блоки размером до / 48 каждому конечному пользователю и при этом считают использование своего адреса вполне оправданным, некоторые интернет-провайдеры могут (и уже делают) выбрать распределение / 56 клиентам потребительского уровня в качестве компромисса. между выделением множества подсетей для них и адресной экономией.
- / 48 : блок из 65536 базовых подсетей и рекомендуемый размер блока, который должен получить каждый конечный сайт клиента ISP.
- / 32 : размер блока по умолчанию, который большинство интернет-провайдеров будут получать каждый раз, когда они запрашивают дополнительные адреса из регионального реестра адресов.
Внутри сетей провайдеров услуг и предприятий существует гораздо больше длин префиксов, чем эти 4. При взгляде на таблицы маршрутизации маршрутизаторов внутри этих сетей, IPv4 и IPv6 имеют много общего, в том числе большинство способов работы маршрутизации: маршруты для более длинных префиксов переопределяют маршруты, охватывающие более короткие префиксы, поэтому можно объединять (сокращать) и анализировать вниз (сделать более длинные) маршруты. Как и в IPv4, маршруты можно агрегировать или суммировать в более крупные блоки с более короткими префиксами, чтобы минимизировать размер таблиц маршрутизации.
Другой вопрос сопоставления между IPv4 и IPv6 заключается в том, как согласовать назначения IPv4 и IPv6 на машинах с двумя стеками, чтобы можно было легко понять планы адресации. Кроме того, для этого, безусловно, существуют общепринятые соглашения: встраивать «номер подсети» IPv4 в часть префикса IPv6, либо с BCD (например, 10.0.234.0/24
становится 2001:db8:abcd:234::/64
), либо с двоичным ( 10.0.234.0/24
становится 2001:db8:abcd:ea::/64
).
Мои интерфейсы имеют несколько адресов IPv6. Должна ли подсеть быть одинаковой для всех?
Точно нет! Ожидается, что хосты IPv6 смогут быть многосетевыми благодаря наличию нескольких IP-адресов одновременно, которые поступают из разных подсетей, подобно IPv4. Если они автоматически сконфигурированы с SLAAC, то разные подсети могли быть получены из объявлений маршрутизаторов от разных маршрутизаторов.
Почему иногда я вижу%, а не / в адресе IPv6 и что это значит?
Вы бы не увидели одно вместо другого. У них разные значения. Косая черта обозначает префикс (подсеть), то есть блок адресов, которые начинаются с одинаковых n
битов. Адрес без косой черты является адресом хоста. Вы можете думать о таком адресе как о подразумеваемом «/ 128» в конце, означающем, что все 128 битов указаны.
Знак процента сопровождает локальный адрес ссылки. В IPv6 каждый интерфейс имеет локальный адрес связи в дополнение к любым другим IP-адресам, которые он может иметь. Но дело в том, что локальные адреса ссылок всегда без исключения находятся в fe80::/10
блоке. Но если мы пытаемся общаться с партнером, используя локальный адрес канала связи, а локальный хост имеет несколько интерфейсов, как мы узнаем, какой интерфейс использовать для связи с этим партнером? Обычно таблица маршрутизации говорит нам, какой интерфейс использовать для определенного префикса, но здесь она говорит нам, fe80::/10
что доступно через каждый интерфейс.
Ответ в том, что мы должны сказать ему, какой интерфейс использовать, используя синтаксис address%interface
. Например, fe80::1234:5678:8765:4321%eth0
.
Я трачу слишком много подсетей? Разве мы не просто выбежим снова?
Никто не знает. Кто может сказать будущее?
Но учти это. В IPv6 количество доступных подсетей является квадратом количества доступных отдельных адресов в IPv4. Это действительно довольно много. Нет, я имею в виду довольно много!
Но все же: мы автоматически раздаем / 32 любому провайдеру, который его запрашивает, мы раздаем / 48 каждому клиенту провайдера. Возможно, мы преувеличиваем и в конце концов будем разбазаривать IPv6. Но есть положение для этого: только одна восьмой части пространства IPv6 было доступно для использования до сих пор: 2000::/3
. Идея состоит в том, что если мы устроим ужасную неразбериху первой восьмой, и нам придется кардинально пересмотреть либеральную политику распределения, мы попробуем еще 7 раз, прежде чем у нас будут проблемы.
И наконец: IPv6 не должен длиться вечно. Возможно, он будет иметь более длительный срок службы, чем IPv4 (впечатляющий срок службы уже, и он еще не закончился), но, как и любая технология, он когда-нибудь перестанет иметь значение. Нам нужно только сделать это до тех пор.