именованный-sdb (связывают), не может разрешить mysql имя хоста в chroot

Когда выполнение связывает в chroot, mysql dlz драйвер не может разрешить имя хоста mysql сервера (rds). Используя амазонку ami (базирующиеся песни) в VPC.

Aug 25 10:22:27 paper named-sdb[6812]: Loading 'Mysql zone' using driver mysql
Aug 25 10:23:48 paper named-sdb[6812]: mysql driver failed to create database connection after 4 attempts
Aug 25 10:23:48 paper named-sdb[6812]: SDLZ driver failed to load.
Aug 25 10:23:48 paper named-sdb[6812]: DLZ driver failed to load.
Aug 25 10:23:48 paper named-sdb[6812]: loading configuration: failure
Aug 25 10:23:48 paper named-sdb[6812]: exiting (due to fatal error)

Installed Packages
bind.x86_64                32:9.8.2-0.30.rc1.38.amzn1  @amzn-updates
bind-chroot.x86_64         32:9.8.2-0.30.rc1.38.amzn1  @amzn-updates
bind-libs.x86_64           32:9.8.2-0.30.rc1.38.amzn1  @amzn-updates
bind-sdb.x86_64            32:9.8.2-0.30.rc1.38.amzn1  @amzn-updates
bind-utils.x86_64          32:9.8.2-0.30.rc1.38.amzn1  @amzn-updates

Я вижу, что он пытается подключить к localhost вместо амазонки сервер DNS для разрешения имени хоста. Обратите внимание, что это - соединение UDP:

# netstat -nputwc |grep named
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
udp        0      0 127.0.0.1:41551             127.0.0.1:53                ESTABLISHED 5531/named-sdb

Я могу разрешить и подключить непосредственно mysql сервер через командную строку. И если я настраиваю, связывают, чтобы не использовать chroot, связать, запускается правильно. Вы видите, связывают с успешным соединением TCP с rds сервером.

Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name 
tcp        0      0 10.33.1.20:41700            10.33.42.9:3306             ESTABLISHED 5381/named-sdb      
tcp        0      0 10.33.1.20:41711            10.33.42.9:3306             ESTABLISHED 5381/named-sdb

Содержание/etc/resolv.conf

; generated by /sbin/dhclient-script
search us-west-2.compute.internal
nameserver 10.33.0.2

Предыдущее исследование указало, что проблема должна chroot способность выполнить разрешение. Я имею symlinked/etc/resolv.conf в chroot/var/named/chroot/etc/resolv.conf, а также скопировал рекомендуемые библиотеки для выполнения разрешения без успеха.

/var/named/chroot/dev
/var/named/chroot/etc
/var/named/chroot/lib64
/var/named/chroot/usr
/var/named/chroot/var
/var/named/chroot/dev/null
/var/named/chroot/dev/random
/var/named/chroot/dev/zero
/var/named/chroot/etc/localtime
/var/named/chroot/etc/named
/var/named/chroot/etc/pki
/var/named/chroot/etc/resolv.conf
/var/named/chroot/etc/pki/dnssec-keys
/var/named/chroot/lib64/ld-linux-x86-64.so.2
/var/named/chroot/lib64/libgcc_s.so.1
/var/named/chroot/lib64/libnsl-2.17.so
/var/named/chroot/lib64/libnsl.so.1
/var/named/chroot/lib64/libnss_compat-2.17.so
/var/named/chroot/lib64/libnss_compat.so.2
/var/named/chroot/lib64/libnss_db-2.17.so
/var/named/chroot/lib64/libnss_db.so.2
/var/named/chroot/lib64/libnss_dns-2.17.so
/var/named/chroot/lib64/libnss_dns.so.2
/var/named/chroot/lib64/libnss_files-2.17.so
/var/named/chroot/lib64/libnss_files.so.2
/var/named/chroot/lib64/libnss_hesiod-2.17.so
/var/named/chroot/lib64/libnss_hesiod.so.2
/var/named/chroot/lib64/libnss_nis-2.17.so
/var/named/chroot/lib64/libnss_nis.so.2
/var/named/chroot/lib64/libnss_nisplus-2.17.so
/var/named/chroot/lib64/libnss_nisplus.so.2
/var/named/chroot/lib64/libresolv-2.17.so
/var/named/chroot/lib64/libresolv.so.2
/var/named/chroot/usr/lib64
/var/named/chroot/usr/lib64/bind
/var/named/chroot/usr/lib64/libevent-1.4.so.2
/var/named/chroot/usr/lib64/libevent-1.4.so.2.1.3
/var/named/chroot/usr/lib64/libevent-2.0.so.5
/var/named/chroot/usr/lib64/libevent-2.0.so.5.1.6
/var/named/chroot/usr/lib64/libevent.so
/var/named/chroot/usr/lib64/libevent_core-1.4.so.2
/var/named/chroot/usr/lib64/libevent_core-1.4.so.2.1.3
/var/named/chroot/usr/lib64/libevent_core-2.0.so.5
/var/named/chroot/usr/lib64/libevent_core-2.0.so.5.1.6
/var/named/chroot/usr/lib64/libevent_core.so
/var/named/chroot/usr/lib64/libevent_extra-1.4.so.2
/var/named/chroot/usr/lib64/libevent_extra-1.4.so.2.1.3
/var/named/chroot/usr/lib64/libevent_extra-2.0.so.5
/var/named/chroot/usr/lib64/libevent_extra-2.0.so.5.1.6
/var/named/chroot/usr/lib64/libevent_extra.so
/var/named/chroot/usr/lib64/libevent_openssl-2.0.so.5
/var/named/chroot/usr/lib64/libevent_openssl-2.0.so.5.1.6
/var/named/chroot/usr/lib64/libevent_openssl.so
/var/named/chroot/usr/lib64/libevent_pthreads-2.0.so.5
/var/named/chroot/usr/lib64/libevent_pthreads-2.0.so.5.1.6
/var/named/chroot/usr/lib64/libevent_pthreads.so
/var/named/chroot/usr/lib64/libnsl.so
/var/named/chroot/usr/lib64/libnss3.so
/var/named/chroot/usr/lib64/libnss_compat.so
/var/named/chroot/usr/lib64/libnss_db.so
/var/named/chroot/usr/lib64/libnss_dns.so
/var/named/chroot/usr/lib64/libnss_files.so
/var/named/chroot/usr/lib64/libnss_hesiod.so
/var/named/chroot/usr/lib64/libnss_nis.so
/var/named/chroot/usr/lib64/libnss_nisplus.so
/var/named/chroot/usr/lib64/libnssckbi.so
/var/named/chroot/usr/lib64/libnssdbm3.chk
/var/named/chroot/usr/lib64/libnssdbm3.so
/var/named/chroot/usr/lib64/libnsspem.so
/var/named/chroot/usr/lib64/libnsssysinit.so
/var/named/chroot/usr/lib64/libnssutil3.so
/var/named/chroot/usr/lib64/libresolv.so
/var/named/chroot/usr/lib64/libssl.so.1.0.1k
/var/named/chroot/usr/lib64/libssl.so.10
/var/named/chroot/usr/lib64/libssl3.so
0
задан 25 August 2015 в 21:00
1 ответ

Решение:

Невозможно использовать символическую ссылку внутри chroot.

Добавьте в свой rc.local, чтобы запустить его при загрузке: $ cp /etc/resolv.conf /var/ named/chroot/etc/resolv.conf

Это гарантирует, что chrooted bind может использовать серверы имен, которые Amazon назначает во время облачной инициализации. У него не будет проблем с разрешением DNS внутри chroot.

0
ответ дан 5 December 2019 в 12:15

Теги

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