4

Мой провайдер предоставляет мне собственный IPv6 (к сожалению, DS-Lite для v4), и я использую SLAAC для клиентов в моей локальной сети за широкополосным маршрутизатором.

Поскольку я не доверяю маршрутизатору (который настраивается моим провайдером через TR-691), я установил правила ip6tables для каждого клиента, например, ограничение доступа SSH к станциям в той же подсети:

$ ip6tables -A services -s 2a02:8071:28c2:5400::/64 -p tcp --dport 22 -j ACCEPT

Проблема в том, что префикс периодически меняется, ок. раз в месяц.

Существует ли оператор ip6tables который динамически соответствует текущему префиксу (ам) данного интерфейса?

Или как бы вы справились с изменением префикса? Я подумал о написании сценария инициализации, который сначала определяет текущий префикс через Router-Solicitation, а затем генерирует подходящие правила ip6tables. Но это звучит как-то грязно ...

1 ответ1

2

Теоретически, правильный способ справиться с этим - делегирование префиксов DHCP и динамический DNS.

Итак, это будет работать так:

1) ваш экземпляр linux маршрутизатора запрашивает IPv6-адрес, а также делегирование префикса IPv6 у интернет-провайдера на интерфейсе A

2) он назначает один /64 из делегированного префикса интерфейсу B, который имеет все остальные машины. Он рекламирует этот префикс через пакеты RA и /или через DHCP-сервер по вашему выбору.

3) клиенты получают адреса IPv6 и регистрируются в локальном DNS по имени хоста, или отвечают на запросы mDNS для этого имени, если они используют Bonjour, Avahi и т.д.

4) правила брандмауэра и почти любая другая конфигурация, связанная с сетью, основана на именах хостов, а не на IP-адресах. Это способ IPv6: DNS-имена хорошие, буквальные адреса плохие, потому что их трудно запомнить и ввести.

Основная проблема, которую вы обнаружите, заключается в том, что iptables и ip6tables поддерживают только правила на основе имен хостов, разрешая имена хостов один раз во время установки правил. Так что вам, вероятно, придется написать какой-нибудь скрипт для переустановки правил при каждом изменении префикса. Хуже того, если хост находится в автономном режиме или не может быть разрешен с помощью mDNS или DDNS во время установки правила, все будет происходить молча.

Короче говоря, таблицы ip(6) просто сломаны для любого случая, когда IP-адреса меняются, даже на IPv4. Это означает, что он поврежден для любой сети разумного размера, по крайней мере, в системе, действующей в качестве маршрутизатора.

Многие коммерческие брандмауэры справляются с этим вариантом использования намного лучше (хотя многие из них основаны на Linux, например, SonicWall). Я подозреваю, что они просто периодически повторно разрешают полные доменные имена на основе TTL и обновляют IPtables или их собственные модули ядра сети.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .