Подсеть IPv6 / 64 - что сломается и как обойти это?


27

В IPv6 вы не должны подключаться к чему-либо меньшему, чем / 64 (RFC 5375). Помимо прочего, SLAAC не работает с небольшими подсетями, и, очевидно, также будут нарушены некоторые другие функции.

Каковы обходные пути для ситуаций, когда интернет-провайдеры дадут вам только одну / 64, но вам нужно несколько внутренних подсетей? Общий совет, похоже, состоит в том, чтобы просто найти другого интернет-провайдера, который раздаст / 56 или / 48. В некоторых частях мира это может сработать, но в нашем регионе (США) это невозможно из-за отсутствия конкуренции. Большинству моих клиентов повезло, если у них есть один провайдер, обслуживающий их область. Многие люди здесь все еще на дозвоне.

Мои клиенты не могут претендовать на свои собственные / 48 от ARIN.


9
Я не буду пытаться развернуть IPv6 в этом сценарии. Продолжайте нажимать на интернет-провайдера, чтобы обеспечить правильное подключение. Сделайте свои ошибки весьма заметными и публичными, если это необходимо. Quote глава и стих из RFC 6177. Конечно, вы должны убедиться , что это их ошибка, и что ваше оборудование запрашивает большую подсеть.
— Майкл Хэмптон

5
Это тоже плохой совет. Учитывая все его преимущества, большинство людей должны развертывать IPv6 при первой же возможности. К сожалению, многие интернет-провайдеры приготовили полный собачий завтрак из своего сервиса IPv6, что делает его неразумным в использовании.
— Майкл Хэмптон

2
Мы могли бы спорить весь день, делают ли из этого провайдеры собачий завтрак (что они и сделали!), Или же дизайнеры IPv6 были нереалистичны в своем предположении, что провайдеры не будут этого делать. Конечно, я не говорю своим клиентам, чтобы они всегда держались подальше от IPv6, до тех пор, пока пыль не уляжется. Я уверен, что через пять лет, или даже раньше, будет SLAAC 2.0, который поддерживает меньшие подсети вместе с NAT (многие маршрутизаторы уже внедряют его в любом случае), и все остальное, что нужно для работы IPv6 перед лицом бедствий. Хотя я больше искал решения прямо сейчас.
— Кевин Кин

4
Не стоит рассчитывать на беспорядок в IPv4, например, NAT, для правильной работы с IPv6. NAT был взломом, а не особенностью ...
— Сандер Стеффанн

3
@KevinKeane NAT всегда был взломом и всегда будет. Каждая проблема, которую люди пытались решить с помощью NAT, имеет реальное решение, которое не включает NAT - но, скорее всего, оно включает IPv6. Подавляющее большинство поломок, о которых вы говорите, можно отнести на счет NAT или неполных развертываний IPv6.
— Касперд

Ответы:


28

Если провайдер не даст вам больше, чем / 64, то этот провайдер отстой. Если есть какое-то облегчение, я могу сказать вам, что мне приходится иметь дело с интернет-провайдерами, которые сосут даже больше, чем это. Здесь совершенно нормально отнимать публичные IPv4-адреса от клиентов и размещать их за CGN. И если вы спросите их о IPv6-адресах, они скажут вам, что не предлагают IPv6, потому что еще нет недостатка в IPv4-адресах, и пока есть серверы без поддержки IPv6, они не будут предлагать IPv6, потому что это невозможно для клиент с двумя стеками для подключения к серверу только для IPv4.

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

Для продвижения вперед есть два подхода, которые я рекомендую вам использовать параллельно.

Давить на провайдера

Оказывайте как можно больше давления на провайдера. Это включает в себя контакт с другими Интернет-провайдерами и, возможно, переключение, если любой другой Интернет-провайдер может предложить вам более выгодную сделку

Убедитесь, что вы проверите, что происходит, если ваш маршрутизатор запрашивает делегированные / 48, / 52, / 56 или / 60 через DHCPv6 в глобальной сети. Я бы протестировал все четыре длины префикса на случай, если сервер DHCPv6 по какой-либо причине выдаст только определенную длину префикса и проигнорирует запросы на другие длины префикса.

Сделайте лучшее из того, что у вас есть

Учитывая, что вам, вероятно, придется жить с некоторыми хаков, движущимися вперёд, вы должны спросить себя, что меньше сосет IPv4 с хаки или IPv6 с хаки.

Есть несколько хаков, которые вы можете использовать, чтобы растянуть один / 64 на множество хостов.

Превращение префикса ссылки в маршрутизируемый префикс

Если у вас есть один / 64 на канале WAN, но нет префикса, маршрутизируемого в вашу локальную сеть, вы можете превратить этот / 64 в маршрутизируемый префикс с помощью нескольких шагов. Настройте интерфейс WAN на вашем маршрутизаторе как / 126, а не / 64. Установите на маршрутизаторе демон объявления соседей (например, ndppd), чтобы объявить собственный MAC-адрес для каждого адреса в / 64, за исключением 4-х адресов в / 126. С этими двумя шагами у вас будет маршрутизируемый / 64, который вы можете использовать в локальной сети, за исключением 4 адресов, используемых для канала WAN.

Модифицированная версия этого хака может совместно использовать ссылку / 64 на нескольких маршрутизаторах. Тогда префикс канала должен быть немного короче, чем / 126, чтобы соответствовать IP-адресу каждого маршрутизатора, а / 120 будет достаточно коротким, чтобы можно было использовать до 254 маршрутизаторов.

Каждый маршрутизатор, очевидно, получит только префикс, который будет длиннее / 64. Я рекомендую вам сделать префикс для каждого маршрутизатора как можно дольше, оставаясь при этом достаточным количеством IP-адресов для локальной сети на этом маршрутизаторе. A / 112 или / 120 для каждого маршрутизатора, скорее всего, подойдет. Каждый маршрутизатор отвечает своим собственным MAC-адресом для обнаружения соседей чего-либо в префиксе этого маршрутизатора.

В этом варианте каждый маршрутизатор будет иметь идентичные префиксы, настроенные на его стороне WAN, и будет отвечать на запросы обнаружения соседей для префикса, назначенного их стороне LAN. Очевидно, что ни один из префиксов LAN не может перекрывать друг друга, и ни один из них не может перекрывать префикс, который вы настроили на стороне WAN.

Таким образом, если маршрутизатор ISP, выступающий в качестве шлюза, находится по адресу 2001: db8 :: 1/64, то вы можете использовать 2001: db8 :: / 120 в качестве глобальной сети и назначить 2001: db8 :: 1: 0/112 для первый маршрутизатор, 2001: db8 :: 2: 0/112, второй маршрутизатор и т. д.

В локальной сети вы можете расширить / 64 на множество хостов, используя подсети или мосты. Вы должны решить, какая из двух работ лучше для вас.

подсетей

Если вы подключите подсеть к / 64, вы также можете перейти к самым длинным префиксам, у которых еще достаточно адресов для нужных вам хостов. Не подключайтесь к префиксам / 80, а используйте / 116, / 120 или / 124 для каждой подсети. Вещи, которые ломаются, если вы не используете / 64, вряд ли будут заботиться, и если вы используете / 116 или дольше, вы уменьшите влияние определенных DoS-атак обнаружения соседей (если они есть в любой из ваших систем).

В такой конфигурации подсетей вы нарушите SLAAC, поэтому вам потребуется сервер DHCPv6 для ответа на каждый сегмент и статические адреса IPv6, настроенные на всех устройствах без поддержки DHCPv6.

Bridging

Соединение является другой альтернативой. По сути, это означает, что вы не используете подсеть, а запускаете всю локальную сеть как один сегмент IPv6 с префиксом / 64. (Если вам нужно, этот / 64 может охватывать как LAN, так и WAN.)

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

Мосты также могут применять межсетевые экраны и защиту от спуфинга обнаружения соседей в локальной сети.

При наличии достаточного интеллекта на мостах, в принципе, нет ограничений на количество коммутаторов, которые вы можете соединить через один / 64.


Спасибо! Это был именно тот ответ, который я искал! Мне особенно нравится ваша идея превратить / 64 в маршрутизируемый префикс. Не могли бы вы подробнее остановиться на этом, пожалуйста? Во-первых, я не понимаю, почему вы предлагаете / 126, а не / 127? Какие IP-адреса используются где? Во-вторых, у одного из моих клиентов у меня есть три отдельных внутренних маршрутизатора. В IPv4 у них есть три разных публичных IP-адреса в / 29, предоставленном провайдером. Будет ли ваша схема работать с этими маршрутизаторами?
— Кевин Кин

Кроме того, я не уверен, как установить Neighbor Advertising Daemon на любом из маршрутизаторов. Один маршрутизатор - Fortigate, один - Belkin, а третий - Linksys.
— Кевин Кин

@KevinKeane Причина, по которой я предлагаю / 126, заключается в том, что вам часто требуется по крайней мере три адреса в префиксе. На стороне провайдера маршрутизатор может иметь префикс, настроенный как 2001: db8 :: 1/64, что означает, что 2001: db8 :: является специальным, а 2001: db8 :: 1 используется маршрутизатором ISP. Ваш собственный маршрутизатор обычно настроен на 2001: db8 :: 2, что означает, что вы тогда использовали три адреса, и / 127 будет недостаточно. A / 127 мог бы работать, если бы вы не использовали хак с разной длиной префикса, настроенной на двух концах ссылки.
— Касперд

спасибо за объяснение этого! Поэтому, когда у меня есть три маршрутизатора, обслуживающих три разные внутренние сети, я должен использовать / 125, и каждый маршрутизатор через рекламу соседей будет объявлять свой собственный MAC только для этих IP-адресов в соответствующей подсети?
— Кевин Кин

1
Существует информационный RFC, RFC 7421, Анализ 64-битной границы в IPv6-адресации , в котором подробно обсуждается /64подсеть, и что может пойти не так, если она не используется.
— Рон Мопин

10

Да, давление на вашего провайдера, чтобы он не сосал, является предпочтительным вариантом Политики распределения RIR предполагают, что провайдер предоставляет каждому клиенту / 48; у провайдера нет абсолютно никаких причин не делать этого.

IPv6 не является поклонником небольших подсетей, однако единственное, что должно сломаться, насколько мне известно, это SLAAC. У вас будут проблемы с ошибками и предположениями в некоторых стеках IPv6, которые просто слепо предполагают «/ 64 == подсеть», но это ошибка, а не функция, и вы можете нанести удар продавцу, чтобы исправить ее. Исправлено ли это до того, как ваш провайдер даст вам / 48, с другой стороны ...


Я думаю, что некоторые части протокола обнаружения соседей также должны сломаться. RFC 5375 имеет целый список других вещей, но я не знаю практических последствий. Только получение / 64 иногда может быть просто вопросом денег. Ваш Интернет-провайдер может предоставлять домашним пользователям только / 64, а / 48 только бизнес-аккаунтам. Просто потому, что вы хотите отделить свой домашний офис или WiFi от остального дома, или потому что вы хотите использовать отдельную подсеть для виртуальных машин? Извините за напыщенность - я пытаюсь решить проблему здесь, не пытаясь изменить то, что я не могу контролировать.
— Кевин Кин

2
Если ваш интернет-провайдер хотел быть в этом неравнодушным, он раздал бы / 128 каждому абоненту. Я думаю , вы можете помахать RFC 5375 у провайдера и скажите им , чтобы дать вам IPv6, а не IPv5.5 ...
— Уомбл

На самом деле, по крайней мере один известный мне провайдер делает это (Verizon Wireless). Это одна из причин, по которой я утверждаю, что NAT все еще необходим в IPv6. Но это отдельно от моего вопроса, конечно.
— Кевин Кин

1
Рекомендация / 48 из RFC 3177 больше не действительна, большинство RIR теперь рекомендуют / 56 для конечных сайтов, как описано в RFC 6177: tools.ietf.org/html/rfc6177
— skrause

@skrause Не то чтобы это все равно имело значение. Достаточно / 48s, что они не собираются заканчиваться. Даже при соотношении HD 80% потребовалось бы 2 ^ 36 выделенных / 48 с, прежде чем IANA израсходовала бы весь 2000 :: / 3. И если ваш конечный сайт не является крупным центром обработки данных, то в / 56 достаточно подсетей для вашего конечного сайта.
— Касперд
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.