IPv6 영역 파일의 $ORIGIN 지시어

IPv6 영역 파일의 $ORIGIN 지시어

나는 종종 다음과 같은 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웹사이트. 나는CNAMEblog.somedom.com. 내가 사용할 서비스를 설정하고 구성합니다.blog.somedom.comCNAME어디에서나 내 DNS 바인딩 서버에 묻혀 있지만 매핑이 있습니다.blog.somedom.com이 이름을 실제 서버와 연관시키십시오.blog.bubba.net서비스를 제공하는 것입니다.

인용하다

관련 정보