需要 2 个 $ORIGIN 指令

需要 2 个 $ORIGIN 指令

在大多数 DNS 区域示例中,如下所示

$ORIGIN .
$TTL 86400  ; 1 day
example.com     IN SOA  dns.example.com. hostmaster.example.com. (
        2001062504 ; serial
        21600      ; refresh (6 hours)
        3600       ; retry (1 hour)
        604800     ; expire (1 week)
        86400      ; minimum (1 day)
        )
    NS  dns.example.com.
    A   192.168.1.2
    MX  10 mail.example.com.
 $ORIGIN example.com.
 $TTL 60 ; 1 minute
 dd2         A   192.168.1.7
 $TTL 86400  ; 1 day
 ex1         A   192.168.1.2
 ex2         A   192.168.1.2
 ex3         A   192.168.1.3
 ex4         A   192.168.1.4

我见过 ORIGIN 被用作 $ORIGIN . 和 $ORIGIN example.com。

这有什么用?这是用于同一区域文件内的委派吗?

更新:

我尝试如下:

$ORIGIN lab.example.com.
$TTL 1d
@     IN      SOA     colombo root.lab.example.com.  (
                                      2003022720 ; Serial
                                      56800      ; Refresh
                                      14400      ; Retry
                                      3600000    ; Expire
                                      2h )    ; Min

;NS Records
@              IN      NS      ns1.lab.example.com.
@              IN      NS      ns2.lab.example.com.
mail           IN      NS      ns1.mail.lab.example.com

;A Records
ns1            IN      A       192.0.2.123
ns2            IN      A       192.0.2.124

$ORIGIN mail.lab.example.com.
ns1            IN      A       192.0.2.155

但当我这样做

named-checkzone lab.example.com lab.example.zone
zone lab.example.com/IN: mail.lab.example.com/NS 'ns1.mail.lab.example.com.lab.example.com' has no address records (A or AAAA)
zone lab.example.com/IN: loaded serial 2003022720
OK

为什么我会收到这样的错误?

zone lab.example.com/IN: mail.lab.example.com/NS 'ns1.mail.lab.example.com.lab.example.com' has no address records (A or AAAA)

答案1

不是,$ORIGIN这只是一个快捷方式,用于设置其后的所有记录的默认“后缀”。加载区域文件时会展开,并且外部不可见。

如果字段包含域名不是以 结尾.,那么它就是相对的域名,并将当前来源附加到其后。当然,您仍然可以在必要时使用绝对域名(以点结尾)。

(因此使用$ORIGIN .只会使相对example.com和绝对example.com.等效。)

举个例子,所有这些片段都是等效的:

  1. 根本没有 $ORIGIN:

    example.com.       MX     mail.example.com.
    www.example.com.   CNAME  mail.example.com.
    ftp.example.com.   CNAME  ftp.iana.org.
    mail.example.com.  A      1.2.3.4
    a.ns.example.com.  A      2.3.4.5
    
  2. 单个 $ORIGIN:

    $ORIGIN example.com.
    @     MX     mail
    www   CNAME  mail
    ftp   CNAME  ftp.iana.org.
    mail  A      1.2.3.4
    a.ns  A      2.3.4.5
    
  3. 多个 $ORIGIN:

    $ORIGIN example.com.
    @     MX     mail
    www   CNAME  mail
    ftp   CNAME  ftp.iana.org.
    mail  A      1.2.3.4
    $ORIGIN ns.example.com.
    a     A      2.3.4.5
    

相关内容