저는 로컬 네트워크 내의 debian 8 서버에서 DNS 및 DHCP 서버를 실행하고 있습니다.
문제는 클라이언트가 DHCP 서버를 통해 잘못된/예기치 않은 순서로 이름 서버를 얻는다는 것입니다.
DHCP 서버 구성:
subnet 192.168.10.0 netmask 255.255.255.0 {
option routers 192.168.10.1;
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.10.1, 8.8.8.8, 8.8.4.4;
option time-offset -18000;
default-lease-time 21600;
max-lease-time 43200;
}
그 중 192.168.10.1이 DNS와 DHCP 서버입니다.
클라이언트의 로컬 인터페이스에 대해 나열된 이름 서버:
IP4.DNS[1]: 8.8.8.8
IP4.DNS[2]: 8.8.4.4
IP4.DNS[3]: 192.168.10.1
클라이언트는 isc-dhcp-client가 있는 Ubuntu 17.10입니다.
편집: /etc/dhcp/dhclient.conf의 내용
send host-name = gethostname();
request subnet-mask, broadcast-address, time-offset, routers,
domain-name, domain-name-servers, domain-search, host-name,
dhcp6.name-servers, dhcp6.domain-search, dhcp6.fqdn, dhcp6.sntp-servers,
netbios-name-servers, netbios-scope, interface-mtu,
rfc3442-classless-static-routes, ntp-servers;
DHCP 서버에서 올바른 이름 서버 순서를 얻으려면 어떻게 해야 합니까?
필요한 순서는 로컬 이름 서버를 먼저 사용하는 것입니다.
그러므로:
IP4.DNS[1]: 192.168.10.1
IP4.DNS[2]: 8.8.8.8
IP4.DNS[3]: 8.8.4.4
답변1
클라이언트에서 DNS 서버의 순서를 제어하려고 시도하는 것보다 내부 DNS 서버만 알리는 것이 더 깔끔할 것입니다. 이는 내부 서버가 만족할 수 없는 요청을 특정 공용 DNS 서버 집합으로 전달하도록 구성된 경우 가능합니다.
예를 들어 내 BIND9 구성( IP 192.168.2.1
)에는 다음이 포함됩니다.
options {
...
forwarders {
208.67.220.220;
208.67.222.222;
8.8.8.8;
8.8.4.4;
}
...
}
또는 (@RuiFRibeiro 덕분에) 영역 블록을 사용하여 루트 네임서버와 통신할 수 있습니다.
zone "." IN {
type hint;
file "root.hint"
}
(귀하의 배포판에서는 db.root
대신 을 사용할 수 있습니다 root.hint
).
forwarders
두 구성 모두에서 서버가 요청된 이름에 대한 IP를 확인할 수 없는 경우 적절한 IP를 찾기 위해 다른 서버(예: 정의된 서버 또는 루트 이름 서버) 에 연결을 시도합니다 . 즉, 항상 로컬 서버를 먼저 시도하고, 실패할 경우 대안으로 다른 서버를 사용하십시오.
그렇다면 옵션은 dhcpd.conf
간단합니다
option domain-name-servers 192.168.2.1;
dhcpd
여러 중복 로컬 DNS 서버를 구성하는 경우 서버가 모두 동일하게 작동하므로 순서에 대해 걱정하지 않고 구성에서 각 서버를 지정할 수 있습니다 .
답변2
일부 클라이언트 측 DHCP 데몬 최적화가 DNS 서버에 공용 IP 주소를 먼저 제공한다는 사실은 놀랍지 않습니다.
그러나 주문에 대한 귀하의 주장을 고려하면 다음과 같습니다.
다른 DNS 보기나 답변을 제공하기 위해 DNS 응답 순서에 의존하는 것은 권장하지 않습니다.
그러한 결정을 온프레미스 인프라의 클라이언트에게 맡기면 적어도 필요할 때, 특히 부정적인 DNS 캐싱이 있는 경우 예측할 수 없는 동작이 발생할 수 있습니다. 또한 DNS 트래픽이 더 많아집니다. 또한 계층 구조에 DNS 서버를 로드하고 내부 도메인에 대해 질문하게 됩니다.
인터넷과 내부 전용 서버를 사용하거나 뷰를 사용하고 최소 2개의 내부 DNS 서버를 보유하는 등 신중하게 DNS 인프라를 설계하는 것이 좋습니다.
TLDR DHCP를 통해 "세계"에 대한 서로 다른 관점을 가진 여러 DNS 서버를 제공한다고 해서 서비스의 안정성이 향상되는 것은 아니며 오히려 그 반대입니다.