Отключить исходящие IPv6 для определенных пользователей в Linux

. Я хотел бы заблокировать исходящие соединения IPv6 для определенных пользователей на машине с Linux. Я не хочу отключать IPv6 для всей системы. Как мне это сделать? Я могу сделать это, используя ip6tables и отклоняя ВЫХОДНЫЕ соединения с icmp6-adm-prohibited или icmp6-no-route или icmp6-addr-unreachable, но по какой-то причине это вызывает задержки около 1 с. при каждом установленном соединении (IPv4 пробуется только после ожидания 1 с). Если установлено несколько подключений, эта задержка действительно суммируется.

0
задан 21 October 2021 в 13:08
1 ответ

Я не думаю, что это легко достижимо.

Любой клиент, который устанавливает сетевое подключение, сначала отправляет запрос DNS для получения адресов целевого сервера.

Большинство приложений используют системную libcбиблиотеку для установления соединения.Когда библиотека видит, что в системе настроены адреса IPv4 и IPv6, она запрашивает записи A и AAAA для имени домена.

Если целевой домен имеет адрес IPv6, приложение сначала пытается подключиться с использованием IPv6, а затем возвращается к IPv4 в случае сбоя IPv6.

Вы заметили эту резервную задержку.

Вам потребуется пользовательский libc, который разрешал бы только записи A для определенных пользователей и записи A+AAAA для других пользователей.

0
ответ дан 21 October 2021 в 15:25

Теги

Похожие вопросы