本节介绍了 NSX Advanced Load Balancer 的权威域支持。

如果 NSX Advanced Load Balancer DNS 虚拟服务配置了(后端服务器的)直通池,并且在 DNS 表中找不到 FQDN,则会将这些请求转发到服务器池。一个例外情况是,如果 NSX Advanced Load Balancer 配置了权威域,并且查询的 FQDN 位于权威域内,此时将返回 NXDOMAIN。

NSX Advanced Load Balancer DNS 虚拟服务包括起始授权机构 (SOA) 记录及其 NXDOMAIN(和其他)应答。

功能

如果入站查询的域是 DNS 应用程序配置文件中配置的权威域之一的子域,则随 SOA 记录提供 NXDOMAIN(不存在的域)响应。

否定缓存(例如,缓存记录不存在的信息)是由区域的权威名称服务器确定的,在报告请求类型的数据不存在时,它必须包括起始授权机构 (SOA) 记录。SOA 记录的最小字段值和 SOA 本身的 TTL 用于确定否定应答的 TTL。

如果查询的 FQDN 与 DNS 表中的条目匹配,但默认不支持该查询类型,则 NSX Advanced Load Balancer SE 生成 NOERROR 响应,如果域与配置的权威域匹配,则可以选择包含 SOA 记录。

使用 NSX Advanced Load Balancer UI 进行配置

对于作为权威域名的子域并且在 NSX Advanced Load Balancer 中没有任何 DNS 记录的 FQDN,将丢弃其查询或发送 NXDOMAIN 响应。预配置了 NSX Advanced Load Balancer System-DNS 配置文件以响应未处理的 DNS 请求。不过,在创建新的 DNS 配置文件时,需要将 (选项) 无效的 DNS 查询处理字段更改为响应未处理的 DNS 请求,以确保在适当的时候发送 NXDOMAIN 响应。

NXDOMAIN 应答适用于以权威域之一结尾的 FQDN 时,否定响应 TTL 字段中显示的值将合并到附加的 SOA 记录中。该值默认为 30 秒。不过,允许的范围是 1 到 86400 秒。

NSX Advanced Load Balancer DNS 虚拟服务不需要具有后端 DNS 服务器池。如果它具有后端池,只有在 FQDN 不是权威域名字段中配置的域名之一的子域时,NSX Advanced Load Balancer DNS 服务引擎才会使用后端池进行负载均衡。所有权威域是使用 Ends-With 语义配置的。

有效的子域字段中的值是为有效性检查指定的,因此是可选的。如果未配置,将处理 acme.com 的所有子域,并在 DNS 表中查找这些子域。

使用 NSX Advanced Load Balancer CLI 进行配置

在下面的示例中,显示了 System-DNS 应用程序配置文件的之前和之后配置。各种 applicationprofile:dns_service_profile 子命令用于:

  • 定义权威域名。

  • 启用 NXDOMAIN 响应。为此,error_response 的值从 DNS_ERROR_RESPONSE_NONE(默认值)更改为 DNS_ERROR_RESPONSE_ERRORnegative_caching_ttl 保持不变,仍为默认的 30 秒。

  • 指定 DNS 可以提供 IP 地址的 acme.com 子域。子域为 sales.acme.com、docs.acme.com 和 support.acme.com。这些子域用于有效性检查,因此是可选的。如果未配置,将处理 acme.com 和 coyote.com 的所有子域,并在 DNS 表中查找这些子域。

[admin:10-10-25-20]: > configure applicationprofile System-DNS Updating an existing object. Currently, the object is:
+-------------------------+---------------------------------------------+ | Field                   | Value                                       | +-------------------------+---------------------------------------------+ | uuid                    | applicationprofile-fdb6a5d6-bbf8-4f15-b851-f436b599992c                                                            | 
| name                    | System-DNS                                  | | type                    | APPLICATION_PROFILE_TYPE_DNS                | | dns_service_profile     |                                             | |   num_dns_ip            | 1                                           | |   ttl                   | 30 sec                                      | |   error_response        | DNS_ERROR_RESPONSE_NONE                     | |   edns                  | False                                       | |   dns_over_tcp_enabled  | True                                        | |   aaaa_empty_response   | True                                        | |   negative_caching_ttl  | 30 sec                                      | |   ecs_stripping_enabled | True                                        | | preserve_client_ip      | False                                       | | tenant_ref              | admin                                       | +-------------------------+---------------------------------------------+ [admin:10-10-25-20]: applicationprofile> dns_service_profile 
[admin:10-10-25-20]: applicationprofile:dns_service_profile> authoritative_domain_names acme.com 
[admin:10-10-25-20]: applicationprofile:dns_service_profile> authoritative_domain_names coyote.com 
[admin:10-10-25-20]: applicationprofile:dns_service_profile> error_response dns_error_response_error Overwriting the previously entered value for error_response 
[admin:10-10-25-20]: applicationprofile:dns_service_profile> domain_names sales.acme.com 
[admin:10-10-25-20]: applicationprofile:dns_service_profile> domain_names docs.acme.com 
[admin:10-10-25-20]: applicationprofile:dns_service_profile> domain_names support.acme.com 
[admin:10-10-25-20]: applicationprofile:dns_service_profile> save [admin:10-10-25-20]: applicationprofile> save
+---------------------------------+-------------------------------------+ | Field                           | Value                               | +---------------------------------+-------------------------------------+ | uuid                            | applicationprofile-fdb6a5d6-bbf8-4f15-b851-f436b599992c                                                  | 
| name                            | System-DNS                          | | type                            | APPLICATION_PROFILE_TYPE_DNS        | | dns_service_profile             |                                     | |   num_dns_ip                    | 1                                   | |   ttl                           | 30 sec                              | |   error_response                | DNS_ERROR_RESPONSE_ERROR            | |   domain_names[1]               | sales.acme.com                      | |   domain_names[2]               | docs.acme.com                       | |   domain_names[3]               | support.acme.com                    | |   edns                          | False                               | |   dns_over_tcp_enabled          | True                                | |   aaaa_empty_response           | True                                | |   authoritative_domain_names[1] | acme.com                            | |   authoritative_domain_names[2] | coyote.com                          | |   negative_caching_ttl          | 30 sec                              | |   ecs_stripping_enabled         | True                                | | preserve_client_ip              | False                               | | tenant_ref                      | admin                               | +---------------------------------+-------------------------------------+ [admin:10-10-25-20]: >

SOA rdata 查询支持

NSX Advanced Load Balancer 支持对配置的权威域进行 SOA 查询,以及自定义 SOA 字段 MNAMERNAME(请参见 RFC 1035),这些字段是使用 NSX Advanced Load Balancer CLI 配置子命令 applicationprofile>dns_service_profile 配置的,以提供两个相应的参数:

  • name_server:作为该区域的原始或主要数据源的名称服务器的 <domain-name>。该字段在指定为权威域名的所有域名的相关 SOA 记录中使用。如果未配置,则在 SOA 响应中将域名作为名称服务器。

  • admin_email:负责该区域的管理员的电子邮件地址。该字段在指定为权威域名的所有域名的相关 SOA 记录中使用。如果未配置,则在 SOA 响应中使用默认值 hostmaster

CLI 示例

[admin:10-10-25-20]: applicationprofile> dns_service_profile admin_email [email protected] 
[admin:10-10-25-20]: applicationprofile:dns_service_profile> name_server roadrunner.com 
[admin:10-10-25-20]: applicationprofile:dns_service_profile> save [admin:10-10-25-20]: applicationprofile> save 
+---------------------------------+-------------------------------------+ | Field                           | Value                               | +---------------------------------+-------------------------------------+ | uuid                            | applicationprofile-fdb6a5d6-bbf8-4f15-b851-f436b599992c                                                  | 
| name                            | System-DNS                          | | type                            | APPLICATION_PROFILE_TYPE_DNS        | | dns_service_profile             |                                     | |   num_dns_ip                    | 1                                   | |   ttl                           | 30 sec                              | |   error_response                | DNS_ERROR_RESPONSE_ERROR            | |   domain_names[1]               | sales.acme.com                      | |   domain_names[2]               | docs.acme.com                       | |   domain_names[3]               | support.acme.com                    | |   edns                          | False                               | |   dns_over_tcp_enabled          | True                                | |   aaaa_empty_response           | True                                | |   authoritative_domain_names[1] | acme.com                            | |   authoritative_domain_names[2] | coyote.com                          | |   negative_caching_ttl          | 30 sec                              | |   name_server                   | roadrunner.com                      | |   admin_email                   | [email protected]                   | |   ecs_stripping_enabled         | True                                | | preserve_client_ip              | False                               | | tenant_ref                      | admin                               | +---------------------------------+-------------------------------------+ [admin:10-10-25-20]: > 

在发出 SOA 请求时,SOA 响应是在 answer 部分中发送的。对于授权机构为 NSX Advanced Load Balancer 的域的不存在记录,响应是在 authority 部分中发送的。