Отключить поиск NSS LDAP IPv6 (AAAA)

Вопрос: Как я могу отключить inet6 AAAA-запросы для моего LDAP-сервера во время поиска NSS (с поддержкой LDAP) на компьютере CentOS (RHEL) 5?

Предыстория: у меня есть серверы, настроенные для консультации ldap://ldap.internal для NSS passwd и групповых поисков. Каждый соответствующий поиск NSS, например, getpwuid(3), подразумеваемый ls -l который должен преобразовать UID в имена пользователей сети, выполняет следующий танец DNS перед подключением к серверу ldap:

AAAA? ldap.internal          -> (no records)
AAAA? ldap.internal.internal -> NXDomain
A?    ldap.internal          -> 192.168.3.89

Я хотел бы пропустить первые два запроса полностью. Конфигурация:

[server]$ cat /etc/redhat-release 
CentOS release 5.4 (Final)
[server]$ grep ^passwd /etc/nsswitch.conf 
passwd:     files ldap
[server]$ grep ^uri /etc/ldap.conf
uri ldap://ldap.internal/

В любом случае, поддержка IPv6 в этих системах отключена:

[server]$ grep off /etc/modprobe.conf
alias ipv6 off
alias net-pf-10 off
[server]$ echo "$(ip a | grep -c inet6) IPv6-enabled interfaces"
0 IPv6-enabled interfaces

2 ответа

Решение

Краткий ответ: нет, это поведение не может быть изменено простой конфигурацией системы.

Поиски AAAA - это ожидаемое поведение поставляемых библиотек openldap, openldap-2.3.43-3.el5 на момент написания этой статьи. Построенные с --enable-ipv6, процедуры соединения LDAP разрешают хосты с getaddrinfo(3) ищу любой доступный адрес семьи (AF_UNSPEC) и т. д. включая как inet4, так и inet6.

Теперь код openldap знает о AI_ADDRCONFIG подсказка, которая помешает искать адреса inet6, если в системе не настроен ни один, и аналогично для адресов inet4. Тем не менее, код не может предоставить эту подсказку по двум причинам:

Во-первых, ошибочно, подсказка написана с ошибкой как "AI_ATTRCONFIG" [sic], и эта орфографическая ошибка исправлена ​​около 2.4.14. Во-вторых, нет никакого теста конфигурации для жизнеспособности этого флага, поэтому код, который предоставил бы флаг, с ошибкой или нет, никогда не компилируется.

Я полагаю, просто немного больше ненужной сетевой болтовни.

Я не уверен, если /etc/gai.conf было бы доступно в 2009 году, но сейчас (и, по-видимому, появилось, по крайней мере, с CentOS 5.5). Это особенность glibc и позволяет установить предпочтение сортировки IP-адресов по getaddrinfo(3),

Посмотрите /questions/164923/linux-blokirovka-ipv6-dlya-opredelennyih-prilozhenij-imen-hostov/164930#164930 для полного ответа с примерами.

Если вы также хотите, чтобы при выборе исходного адреса применялась соответствующая политика, см. Этот пост: http://biplane.com.au/blog/?p=122

Другие вопросы по тегам