Привязка и IPV6 :Контроль доступа

С помощью POSIX-lysedвы можете сделать следующее:

sed -e '
    /PRIMARY/!{x;1!p;d;}
    x;s/,/)/;$G
' input-file.txt

Выход:

ID_SOUR_CALENDAR BIGINT NOT NULL DEFAULT 0  COMPRESS 0 )
UNIQUE PRIMARY INDEX ( CALENDAR_DATE );
ID,
ID_SOUR )
PRIMARY INDEX ( CALENDAR_DATE );

Рабочий:

  • Для не -ОСНОВНЫХ строк мы сохраняем строку и печатаем ту, которую мы сохранили в холде.
  • А для ПЕРВИЧНОГО мы извлекаем предыдущее и осуществляем преобразование.
0
10.06.2021, 16:11
1 ответ

Всякий раз, когда ваш BIND запрашивает адреса либо корневых DNS-серверов, либо DNS-серверов любых доменов верхнего уровня, он получит список адресов IPv6 и IPv4 -, который не известен корневому серверу или серверу имен TLD. и не беспокойтесь о том, что у вас может не быть подключения к Интернету IPv6.

А поскольку у вас есть хотя бы локальное соединение IPv6, BIND попытается использовать IPv6. Таким образом, если в записях NS для определенного внешнего домена указано имя DNS-сервера, с которым связан IPv6-адрес, и эта запись оказывается первой в текущем циклическом порядке -, BIND попытается использовать IPv6 для выполнить рекурсивное разрешение имен для одного из своих клиентов.

Да, даже если клиент отправил запрос через IPv4.

И да, даже если клиент запросил только запись A, а не AAAA.

Но поскольку у вас, по-видимому, нет подключения к Интернету по протоколу IPv6 , любая попытка связаться с внешним DNS-сервером по IPv6 завершится ошибкой network unreachable. В этот момент BIND попробует другие IP-адреса, указанные для этого DNS-сервера... и когда он попробует IPv4-адрес, все будет работать нормально.

Помните, :При использовании протокола DNS ничто не мешает вам запрашивать информацию IPv4 через IPv6 или наоборот. И когда ваш BIND выполняет рекурсивное разрешение от имени одного из своих клиентов, он будет использовать любой протокол, который сочтет нужным :тот факт, что клиент мог подключиться к вашему BIND с использованием IPv4, не означает автоматически, что BIND должен ограничивать себя только IPv4.

Чтобы указать BIND, что любые IPv6-адреса для внешних DNS-серверов не должны использоваться, можно объявить все адресное пространство IPv6 (, кроме вашего локального домена (s ),для которых ваш BIND предположительно уже авторитетен для )как фиктивный:

server ::/0 {
        bogus yes;
};

(Я не проверял, придется ли вам затем явно отменить это для любых других локальных IPv6 -доступных DNS-серверов, которые у вас могут быть.)

Другим вариантом полного прекращения попыток BIND связаться с другими DNS-серверами по IPv6 может быть запуск BIND с параметром -4, который не подходит для вашей ситуации, поскольку вы сказали, что ваша локальная сеть — IPv6 -способен, но, по-видимому, не имеет подключения к Интернету по протоколу IPv6.

Источник:этого вопроса о сбое сервера .

Если вы хотите, чтобы IPv4-клиенты вашего BIND никогда не видели какие-либо IPv6-адреса, вы можете добавить эту строку в раздел options:

filter-aaaa-on-ipv4 break-dnssec;

Однако это никак не влияет на использование BIND протокола IPv6 для исходящих подключений к другим DNS-серверам. И это будет работать только в том случае, если ваш BIND был скомпилирован с параметром ./configure --enable-filter-aaaabuild -.

Источник:https://kb.isc.org/docs/aa-00576

2
28.07.2021, 11:25

Теги

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