내 우분투 서버에 DNS 서버(bind9)를 설치했고 nslooup 및 dig를 사용하여 호스트 이름에서 IP 주소로 이름 확인을 수행할 수 있지만 역방향 조회를 시도하면 오류가 발생합니다.
nslookup 192.168.137.5
** server can't find 5.137.168.192.in-addr.arpa: NXDOMAIN
IP 주소는 로컬 서버의 IP 주소이며, Bind9이 설치된 네임서버이기도 합니다. 정방향 조회를 하면 작동합니다.
nslookup example.com
Server: 192.168.137.5
Address: 192.168.137.5#53
Name: example.com
Address: 192.168.137.5
Name: example.com
Address: ::1
내 구성 파일은 총 3개입니다:named.config.local,forward.example.com,reverse.example.comnamed.conf.local
zone "example.com" IN {
type master;
file "/etc/bind/forward.example.com";
};
zone "137.168.192.in-addr.arpa" IN {
type master;
file "/etc/bind/reverse.example.com";
};
앞으로.example.com
$TTL 604800
@ IN SOA example.com. root.example.com. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS home-server.example.com.
@ IN A 192.168.137.5
@ IN AAAA ::1
home-server IN A 192.168.137.5
wintop IN A 192.168.137.1
reverse.example.com
$TTL 604800
@ IN SOA example.com. root.example.com. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS home-server.
@ IN PTR example.com.
@ IN AAAA ::1
home-server IN A 192.168.137.5
host IN A 192.168.137.5
wintop IN A 192.168.137.1
10 IN PTR home-server.example.com.
11 IN PTR wintop.example.com.
답변1
forward.example.com
영역 파일 에 따라 reverse.example.com
영역 파일은 다음과 같아야 합니다.
$TTL 604800
$ORIGIN 137.168.192.in-addr.arpa.
@ IN SOA example.com. root.example.com. (
3 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
@ IN NS example.com.
5 IN PTR example.com.
1 IN PTR wintop.example.com.
하위 영역 위임의 글루 레코드를 제외하고는 역방향 영역에는 A
또는 기록이 없어야 합니다.AAAA
원본 역방향 영역 파일에서는 IP 주소가 순방향 영역과 일치하지 않는 192.168.137.10 home-server.example.com
및 192.168.137.11 이라고 주장합니다.wintop.example.com
IPv6 로컬호스트 주소를 주장하는 것은 ::1
어리석은 일입니다. 리버스 존에서는 전혀 효과가 없고, 포워드 존에서는 단지 잘못된 것입니다. 클라이언트가 "그게 어디죠 home-server.example.com
?"라고 물으면 전달 영역은 "IPv4의 경우 192.168.137.5이고 IPv6의 경우 ::1입니다."라고 대답할 것입니다. Windows Vista 이후 최신 운영 체제는 IPv6을 지원하므로 이름은 단지 나를 가리키는 멋진 방법일 뿐입니다. 좋습니다. 결국 아무것도 할 필요가 없습니다. ” ... home-server.example.com
요청이 실제로 에서 오는 것이 아니라면 아마도 당신이 원하는 일이 아닐 것입니다.
DNS 서버는 전혀 해석하지 않고 레코드를 클라이언트에 전달한다는 점을 기억하십시오. 실제로 정보를 사용하는 사람은 클라이언트입니다.
당신은 또한 어느 것이인지 고려하고 싶을 수도 있습니다모델192.168.137.5의 이름은 다음과 같습니다. home-server.example.com
아니면 그냥 인가요 example.com
? 이름 중 하나를 다른 이름의 별칭(CNAME 레코드)으로 만들어야 할 수도 있습니다. 그렇지 않으면 두 이름 모두에 대한 SSL/TLS 인증서를 성공적으로 확인하지 못할 수도 있습니다.
따라서 전면 영역은 다음과 같아야 합니다.
$TTL 604800
$ORIGIN example.com.
@ IN SOA example.com. root.example.com. (
3 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS example.com.
@ IN A 192.168.137.5
home-server IN CNAME example.com.
wintop IN A 192.168.137.1