Дорогие Linux Graybeards,
Является 127.0.0.1
магический жетон для resolvconf
в Ubuntu 14 LTS при использовании настроек DNS, заданных DHCP?
Я использую Ubuntu 14.0.3 (LTS) в AWS (ami-0f8bce65) с пользовательскими настройками DNS в параметрах DHCP моего VPC. Я могу отправить несколько DNS-серверов через параметры DHCP в моем AWS VPC в Ubuntu только если значения не включают адаптер обратной петли.
Толкать 127.0.0.1
поскольку DNS-сервер, по-видимому, заставляет Ubuntu игнорировать все последующие серверы имен.
Например, если я настрою параметры DHCP для использования 8.8.8.8
, 8.8.4.4
, и AmazonProvidedDNS
(например., 172.24.0.2
в моем VPC), я вижу это в /etc/resolve.conf
:
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 172.24.0.2
Однако установка DNS-серверов как 8.8.8.8
, 127.0.0.1
и AmazonProvidedDNS
приводит к:
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 8.8.8.8
nameserver 127.0.0.1
Ожидаемое значение 172.24.0.2
отсутствует во втором примере.
Я подтвердил, что это не проблема AWS с их DHCP-сервером. dhcpdump
подтверждает, что DHCP-сервер отвечает 8.8.8.8,127.0.0.1,172.24.0.2
в качестве DNS-серверов:
ubuntu@ip-172-24-0-13:~$ sudo dhcpdump -i eth0 &
[1] 1742
ubuntu@ip-172-24-0-13:~$ sudo: unable to resolve host ip-172-24-0-13
sudo dhclient -v eth0
sudo: unable to resolve host ip-172-24-0-13
Internet Systems Consortium DHCP Client 4.2.4
Copyright 2004-2012 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/eth0/0e:fa:a9:1e:38:c1
Sending on LPF/eth0/0e:fa:a9:1e:38:c1
Sending on Socket/fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 3 (xid=0xd6248a3f)
DHCPREQUEST of 172.24.0.13 on eth0 to 255.255.255.255 port 67 (xid=0x3f8a24d6)
DHCPOFFER of 172.24.0.13 from 172.24.0.1
DHCPACK of 172.24.0.13 from 172.24.0.1
RTNETLINK answers: File exists
bound to 172.24.0.13 -- renewal in 1361 seconds.
ubuntu@ip-172-24-0-13:~$ TIME: 2015-11-18 20:38:09.837
IP: 0.0.0.0 (e:fa:a9:1e:38:c1) > 255.255.255.255 (ff:ff:ff:ff:ff:ff)
OP: 1 (BOOTPREQUEST)
HTYPE: 1 (Ethernet)
HLEN: 6
HOPS: 0
XID: d6248a3f
SECS: 0
FLAGS: 0
CIADDR: 0.0.0.0
YIADDR: 0.0.0.0
SIADDR: 0.0.0.0
GIADDR: 0.0.0.0
CHADDR: 0e:fa:a9:1e:38:c1:00:00:00:00:00:00:00:00:00:00
SNAME: .
FNAME: .
OPTION: 53 ( 1) DHCP message type 1 (DHCPDISCOVER)
OPTION: 12 ( 14) Host name ip-172-24-0-13
OPTION: 55 ( 13) Parameter Request List 1 (Subnet mask)
28 (Broadcast address)
2 (Time offset)
3 (Routers)
15 (Domainname)
6 (DNS server)
119 (Domain Search)
12 (Host name)
44 (NetBIOS name server)
47 (NetBIOS scope)
26 (Interface MTU)
121 (Classless Static Route)
42 (NTP servers)
---------------------------------------------------------------------------
TIME: 2015-11-18 20:38:09.839
IP: 172.24.0.1 (e:56:f6:92:57:f3) > 172.24.0.13 (e:fa:a9:1e:38:c1)
OP: 2 (BOOTPREPLY)
HTYPE: 1 (Ethernet)
HLEN: 6
HOPS: 0
XID: d6248a3f
SECS: 0
FLAGS: 0
CIADDR: 0.0.0.0
YIADDR: 172.24.0.13
SIADDR: 0.0.0.0
GIADDR: 0.0.0.0
CHADDR: 0e:fa:a9:1e:38:c1:00:00:00:00:00:00:00:00:00:00
SNAME: .
FNAME: .
OPTION: 53 ( 1) DHCP message type 2 (DHCPOFFER)
OPTION: 54 ( 4) Server identifier 172.24.0.1
OPTION: 51 ( 4) IP address leasetime 3600 (60m)
OPTION: 1 ( 4) Subnet mask 255.255.255.240
OPTION: 28 ( 4) Broadcast address 172.24.0.15
OPTION: 3 ( 4) Routers 172.24.0.1
OPTION: 6 ( 12) DNS server 8.8.8.8,127.0.0.1,172.24.0.2
OPTION: 12 ( 14) Host name ip-172-24-0-13
OPTION: 26 ( 2) Interface MTU 9001
---------------------------------------------------------------------------
127.0.0.1 - это магический токен для resolvconf
У меня нет доступной системы Ubuntu 14, но она «волшебна» в большинстве версий resolvconf.
Конкретно в файле /etc/resolvconf/update.d/libc
есть переменная $TRUNCATE_NAMESERVER_LIST_AFTER_LOOPBACK_ADDRESS
что, если оставить значение по умолчанию, приведет к замене обратной петлей любой другой настройки. Если Bind или DNSMasq находится в вашей системе и устанавливает 127.0.0.1
этот сервер имен очень широко применяется в порядке интерфейса resolvconf, и вы почти всегда будете иметь 127.0.0.1
только.
Если вы хотите изменить это поведение, попробуйте создать файл /etc/default/resolvconf
и установка TRUNCATE_NAMESERVER_LIST_AFTER_LOOPBACK_ADDRESS=y
.