지정된 일부 도메인 이름에 대해서만 업스트림 DNS 서버를 사용하도록 dnsmasq를 적용하는 방법은 무엇입니까?

지정된 일부 도메인 이름에 대해서만 업스트림 DNS 서버를 사용하도록 dnsmasq를 적용하는 방법은 무엇입니까?

현재 dnsmasq.conf에는 모든 요청을 잘 처리하는 다음 줄이 있습니다( /#/모든 도메인과 일치하며 필수임).

address=/#/127.0.0.1

그러나 127.0.0.1.

임시 솔루션으로 다음에 추가되었습니다 /etc/hosts.

209.85.148.95   ajax.googleapis.com
207.97.227.245  underscorejs.org
72.21.194.31    s3.amazonaws.com

안타깝게도 이는 매우 임시적인 해결 방법입니다. 대상 도메인의 IP 주소가 변경되는 즉시 작동이 중지됩니다.

내 질문은: 일부 (지정된) 도메인 이름의 IP 주소를 확인하기 위해 업스트림 DNS 서버를 사용하도록 dnsmasq를 적용하는 방법입니다.

답변1

server=예를 들어 지시문 을 사용하여 이 작업을 수행할 수 있습니다 .

server=/ajax.googleapis.com/8.8.8.8

마찬가지로 ajax.googleapis.com 도메인에 대한 Google 공개 DNS 서버를 쿼리합니다.

server=/amazonaws.com/209.244.0.3

Level3의 퍼블릭 DNS 서버에 amazonaws.com 도메인을 쿼리합니다.

여러 도메인을 함께 그룹화할 수 있습니다.

server=/co.uk/com/8.8.4.4

.co.uk 및 .com 도메인을 8.8.4.4의 DNS 서버로 보냅니다.

server=여러 지시어를 가질 수도 있습니다

−S, --server=[/[<도메인>]/[도메인/]][<ipaddr>[#<포트>][@<소스>[#<포트>]]]

업스트림 서버의 IP 주소를 직접 지정합니다. 이 플래그를 설정해도 /etc/resolv.conf 읽기가 억제되지 않습니다. 그렇게 하려면 -R을 사용하십시오. 하나 이상의 선택적 도메인이 제공되면 해당 서버는 해당 도메인에만 사용되며 지정된 서버를 통해서만 쿼리됩니다. 이는 개인 네임서버를 위한 것입니다. 네트워크에 192.168.1.1에서 xxx.internal.thekelleys.org.uk 형식의 이름을 처리하는 네임서버가 있는 경우 -S /internal.thekelleys.org.uk/ 플래그를 제공합니다. 192.168.1.1은 내부 시스템에 대한 모든 쿼리를 해당 네임서버로 보내고, 다른 모든 것은 /etc/resolv.conf의 서버로 이동합니다. 빈 도메인 사양은 // "한정되지 않은 이름만"이라는 특별한 의미를 갖습니다. 즉, 점이 없는 이름입니다. 비표준 포트는 # 문자를 사용하여 IP 주소의 일부로 지정할 수 있습니다. 필요에 따라 반복되는 도메인 또는 ipaddr 부분과 함께 둘 이상의 -S 플래그가 허용됩니다.

또한 도메인은 제공하지만 IP 주소는 제공하지 않는 -S 플래그도 허용됩니다. 이는 도메인이 로컬이고 /etc/hosts 또는 DHCP의 쿼리에 응답할 수 있지만 해당 도메인에 대한 쿼리를 업스트림 서버로 전달해서는 안 된다는 것을 dnsmasq에 알려줍니다. local은 이 경우 구성 파일을 더 명확하게 만드는 서버와 동의어입니다.

@ 문자 뒤의 선택적 두 번째 IP 주소는 dnsmasq에게 이 네임서버에 대한 쿼리의 소스 주소를 설정하는 방법을 알려줍니다. 이는 dnsmasq가 실행 중인 시스템에 속하는 주소여야 합니다. 그렇지 않으면 이 서버 라인이 기록된 후 무시됩니다. 지정된 소스 주소가 있는 서버에서는 쿼리 포트 플래그가 무시되지만 포트는 소스 주소의 일부로 직접 지정될 수 있습니다.

관련 정보