dnsmasq는 존재하지 않는 하위 도메인을 로컬 IP로 가리킵니다.

dnsmasq는 존재하지 않는 하위 도메인을 로컬 IP로 가리킵니다.

IP가 계속 변경되는 특정 원격 하위 도메인이 있으며 mymachine.home.com이를 올바르게 해결하려면 DNSMasq를 업데이트해야 합니다.

하지만 존재하지 않는 핑을 테스트했는데 xxxxxx.home.com모두 내 NginX 리버스 프록시를 가리키고 싶어 하는 것 같았습니다. (내 항목의 대부분이 거기를 가리킨다.)

DNSMasq가 존재하지 않는 하위 도메인을 로컬 IP로 확인하는 것을 방지하는 방법은 무엇입니까? (항상 같은 IP)

또는

특정 항목에 대해 항상 외부 DNS를 사용하도록 DNSMasq에 지시하려면 어떻게 해야 합니까?

이것이 나의 설치 구성입니다.

#DNS_Config
#Dont use external file for custom dns
no-hosts
#Use this file for DNS nameservers (contains googles DNS)
resolv-file=/etc/resolv.dnsmasq.conf

##CUSTOM_DNS
#PING home.com = 192.168.1.210
address=/home.com/192.168.1.210
##DHCP##

##DHCP_Config
#Listen only on eth0
interface=eth0
#DHCP Range 192.168.1.2-127 (12hr lease time)
dhcp-range=192.168.1.2,192.168.1.127,12h
#RESERVE DNSMasq SERVER IP
dhcp-host=00:0c:29:c2:56:bf,192.168.1.149
#Change DEFAULT GATEWAY (Default is same IP as DNSMasq Server)
dhcp-option=option:router,192.168.1.1


##STATIC_DHCP
#STATIC IP to 2 MAC Address that WILL NOT be used simultaneously [IE: Laptop with WiFi + LAN]
dhcp-host=00:00:00:00:00:00,00:00:00:00:00:00,192.168.1.210
#Assign STATIC IP by MAC
dhcp-host=00:00:00:00:00:00,192.168.1.211

답변1

존재하지 않는 도메인에 대해 가짜 IP 주소를 얻는 가장 일반적인 이유는 잘못된 웹사이트 주소를 입력했을 때 더 많은 광고를 제공하기 위해 ISP가 부정적인 답변을 광고 서버의 주소로 변환하기 때문입니다. 이는 확실히 잘못된 관행이지만 불행하게도 일부 ISP에서는 그렇게 합니다.

일반적으로 다른 업스트림 DNS 서버를 사용하여 이 상황을 처리할 수 있습니다.오픈 DNS( server=208.67.222.222server=208.67.220.220) 또는 Google ( server=8.8.8.8server=8.8.4.4). 자체 고객 서비스를 제공하기 위해 ISP 서버가 필요한 경우 server=/myisp.com/203.0.113.1특정 도메인( ) 내에서만 사용할 수 있습니다.

즉, 귀하의 경우 문제는 구성이 원하는 대로 작동하지 않는다는 것입니다.

DNSMasq가 존재하지 않는 하위 도메인을 로컬 IP로 확인하는 것을 방지하는 방법.

도메인이 존재한다고 선언하지 않음으로써. Dnsmasq는 존재하지 않는 도메인을 IP 주소로 대체하지 않습니다.

특정 항목에 대해 항상 외부 DNS를 사용하도록 DNSMasq에 지시하는 방법은 무엇입니까?

호스트 이름 값을 선언하지 않거나 호스트 이름에 와일드카드 문자를 포함합니다.

구성의 문제는 라인입니다

address=/home.com/192.168.1.210

이는 와일드카드입니다. 이는 이 도메인 아래의 192.168.1.210주소와 모든 호스트 이름임을 선언합니다. home.com이 와일드카드는 필요하지 않으므로 제거하세요.

대신 home.com합계의 개별 영역을 다음 home.com과 같이 선언하세요.CPU 이름/etc/hosts, 와일드카드 대신 해당 줄을 에 나열하여 제거하세요. no-hosts특정 호스트를 선언하려고 하므로 필요합니다! 또는 사용하고 싶지 않다면 /etc/hosts이 줄을 유지하고 선언을 사용하여 다른 파일을 가리키는 줄을 추가하세요 addn-hosts=/path/to/hosts-file. 또는 모든 것을 내부로 유지하려면 dnsmasq.conf행을 다음으로 바꾸십시오.host-record=home.com,192.168.1.210

예외가 있는 와일드카드를 원하는 경우(예외를 xxx.home.com제외한 모든 항목은 192.168.1.210을 반환 mymachine.home.com하거나 항상 업스트림 서버에 쿼리하고 부정적인 대답에 대해 192.168.1.210만 대체) dnsmasq는 그렇게 할 수 없다고 생각합니다.

답변2

Jill의 정답을 확장하자면 다음과 같습니다.

TheKelleys.org DNSMasq 매뉴얼 페이지에서

-A, --address=/<domain>/[domain/][<ipaddr>]

지정된 도메인의 모든 호스트에 대해 반환될 IP 주소를 지정합니다.도메인 내의 쿼리는 전달되지 않으며 항상 지정된 IP 주소(IPv4 또는 IPv6일 수 있음)로 응답됩니다. 도메인에 IPv4 및 IPv6 주소를 모두 제공하려면 -A 플래그를 반복해서 사용하세요. /etc/hosts 및 DHCP 임대는 개별 이름에 대한 이 설정을 재정의합니다. 일반적인 용도는 배너 광고를 피하기 위해 전체 doubleclick.net 도메인을 친숙한 로컬 웹 서버로 리디렉션하는 것입니다. 도메인 사양은 --server와 동일하게 작동하지만 모든 도메인과 일치하는 /#/의 추가 기능이 있습니다.따라서 --address=/#/1.2.3.4는 /etc/hosts 또는 DHCP에서 응답하지 않고 보다 구체적인 이름 서버에 의해 업스트림 이름 서버로 전송되지 않는 모든 쿼리에 대해 항상 1.2.3.4를 반환합니다.--서버 명령. --server의 경우 주소가 없는 하나 이상의 도메인은 no-such-domain 응답을 반환하므로 --address=/example.com/은 --server=/example.com/과 동일하며 예를 들어 NXDOMAIN을 반환합니다. . com 및 모든 하위 도메인.

--host-record=<name>[,<name>....],[<IPv4-address>],[<IPv6-address>][,<TTL>]

A, AAAA 및 PTR 레코드를 DNS에 추가합니다.이렇게 하면 하나 이상의 이름과 관련 IPv4(A) 및 IPv6(AAAA) 레코드가 DNS에 추가됩니다.이름은 둘 이상의 호스트 레코드에 나타날 수 있으므로 여러 주소가 할당될 수 있습니다. 첫 번째 주소만 주소를 이름에 연결하는 PTR 레코드를 생성합니다. 이는 호스트 파일을 읽는 데 사용되는 것과 동일한 규칙입니다. 호스트 레코드 옵션은 호스트 파일보다 먼저 읽혀지는 것으로 간주되므로 여기에 나타나는 이름은 호스트 파일에도 나타나는 경우 PTR 레코드 생성을 억제합니다. 호스트 파일과 달리 확장 호스트가 유효하더라도 이름은 확장되지 않습니다. 예를 들어, 짧은 이름과 긴 이름이 동일한 호스트 레코드에 나타날 수 있습니다. --host-record=laptop,laptop.thekelleys.org,192.168.0.1,1234::100 TTL(time-to-live)이 제공되면 기본값(0 또는 --local-ttl 값)을 재정의합니다. 값은 생존 시간(초)을 제공하는 양의 정수입니다.

답변3

내 도메인 이름에 대한 항목이 있습니다.

address=/domain.com/192.168.1.7(내 NginX 리버스 프록시)

이로 인해 존재하지 않는 모든 하위 도메인(예: acoimasdin.domain.com)이 192.169.1.7로 확인됩니다.

domain.com을 www.domain.com으로 전달하기 위해 Apache에 이미 모든 설정이 있으므로 다음을 입력했습니다.

address=/www.domain.com/192.168.1.7

이제 내 원격 하위 도메인 DNS가 Google DNS로 전달되고 존재하지 않는 DNS는 "호스트가 존재하지 않습니다"로 반환됩니다. 이것이 바로 제가 원하는 것입니다!

기본적으로 하단/상단(올바른 용어가 확실하지 않음) 수준 항목(예: domain.com)을 가질 수 없습니다. 그렇지 않으면 존재하지 않는 모든 DNS 항목이 해당 DNS 항목을 사용합니다.

관련 정보