NSX Advanced Load Balancer DNS 支持将名称服务器 (NS) 记录作为静态 DNS 记录的一部分(NSX Advanced Load Balancer GSLB 不支持 NS 记录)。

DNS 名称服务器 (NS) 记录指定为特定域提供服务的名称服务器的域名。例如,下面定义了一个生存期 (TTL) 为 1100 秒的 NS 记录,表示由名称服务器 a.gtld-servers.net 提供服务的 com 域:

com.   1100    IN      NS      a.gtld-servers.net.

对于 NS 记录,NSX Advanced Load Balancer DNS 既可以充当权威服务器,也可以充当非权威服务器。可以在 NSX Advanced Load Balancer DNS 上为两种 DNS 域模式(委派和非委派)配置 NS 记录。

委派的域或域分割

如果所需的行为是让 NSX Advanced Load Balancer DNS 充当 NS 记录域的非权威服务器,在配置 NS 记录时,必须将委派选项设置为 True。委派表示将 NS 记录的域名委派给另一个权威名称服务器。即,NS 记录的域名是域分割,该域中的域由另一个名称服务器拥有。

例如,xyz.avi.comavi.com 域的域分割,xyz.avi.com(也称为 *.xyz.avi.com)中的域由另一个名称服务器进行管理,而不是由管理 xyz.avi.com 的名称服务器进行管理。

在域名配置为域分割时,必须在与该域名关联的 NS 记录中配置相应名称服务器的 IP 地址。如果名称服务器的域可能导致对该域名进行递归 DNS 查询,则需要使用该 IP 地址:

  1. 进行 DNS 查询以获取 avi.com 域的 NS 记录

  2. 响应包含名称服务器 ns1.avi.com

  3. 由于必须解析域名 ns1.avi.com,因此,将会产生对 ns1.avi.com 的 A 查询,这会导致响应包含 ns1.foo.com 的 NS 记录(但不包含 A 记录,从而导致反复发出对 ns1.avi.com 的 NS 请求),从而导致无限递归。

为了避免这种递归,NS 记录中的名称服务器的 FQDN 还配置了 A 记录(IP 地址)。该 A 记录称为 NS 记录的粘合记录。例如,

static_dns_records {
          fqdn: "avi.com"
          type: DNS_RECORD_NS
          delegated: true
          wildcard_match: true
          ttl: 1100
          ns {
             nsname: "ns1.avi.com"
             ip_address {
               addr: "192.5.6.30"
               type: V4
             }
          }
          ns {
             nsname: "ns2.avi.net"
           }
        }

上述静态 NS 记录配置适用于 avi.com 域,该域具有指向两个名称服务器的 NS 记录。因此,如果将包含 avi.com 子域的任何 DNS 查询发送到该服务器,将在 DNS 响应的 AUTHORITY SECTION 中为其提供 NS 记录。该响应导致递归名称解析器将 DNS 查询传送到两个名称服务器之一。因此,在查询 www.avi.com 的 A 记录时,将在 DNS 响应中获得两个 NS 记录,并在响应的 ADDITIONAL SECTION 中获得 ns1.avi.com 的粘合记录。然后,递归解析器将相同的 DNS 查询发送到名称服务器 ns1.avi.comns2.avi.net

注:

如果所需的行为是捕获将 avi.com 作为子域的域名的所有查询,则必须将通配符匹配字段设置为 True,否则,仅将 avi.com 查询传送到名称服务器。如果为 avi.com 设置了通配符匹配,任何 *.avi.com 形式的查询(例如 foo.avi.comabc.xyz.avi.com 等)将传送到配置的名称服务器。如果未设置通配符匹配,*.avi.com 形式的域查询可能会成功,也可能会失败,具体取决于是否在 DNS 虚拟服务中配置了这些 FQDN。

下面显示了一个 dig 请求:

  • 查询记录(A、AAAA、CNAME、SRV 等)

  • 发送到将委派的域“com”作为子域的域

  • 设置了通配符匹配并具有 13 个名称服务器(从 a.gtld-servers.netm.gtld-servers.net

  • 提供了相应的粘合记录

请求的域 sales.avi.com 将“com”作为子域。

; <<>> DiG 9.10.3-P4-Ubuntu <<>> @10.90.91.62 sales.avi.com A
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57472
;; flags: qr aa rd; QUERY: 1, ANSWER: 0, AUTHORITY: 13, ADDITIONAL: 13
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;sales.avi.com.           IN      A

;; AUTHORITY SECTION:
com.                    1100    IN      NS      a.gtld-servers.net.
com.                    1100    IN      NS      b.gtld-servers.net.
com.                    1100    IN      NS      c.gtld-servers.net.
com.                    1100    IN      NS      d.gtld-servers.net.
com.                    1100    IN      NS      e.gtld-servers.net.
com.                    1100    IN      NS      f.gtld-servers.net.
com.                    1100    IN      NS      g.gtld-servers.net.
com.                    1100    IN      NS      h.gtld-servers.net.
com.                    1100    IN      NS      i.gtld-servers.net.
com.                    1100    IN      NS      j.gtld-servers.net.
com.                    1100    IN      NS      k.gtld-servers.net.
com.                    1100    IN      NS      l.gtld-servers.net.
com.                    1100    IN      NS      m.gtld-servers.net.

;; ADDITIONAL SECTION:
a.gtld-servers.net.    1100    IN      A       192.5.6.30
b.gtld-servers.net.    1100    IN      A       192.33.14.30
c.gtld-servers.net.    1100    IN      A       192.26.92.30
d.gtld-servers.net.    1100    IN      A       192.31.80.30
e.gtld-servers.net.    1100    IN      A       192.12.94.30
f.gtld-servers.net.     1100    IN      A       192.35.51.30
g.gtld-servers.net.    1100    IN      A       192.42.93.30
h.gtld-servers.net.    1100    IN      A       192.54.112.30
i.gtld-servers.net.     1100    IN      A       192.43.172.30
j.gtld-servers.net.     1100    IN      A       192.48.79.30
k.gtld-servers.net.    1100    IN      A       192.52.178.30
l.gtld-servers.net.     1100    IN      A       192.41.162.30
m.gtld-servers.net.   1100    IN      A       192.42.93.30

;; Query time: 0 msec
;; SERVER: 10.90.91.62#53(10.90.91.62)
;; WHEN: Fri May 26 14:55:20 PDT 2017
;; MSG SIZE  rcvd: 469

非委派的域

如果所需的行为是让 NSX Advanced Load Balancer DNS 充当 NS 记录的权威服务器,在配置 NS 记录时,不能将委派选项设置为 True。委派表示将 NS 记录的域名委派给另一个权威名称服务器。例如,

static_dns_records {
              fqdn: "google.com"
    		  type: DNS_RECORD_NS
    		  wildcard_match: true
    		  ttl: 1100
    		  ns {
      		    nsname: "ns1.google.com"
      		    ip_address {
        		      addr: "192.5.6.30"
        		      type: V4
       		    }
    		  }
    		  ns {
      		    nsname: "ns2.google.com"
      		    ip_address {
        		      addr: "192.33.14.30"
        		      type: V4
       		    }
    		  }
    		  ns {
      		    nsname: "ns3.google.com"
      		    ip_address {
        		      addr: "192.26.92.30"
        		      type: V4
       		    }
    		  }
    		  ns {
      		    nsname: "ns4.google.com"
      		    ip_address {
        		      addr: "192.31.80.30"
        		      type: V4
       		    }
    		  }
    		}

上述静态 NS 记录配置适用于 google.com 域,该域具有指向 4 个名称服务器的 NS 记录。对于这些 NS 记录,NSX Advanced Load Balancer DNS 是权威名称服务器。因此,如果将包含 google.com 域的任何 DNS 查询发送到该服务器,将在 DNS 响应的 ANSWER SECTION 中为其提供 NS 记录,并在 ADDITIONAL SECTION 中提供名称服务器 IP 地址的 A 记录。

注:

如果通配符匹配字段设置为 True,但未委派域,与非委派域匹配的任何 DNS 查询将获得 NXDOMAIN 响应。

下面显示了一个 dig 查询请求:

  • 具有任何类型(A、NS、CNAME、SRV 等)

  • 发送到 google.com

  • 启用了通配符匹配,并且

  • 具有 4 个名称服务器(从 ns1.google.comns4.google.com

; <<>> DiG 9.10.3-P4-Ubuntu <<>> @10.90.91.63 google.com A
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39235
;; flags: qr aa rd; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 4
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;google.com.                    IN      A

;; ANSWER SECTION:
google.com.             1100    IN      NS      ns1.google.com.
google.com.             1100    IN      NS      ns2.google.com.
google.com.             1100    IN      NS      ns3.google.com.
google.com.             1100    IN      NS      ns4.google.com.

;; ADDITIONAL SECTION:
ns1.google.com.         1100    IN      A       192.5.6.30
ns2.google.com.         1100    IN      A       192.33.14.30
ns3.google.com.         1100    IN      A       192.26.92.30
ns4.google.com.         1100    IN      A       192.31.80.30

;; Query time: 0 msec
;; SERVER: 10.90.91.63#53(10.90.91.63)
;; WHEN: Fri May 26 15:49:35 PDT 2017
;; MSG SIZE  rcvd: 164

如果将任何类型(A、NS、CNAME、SRV 等)的 dig 查询请求发送到包含 google.com 域的域,启用了通配符匹配,具有 4 个名称服务器(从 ns1.google.comns2.google.com),将始终在 NXDOMAIN 响应中提供相应的 A 记录:

; <<>> DiG 9.10.3-P4-Ubuntu <<>> @10.90.91.63 mail.google.com A
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 42986
;; flags: qr aa rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;mail.google.com.               IN      A

;; Query time: 0 msec
;; SERVER: 10.90.91.63#53(10.90.91.63)
;; WHEN: Fri May 26 16:56:25 PDT 2017
;; MSG SIZE  rcvd: 33