dnsmasq를 사용하여 DNS 캐싱을 구성하려고 합니다. 서버는 쿼리에 응답하지만 응답 시간은 Cloudflare DNS와 정확히 동일합니다. DNS 서버를 테스트하기 위해 내 컴퓨터와 dnsmasq 구성 파일에서 모든 인터넷 DNS 서버를 제거했습니다.
이것은 내 /etc/dnsmasq.conf입니다.
domain=raspberry.local
resolv-file=/etc/resolv.dnsmasq
min-port=4096
cache-size=10000
예를 들면 다음과 같습니다.
dig facebook.it
쿼리 시간은 약 85ms인데, 이는 Clodflare DNS를 사용했을 때의 시간과 정확히 같습니다. 제가 이해하지 못하는 부분이 있을 수도 있겠지만, 로컬로 캐시된 DNS를 사용한다면 쿼리 시간은 10밀리초 미만이어야 한다고 생각합니다.
/etc/resolv.conf 파일의 내용은 다음과 같습니다.
# Generated by resolvconf
# Domain
search xxxxxxx
# CloudFlare Servers
nameserver 1.1.1.1
nameserver 1.0.0.1
search lan
nameserver 127.0.0.1
나머지 LAN을 처리하기 위해 Raspberry Pi의 DNS 서버를 사용하기 때문에 127.0.0.1을 시도하지 않았습니다. dig facebook.com을 시도했는데 Raspberry Pi LAN IP인 192.168.100.5에서 응답이 왔습니다.
/etc/resolv.conf 파일의 내용은 다음과 같습니다.
# Generated by resolvconf
# Domain
search xxxxxxx
# CloudFlare Servers
nameserver 1.1.1.1
nameserver 1.0.0.1
search lan
nameserver 127.0.0.1
나머지 LAN을 처리하기 위해 Raspberry Pi의 DNS 서버를 사용하기 때문에 127.0.0.1을 시도하지 않았습니다. dig facebook.com을 시도했는데 Raspberry Pi LAN IP인 192.168.100.5에서 응답이 왔습니다.
답변1
dnsmasq를 캐싱 DNS로 사용하고 나머지 LAN이 이에 연결되도록 허용하려면 다음을 수행하세요.
다음에서 업스트림 네임서버를 제거합니다 resolv.conf
.
# Generated by resolvconf
# Domain
search xxxxxxx
search lan
nameserver 127.0.0.1
여기서는 cloudflare DNS 서버가 필요하지 않습니다. dnsmasq에서 사용하는 구성 파일에 추가할 수 있습니다. 그런 다음 dnsmasq.conf
dnsmasq를 다음과 같이 구성합니다.
domain=raspberry.local
resolv-file=/etc/resolv.dnsmasq
min-port=4096
cache-size=10000
listen-address=<your_local_ip_address_here>
bind-interfaces
port=53
이제 원하는 업스트림 이름 서버(예: Cloudflare 이름 서버)를 사용하려면 다음 위치에 추가하세요 /etc/resolv.dnsmasq
.
nameserver 1.1.1.1
그런 다음 재부팅하면 dnsmasq
완료됩니다.
sudo systemctl restart dnsmasq