Ubuntu Desktop 12.04는 dnsmasq를 사용하여 DNS 조회를 수행하지만 이러한 결과 를 캐시하도록 구성되지 않았습니다 . (이름을 확인하기 위해 dig를 사용하여이를 확인했으며 첫 번째 조회 후 응답 시간이 크게 개선되지 않았습니다.) DNS 조회 결과를 캐시하도록 NetworkManager 제어 dnsmasq를 어떻게 구성합니까?
Ubuntu Desktop 12.04는 dnsmasq를 사용하여 DNS 조회를 수행하지만 이러한 결과 를 캐시하도록 구성되지 않았습니다 . (이름을 확인하기 위해 dig를 사용하여이를 확인했으며 첫 번째 조회 후 응답 시간이 크게 개선되지 않았습니다.) DNS 조회 결과를 캐시하도록 NetworkManager 제어 dnsmasq를 어떻게 구성합니까?
답변:
Ubuntu 12.10에서는 라인을 입력하여 NetworkManager 제어 dnsmasq 인스턴스의 캐시를 활성화 할 수 있습니다
cache-size=1000
/etc/NetworkManager/dnsmasq.d/의 새 파일에 (1000 대신 기본 이름을 사용) 이 변경 사항을 활성화하려면 다음을 수행해야합니다.
sudo stop network-manager
sudo killall dnsmasq
sudo start network-manager
또는 재부팅하십시오.
sudo systemctl stop NetworkManager
첫 번째 답변에서 설명한 방법을 사용하여 Linux Mint 13 (Ubuntu 12.04 기반)에서 DNS 캐싱을 활성화 할 수있었습니다. /etc/NetworkManager/dnsmasq.d/cachedns
줄이 포함 된 파일 을 만든 cache-size=100
다음 네트워크 관리자를 다시 시작했습니다. dnsmasq가 --cache-size=0
명령 행에 하드 코드 된 네트워크 관리자에 의해 실행 되더라도 구성 파일에서 캐시 크기를 설정하면 해당 값이 대체됩니다. 다음을 수행하여 작동하는지 확인할 수 있습니다.
sudo killall -USR1 dnsmasq
tail /var/log/syslog
캐시 크기를 보여주는 syslog에 다음과 같은 행이 표시됩니다.
dnsmasq[17808]: cache size 100, 0/2 cache insertions re-used unexpired cache entries.
12.04에서 업그레이드하고 싶지 않았지만 캐싱이 활성화 된 NetworkManager에서 dnsmasq 관리를 원했지만 다른 답변에서 알 수 있듯이 --cache-size = 0은 하드 코딩되어 있으며 구성으로 변경할 수 없습니다.
그래서 내가 끝낸 것은 루트로서 다음과 같습니다.
mv /usr/sbin/dnsmasq /usr/sbin/dnsmasq.real
다음 내용으로 / usr / sbin / dnsmasq 파일을 새로 만듭니다 :
#!/bin/bash
args=$(echo "$@" | sed 's/--cache-size=0/--cache-size=1000/')
/usr/sbin/dnsmasq.real $args
확인 chmod +x /usr/sbin/dnsmasq
하고 캐시 크기를 1000에서 원하는 것으로 변경하고 DNS 캐시로 LTS 릴리스를 즐기십시오!
12.04에서 dnsmasq는 하드 코딩 된 (즉, 구성 할 수없는) 매개 변수 --cache-size = 0 으로 NetworkManager에 의해 시작됩니다 .
dnsmasq의 맨 페이지에 cache-size를 0으로 설정하면 캐싱이 비활성화됩니다. 캐싱을 사용하려면 NetworkManager가 dnsmasq를 시작하지 못하게하고 캐시 크기가 0보다 큰 dnsmasq 인스턴스를 시작하지 않도록 NetworkManager에 대해 dnsmasq-plugin을 사용 안함으로 설정해야합니다.
여기에서 NetworkManager에 대해 dnsmasq-plugin을 비활성화하는 방법을 읽을 수 있습니다. https://askubuntu.com/a/131422/71057