В 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 ...