Назад | Перейти на главную страницу

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

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

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

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

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

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

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

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

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

Убедитесь, что вы действительно проверили, что произойдет, если ваш маршрутизатор запрашивает делегированный / 48, / 52, / 56 или / 60 через DHCPv6 в WAN. Я бы проверил все четыре длины префикса на тот случай, если сервер 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.

Мосты

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

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

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

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

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

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