오늘 이상한 시나리오를 만났습니다.
일반적으로 바인딩9 영역 레코드를 설정할 때 ORIGIN과 동일한 NS 레코드를 넣습니다. 그러나 오늘 프로덕션 사이트에서 다른 도메인을 가리키는 NS 레코드가 있는 작업 중인 바인드9 설정을 발견했습니다.
[데이터/cat_com.zone]
$ORIGIN cat.com.
$TTL 600
@ IN SOA ns.tree.com. hostmaster.cat.com. (
2015030200
21600
3600
604800
86400 )
IN NS ns.tree.com.
IN NS ns2.tree.com.
IN MX 10 cat.com.
ns IN A 1.2.3.124
ns2 IN A 1.2.3.124
host19 IN A 1.2.3.66
그리고 tree.com의 기록에서: [data/tree_com.zone]
$TTL 600
@ IN SOA ns.tree.com. hostmaster.tree.com. (
2015030200 ; serial
28800 ; refresh
7200 ; retry
3600000 ; expire
86400 ; default_ttl
)
@ IN NS ns.tree.com.
@ IN NS ns2.tree.com.
@ IN MX 10 mail.tree.com.
tree.com. IN A 1.2.3.66
ns.tree.com. IN A 1.2.3.124
ns2.tree.com. IN A 1.2.3.124
그리고 명명된.conf에는 다음이 포함됩니다.
zone "tree.com" {
type master;
file "data/tree_com.zone";
};
zone "cat.com" {
type master;
file "data/cat_com.zone";
};
따라서 cat.com에서 A 레코드(host19.cat.com)를 확인하려고 하면 1.2.3.66 레코드를 얻을 수 있습니다. 이는 SOA 영역 파일에 따르면 NS 레코드가 ns.tree.com을 가리키고 있고, tree.com의 SOA 영역 파일에는 host19.cat.com의 정보가 없기 때문에 이상합니다. 이 경우 DNS 확인 프로세스는 어떻게 오류 없이 작동할 수 있습니까? NS 레코드가 여기서 역할을 합니까, 아니면 사용해야 하는 SOA 영역 파일을 결정하는 것은 명명된.conf뿐입니다(이 경우 cat.com은 cat_com.zone 파일을 참조합니다). 그리고 cat.com의 NS 레코드입니다. SOA는 아무 의미가 없었나요?
답변1
ns1.example.com
해당 도메인 외부의 네임 서버를 가리키는 도메인 이름/영역 파일을 갖는 것은 전혀 문제가 없습니다. 즉, 도메인 의 이름 서버로 사용하는 것도 문제가 없습니다 example.org
.
필요하지 않다는 의미일 뿐만 아니라접착제 기록영역 에서는 example.org
관리하기도 더 쉬운 경우가 많습니다.
ns1.example.com
도메인 에 대한 리소스 레코드 도 영역 데이터 example.org
에서 검색되어야 함 을 암시하는 것과 같은 외부 NS 레코드를 생각하는 데 약간의 개념적 실수가 있었던 것 같습니다 . example.com
그렇지 않습니다. NS 레코드는 다음을 가리킵니다.주인해당 도메인에 대한 이름 서비스를 실행하지만 리소스 레코드는 해당 example.org
도메인에 특정한 영역 데이터에서 제공됩니다.