ADG Оставить заявку
Блог Инфраструктура 4 мин чтения

IPv6 на продакшне: dual-stack на border-роутере и сюрпризы с файрволами

RIPE NCC исчерпал пул IPv4 ещё в сентябре 2012, давление растёт. Рассказываем, как первый раз подняли dual-stack клиенту и во что упёрлись с фильтрацией v6-трафика.

Контекст момента

RIPE NCC официально исчерпал пул адресов IPv4 для региона в сентябре 2012, давление на IPv6-переход усилилось.

Про исчерпание пула IPv4 у RIPE NCC говорили долго, а в сентябре 2012 это наконец случилось. С тех пор новые блоки для региона выдаются только по последней политике: по /22 на организацию, один раз. Провайдеры это чувствуют, некоторые корпоративные клиенты тоже начали интересоваться. Один из них - небольшое производственное предприятие на сопровождении - попросил посмотреть на IPv6 «в боевых условиях», не на стенде.

Задача звучала просто: поднять dual-stack на border-роутере, чтобы сеть работала по обоим протоколам одновременно. IPv4 трогать нельзя, всё должно продолжать ехать. IPv6 - аддитивно сверху.

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

Что сделали с роутером

Железо - Cisco IOS, достаточно свежая версия чтобы поддерживать DHCPv6 и RA нормально. Провайдер выдал /48, из него нарезали /64 на каждый сегмент сети.

Настройка RA. Router Advertisement работает, клиенты получают префикс и автоматически конфигурируют адреса через SLAAC. Но не все клиенты одинаково полезны: Windows 7 подхватывает без проблем, некоторые принтеры и сетевые устройства игнорируют RA или получают адрес, но не маршрут. Там где SLAAC не справился - отдельно поднимали DHCPv6 с явными адресами.

RA-guard. Одна из вещей, которую в IPv4 не нужно было делать явно - защита от мошеннических RA-сообщений. В IPv6-сети любой хост теоретически может начать рассылать Router Advertisement и стать «роутером» для соседей. RA-guard на коммутаторах это блокирует: только с доверенных портов. Настроили, проверили инжекцию тестовым хостом - работает.

DHCPv6 для остатка. Сервер DHCPv6 на самом роутере, пулы привязаны к интерфейсам, логи смотрели на предмет конфликтов с SLAAC-адресами. Конфликтов не было, но у нескольких машин обнаружились два IPv6-адреса одновременно - один от SLAAC, один от DHCPv6. Это не баг, это штатное поведение, но надо понимать какой адрес система предпочтёт при исходящих соединениях.

Где всё поехало: файрволы

Роутер встал быстро. Потом начался цирк с межсетевыми экранами.

У клиента на периметре стоял МЭ одного известного отечественного производителя. IPv6-трафик через него прошёл - но без какой-либо фильтрации. Не потому что правила не написали, а потому что устройство их тихо игнорировало: ACL для IPv6-трафика просто не применялись. Пакеты шли насквозь.

Это не ошибка конфигурации. Это архитектура продукта на тот момент: IPv4-движок с IPv6-транспортом, который вынесен за скобки политик. Производитель про это знает - в документации есть мелким шрифтом. Выяснили это после того, как потратили час на отладку «правильно написанных» правил.

Второй файрвол в инфраструктуре - более старая версия Cisco ASA. Там ситуация другая, но тоже интересная: IPv6 ACL работают, но часть инспекции прикладного уровня (application inspection) на IPv6 не функционирует. То есть фильтрация пакетов есть, а глубокий анализ - нет. Для данной конфигурации это приемлемо, но знать надо.

Итого из двух файрволов нормально обрабатывал IPv6-трафик один, и то с ограничениями. Это не был уникальный набор оборудования - это типичная корпоративная периметровая защита по российскому рынку 2012-2013 года.

Что в итоге получилось

Dual-stack работает. IPv4-трафик идёт как шёл. IPv6 поднялся на всех сегментах, клиенты получают адреса, внешняя достижимость есть.

Фильтрация. С отечественным МЭ пришлось принять временное решение: весь входящий IPv6-трафик извне блокируется на уровне роутера - файрвол его фильтровать не умеет, поэтому роутер закрывает вход снаружи. Это ограничивает полезность dual-stack (внешние клиенты не могут подключаться по IPv6), но лучше чем открытый периметр. Исходящий IPv6 работает без ограничений.

RA-guard. Стоит, работает, рекомендуем всем кто поднимает IPv6 во внутренней сети - не опция, а базовая гигиена.

DHCPv6 vs SLAAC. В гетерогенной сети с принтерами, IP-камерами и прочей периферией рассчитывать только на SLAAC не стоит. Половина устройств его не понимает или понимает неправильно.

Главный вывод получился не про роутер и не про протокол. Половина установленного на рынке сетевого оборудования с поддержкой IPv6 в названии продукта фактически не умеет нормально фильтровать v6-трафик. Это стоит проверять до того, как поднимать dual-stack, а не после.

Контакт

Нужна такая же инженерная работа?

Опишите задачу и контекст. Ответим в течение рабочего дня, при необходимости подпишем NDA.