
unbound.conf
구성하는 데 사용됩니다.매여 있지 않은, 캐싱 DNS 확인자. 그만큼선적 서류 비치버전 1.6.8에서는 다음과 같이 말합니다.
Server Options
private-domain: <domain name>
Allow this domain, and all its subdomains to contain private
addresses. Give multiple times to allow multiple domain names
to contain private addresses. Default is none.
우리는 Debian Stretch를 사용하여 바인딩되지 않은 버전 1.6.0을 실행합니다(맨페이지와 인용 문서는 여기에서 다르지 않습니다).
우리는 다음과 같은 세 가지 변형을 테스트했습니다.
- 편집
/etc/unbound/unbound.conf
- 확인 중
unbound-checkconf
- 다시 시작
systemctl restart unbound.service
- 바인딩되지 않은 로그 파일을 모니터링합니다.
변형 1(점으로 끝남):
private-domain: domain.example.
변형 2(점으로 끝나지 않음):
private-domain: domain.example
변형 3(지정된 순서대로):
private-domain: "domain.example. domain.example"
세 가지 변형 모두에 대해 unbound-checkconf
다음이 반환됩니다.
unbound-checkconf: no errors in /etc/unbound/unbound.conf
변형 3에서는 로그 파일에서 다음을 찾습니다.
debug: ignoring duplicate private-domain: domain.example.
동일한 도메인 이름에 대해 하나의 항목으로 충분해야 하며 언바운드가 도메인 이름을 작성하는 두 가지 방법(점 포함/제외)에 대해 동일한 처리가 있는지 확인하는 것 같기 때문에 의미가 있습니다.
두 가지 방법 모두 작동하지만 바인딩되지 않은 개인 도메인 이름을 정의하는 올바른 구문은 무엇입니까? 도메인 이름은 점으로 끝나야 할까요, 아니면 끝나야 할까요? 끝에 있는 점은 유용한가요, 아니면 의미가 없는가요? 불필요하거나 누락된 점이 어떤 의미를 가질 수 있습니까?
답변1
이 질문은 오래되었지만 여전히 검색의 첫 번째 항목으로 나타났으므로 IMO에서 답변해 볼 가치가 있습니다.
domain.example
결론: 이 맥락과 대부분의 다른 맥락에서는 (후행 없음 .
)과 domain.example.
(훈련 있음 .
) 사이에 실질적인 차이가 없습니다 . 그러므로 둘 다 맞습니다.
이제 긴 대답입니다. :) 이 답변과 2018년의 유일한 다른 의견은 OP에 대한 2018년 의견과 마찬가지로 사양에 명시된 내용에서 진행됩니다. RFC와 Unbound가 도메인 이름을 사용하는 방식 사이에는 의미상 차이가 있을 수 있지만 이는 사양에서 벗어난 것이며 버그로 간주될 가능성이 높습니다.
RFC 1034 섹션 3.1도메인 이름의 핵심 구문을 다음과 같이 정의합니다.
사용자가 도메인 이름을 입력해야 하는 경우 각 레이블의 길이는 생략되고 레이블은 점(".")으로 구분됩니다. 완전한 도메인 이름은 루트 레이블로 끝나기 때문에 점으로 끝나는 인쇄된 형식이 됩니다. 우리는 이 속성을 사용하여 다음을 구별합니다.
완전한 도메인 이름을 나타내는 문자열 (종종 "절대"라고 함). 예를 들어 "poneria.ISI.EDU"입니다.
불완전하고 로컬 도메인에 대한 지식을 사용하여 로컬 소프트웨어로 완성되어야 하는 도메인 이름의 시작 레이블을 나타내는 문자열(종종 "친척"이라고 함). 예를 들어 ISI.EDU 도메인에서 사용되는 "poneria"입니다.
상대 이름은 잘 알려진 출처 또는 검색 목록으로 사용되는 도메인 목록을 기준으로 선택됩니다.
마지막 문장에 유의하십시오. "검색 목록으로 사용되는 도메인 목록"이 정의되지 않는 한, 뒤에 점이 없는 이름은 "잘 알려진 출처", 즉 이름 계층 구조의 루트를 기준으로 간주됩니다. 공용 DNS의 경우 DNS 루트는 다음에 해당합니다.루트 영역; 개인 이름 계층 구조는 이 규칙에서 거의 벗어나지 않습니다.
실용적인 목적을 위해 이는 후행이 없는 FQDN(정규화된 도메인 이름)이 .
거의 항상 동일한 "절대" 도메인에 해당하는 이름 계층 구조의 루트를 기준으로 간주되어야 함을 의미합니다. 따라서 domain.example
== " domain.example
루트에 상대적인" == 입니다 domain.example.
.
서로 다른 표현은 언제 영향을 미칠 수 있습니까? 당신이 다루고 있을 때파편FQDN 대신 도메인 이름. 이 경우 마침표를 생략하고 FQDN에서 마침표 사용을 고려해야 합니다. 실행하고 example.com.
(기간 참고, 루트 서버가 사용자에게 트래픽을 보냅니다 ) 하위 도메인으로 *.example.com
설정하려는 경우 하위 도메인입니다. 최상위 도메인(TLD)입니다 .east.example.com.
east
east.
.east
다시 말하지만, 이것이 사양에 나와 있는 내용입니다. 언제나 그렇듯이 구성 중인 도구에 대한 문서를 확인하세요. 사양의 다른 영역, 특히 DNS 압축에도 몇 가지 추가 의미가 도입됩니다. DNS 유선 프로토콜에서 문자 그대로 메시지를 구문 분석하거나 생성하지 않는 경우 이를 무시할 수 있습니다.
그 질문에 완전히 대답되기를 바랍니다. 이것이 누군가에게 도움이 되기를 바랍니다.