나는 종종 다음과 같은 BIND 영역 파일을 봅니다.
$ORIGIN 2.0.3.0.8.b.d.0.1.0.0.2.ip6.arpa.
$TTL 604800
@ IN SOA ns1.example.org. hostmaster.example.org. (
1978022513 ; Serial
10800 ; Refresh
3600 ; Retry
2419200 ; Expire
604800 ) ; Default TTL
NS ns1.example.org.
NS ns2.example.org.
TXT "2001:db8:302::/48 Example IPv6 reverse"
$ORIGIN 0.0.0.0.2.0.3.0.8.b.d.0.1.0.0.2.ip6.arpa.
1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 PTR host.example.net.
추가 $ORIGIN 지시문이 필요한 이유는 무엇입니까? "$ORIGIN 0.0.0.0.2.0.3.0.8.bd0.1.0.0.2.ip6.arpa"를 의미합니다. 하나. 간단히 말해서:
$ORIGIN 2.0.3.0.8.b.d.0.1.0.0.2.ip6.arpa.
$TTL 604800
@ IN SOA ns1.example.org. hostmaster.example.org. (
1978022513 ; Serial
10800 ; Refresh
3600 ; Retry
2419200 ; Expire
604800 ) ; Default TTL
NS ns1.example.org.
NS ns2.example.org.
TXT "2001:db8:302::/48 Example IPv6 reverse"
1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 PTR host.example.net.
답변1
$ORIGIN 지시문은 해당 시점부터만 적용됩니다. 예시 보기Pro DNS 및 BIND - 8장 - $ORIGIN 지시어.
첫 번째 $ORIGIN 지시어는 이 영역에 포함되는 2001:db8:302::/48을 쉽게 참조할 수 있습니다.
두 번째 $ORIGIN 지시어는 적절한 크기의 서브넷인 2001:db8:302:0::/64를 쉽게 참조할 수 있습니다(/64는 IPv6의 표준 크기 서브넷임).
이렇게 하면 어색한 IPv6 역방향 RR 이름을 사용하여 사물을 추적하기가 매우 어려워지는 4자리 0을 방지할 수 있습니다. 나는 당신의 예 0
에서 19, 20, 21을 세지 않았습니다. 물론 누군가는 내가 15, 16, 17을 셀 필요가 없기를 바라지만, 적어도 그것은작은더 짧습니다.
전체 /48 블록이 실제로 귀하의 통제 하에 있고 귀하에게 할당되지 않는 한 전체 /48 역방향 영역에 대해 귀하의 네임서버를 신뢰할 수 있도록 설정해서는 안 됩니다.
전문가 팁: 특히 IPv6 서브넷 및 역방향 DNS 레코드의 경우 $ORIGIN 지시문에 정규화되지 않은 이름을 사용할 수 있다는 점을 기억하세요. 예를 들어:
$ORIGIN 2.0.3.0.8.b.d.0.1.0.0.2.ip6.arpa. ;; Below this applies to 2001:db8:302::/48
@ SOA ...
; ... whatever else applies ...
$ORIGIN 0.0.0.0 ;; Below this applies to 2001:db8:302:0::/64
; ... whatever applies ...
특히 이번 경우에는 제가강하게의도를 명확히 하기 위해 $ORIGIN 지시어 옆에 주석을 남기는 것이 좋습니다. 태그 끝에 종료 기간이 누락되는 것은 DNS 문제의 일반적인 원인이므로 이를 명확히 하는 것이 가장 좋습니다.아니요그렇다면 정규화된 이름을 만들도록 계획하세요.
또한 이 트릭은 더 긴 소스에서만 작동하므로 2001:db8:302::/48에서 2001:db8:302:0::/64로 이동할 수 있지만 2001:db8:302:0::에서는 이동할 수 없습니다. /64 ~ 2001:db8:302:1::/64. (하지만 당신은할 수 있다원하는 경우 2001:db8:302::/60에서 2001:db8:302:1::/64까지입니다. )
답변2
@MichaelKjörling의 답변에 추가하기 위해 DNS 바인딩 설정에서 비슷한 작업을 수행했습니다. 이는 중복된 이름을 계속해서 복사할 필요가 없도록 하기 위한 것입니다.
$ORIGIN .
$TTL 604800 ; 1 week
bubba.net IN SOA ns.bubba.net. hostmaster.bubba.net. (
2000075011 ; serial
28800 ; refresh (8 hours)
7200 ; retry (2 hours)
3600000 ; expire (5 weeks 6 days 16 hours)
86400 ; minimum (1 day)
)
NS ns.bubba.net.
A 192.168.1.1
MX 10 mail.bubba.net.
MX 20 mail.bubba.net.
TXT "v=spf1 mx/24 ~all"
그런 다음 여기 파일에 $ORIGIN을 설정하여 내 도메인 "bubba.net"을 시작할 수 있습니다.
$ORIGIN bubba.net.
apu A 192.168.1.112
HINFO "VZ12" "VZ12"
MX 10 mail
TXT "v=spf1 redirect=bubba.net"
bart A 192.168.1.103
HINFO "VZ3" "VZ3"
MX 10 mail
TXT "v=spf1 redirect=bubba.net"
그런 다음 나중에 동일한 파일에서 $ORGIN을 다시 설정합니다. 이번에는 "somedom.com.bubba.net"으로 설정합니다. 그래서 나는 다음과 같이 할 수 있습니다 :
$ORIGIN somedom.com.bubba.net.
$TTL 172800 ; 2 days
bender CNAME bender.bubba.net.
blog CNAME blogs.bubba.net.
db CNAME db.bubba.net.
따라서 위에 항목이 있으며 확장하면 다음과 같습니다.
bender.somedom.com.bubba.net. CNAME bender.bubba.net.
다른 도메인을 믹스에 추가하기 위해 파일에서 이 작업을 여러 번 수행합니다. 이렇게 하는 이유는 기본 도메인(bubba.net)에 서버를 설정하고 다른 도메인의 서버 및 서비스 이름에 대한 CNAME을 만들어 기본 도메인에 덮어쓰기 위해서입니다.
예를 들어:
나는 인터넷에 도메인 이름을 소유하고 있습니다.XX웹사이트. 나는CNAME
blog.somedom.com. 내가 사용할 서비스를 설정하고 구성합니다.blog.somedom.comCNAME
어디에서나 내 DNS 바인딩 서버에 묻혀 있지만 매핑이 있습니다.blog.somedom.com이 이름을 실제 서버와 연관시키십시오.blog.bubba.net서비스를 제공하는 것입니다.