Citrix ADC

DNS64

Citrix ADC DNS64功能通过合成的DNS AAAA记录响应到IPv6客户端,发送针对仅IPv4域的AAAA请求。DNS64功能与NAT64功能配合使用,可在仅IPv6的客户端和仅限IPv4的服务器之间实现无缝通信。DNS64允许仅IPV6客户端发现IPv4domain, NAT64允许客户端和服务器之间的通信。

为了合成AAAA记录,Citrix ADC设备会从DNS服务器获取DNS A记录。DNS64前缀是在Citrix ADC设备上配置的96位IPv6前缀。Citrix ADC设备通过连接 DNS64 前缀(96 位)和 IPv4 地址(32 位)来合成 AAAA 记录。

为了启用IPv6客户端和IPv4服务器之间的通信,具有DNS64和NAT64配置的Citrix ADC设备可以部署在IPv6客户端或IPv4服务器端。在这两种情况下,Citrix ADC设备上的DNS64配置都类似,包括一个负载平衡虚拟服务器,充当DNS服务器的代理服务器。如果Citrix ADC设备部署在客户端,则必须在IPv6客户端上指定负载平衡虚拟服务器作为域的名称服务器。

考虑一个示例,其中在IPv4端配置了DNS64和NAT64配置的Citrix ADC设备。在此示例中,企业在服务器S1上托管站点www.example.com,该站点具有IPv4地址。为了启用IPv6客户端与IPv4服务器S1之间的通信、Citrix ADC设备NS1将使用DNS64和有状态NAT64配置进行部署。

DNS64配置包括DNS负载平衡虚拟服务器LBVS-DNS64-1,其上启用了DNS64选项。在NS1上还配置了名为DNS64-Policy-1的DNS64策略和名为DNS64-Action-1的关联DNS64操作,并且DNS64-Policy-1绑定到LBVS-DNS64-1。LBVS-DNS64-1充当DNS服务器DNS-1和DNS-2的DNS代理服务器。

当到达LBVS-DNS64-1的流量与在DNS64-Policy-1中指定的条件匹配时,流量将根据DNS64-Action-1中的设置进行处理。DNS64-Action-1指定用于合成AAAA记录的DNS64前缀,以及从DNS服务器接收到的一记录。

在Citrix ADC设备上启用了全局DNS参数缓存记录,因此设备缓存DNS记录。此设置是dns64正常工作所必需的。

下表列出了上述示例中使用的设置:Dns64示例设置

以下是此示例中的流量:

  1. IPv6客户端CL1为网站www.example.com的IPv6地址发送DNS AAAA请求。
  2. 该请求由Citrix ADC设备NS1上的DNS负载平衡虚拟服务器LBVS-DNS64-1接收。
  3. NS1检查其DNS缓存记录是否有请求的AAAA记录,并发现网站www.example.com的AAAA记录不存在于DNS缓存中。
  4. LBVS-DNS64-1的负载平衡算法选择DNS服务器DNS-1并将AAAA请求转发给它。
  5. 由于站点www.example.com托管在IPv4服务器上,DNS服务器DNS-1没有任何AAAA记录的站点www.example.com。
  6. DNS-1向lbvs-dns64-1发送空的DNS aaaa响应或错误消息。
  7. 由于在LBVS-DNS64-1上启用了DNS64选项,并且来自CL1的AAAA请求与DNS64-Policy-1中指定的条件相匹配,因此,NS1将DNS一请求发送到www.example.com的IPv4地址对应的DNS-1。
  8. DNS-1的响应方式是将www.example.com的DNS记录发送给LBVS-DNS64-1。A记录包括www.example.com的IPv4地址。
  9. NS1为网站www.example.com综合了AAAA的记录,其中包括:
    • 站点www.example.com的IPv6地址=在关联的DNSS64操作中指定的DNS64前缀(96位)和DNS一记录的IPv4地址(32位)= 2001:DB8:300:: 192.0.2.60
  10. NS1将合成的AAAA记录发送到IPv6客户端CL1。Ns1还将a记录缓存到其内存中。Ns1使用缓存的a记录为后续aaaa请求合成aaa记录。

Dns64配置需要注意的事项

在Citrix ADC设备上配置DNS64之前,请考虑以下几点:

  • Citrix ADC设备的DNS64功能符合RFC 6174的要求。

  • Citrix ADC设备的DNS64功能不支持DNSSEC。Citrix ADC设备不会从从 DNS 服务器接收的 DNSSEC 响应合成 AAAA 记录。只有当响应包含 RRSIG 记录时,响应才被归类为 DNSSEC 响应。

  • Citrix ADC设备支持仅96位的DNS64前缀。

  • 尽管DNS64功能与NAT64功能配合使用,但DNS64和NAT64配置独立于Citrix ADC设备。对于特定流,必须为DNS64前缀和NAT64前缀参数指定相同的IPv6前缀值,以便客户端接收的合成IPv6地址路由到特定NAT64配置。有关在Citrix ADC设备上配置NAT64的更多信息,请参阅有状态nat64

  • 以下是Citrix ADC设备处理DN64的不同情况:

    • 如果来自DNS服务器的AAAA响应包含AAAA记录,则会检查响应中的每条记录是否为特定DNS64配置在Citrix ADC设备上配置的排除规则集。Citrix ADC从响应中删除前缀与排除规则匹配的IPv6地址。如果生成的响应至少包含一条IPv6记录,Citrix ADC设备将此响应转发到客户端,否则设备将从域的一记录合成AAAA响应并将其发送到IPv6客户端。

    • 如果来自DNS服务器的AAAA响应为空应答响应,则设备请求一个资源使用相同的域名记录,或者在设备是域的真实域名服务器时在自己的记录中进行搜索。如果请求导致空答案或错误,则会转发给客户端。

    • 如果来自DNS服务器的响应包含RCODE = 1(格式错误),Citrix ADC设备会将相同的响应转发给客户端。如果在超时之前没有响应,Citrix ADC设备会向客户端发送RCODE = 2(服务器故障)的响应。

    • 如果来自DNS服务器的响应包含别名记录,则会跟随链,直到达到终止一个或aaaa记录。如果别名记录没有任何AAAA资源记录,Citrix ADC设备将获取用于合成AAAA记录的DNS一记录。Cname链与合成的aaaa记录一起添加到答案部分,然后发送到客户端。

  • Citrix ADC设备的DNS64功能还支持响应PTR请求。当设备上收到一个IPv6地址域的PTR请求,并且IPv6地址与任何配置的DNS64前缀匹配时,设备会创建一个CNAME记录,将IP6-ARPA域映射到相应IN-ADDR中。ARPA域和新形成的in-adr。ARPA域用于解析。设备搜索本地PTR记录,如果记录不存在,设备将向DNS服务器发送in-addr。ARPA域的PTR请求。Citrix ADC设备使用来自 DNS 服务器的响应来合成初始 PTR 请求的响应。

配置步骤

在Citrix ADC设备上创建有状态NAT64配置所需的实体涉及以下过程:

  • 添加DNS服务。DNS服务是Citrix ADC设备充当DNS代理服务器的DNS服务器的逻辑表示。有关设置服务的可选参数的详细信息,请参阅负载平衡

  • 添加dns64操作和dns64策略然后将dns64操作绑定到dns64策略。根据相关的dns64操作中的设置,dns64策略指定要与dns64处理流量匹配的条件。Dns64操作指定强制性Dns64前缀以及可选的排除规则和映射规则设置。

  • 创建DNS负载平衡虚拟服务器,并将DNS服务和dns64策略绑定到它。DNS负载平衡虚拟服务器充当绑定DNS服务表示的DNS服务器的DNS代理服务器到达虚拟服务器的流量与针对dns64处理的绑定dns64策略进行匹配。有关设置负载平衡虚拟服务器的可选参数的详细信息,请参阅负载平衡

    注意: cli针对这两个任务具有单独的命令,GUI将它们合并在一个对话框中。

    启用DNS记录的缓存。启用Citrix ADC设备的全局参数,以缓存通过DNS代理操作获取的DNS记录。有关启用DNS记录缓存的更多信息,请参阅域名系统

Cli过程

要使用cli创建DNS类型的服务,请执行以下操作:

在命令提示符下,键入:

  • add service

要使用cli创建dns64操作,请执行以下操作:

在命令提示符下,键入:

  • add dns action64 -Prefix [-mappedRule <表达式>][-excludeRule <表达式>]

要使用cli创建dns64策略,请执行以下操作:

在命令提示符下,键入:

  • 添加DNS policy64 -rule -action

使用cli创建DNS负载平衡虚拟服务器:

在命令提示符下,键入:

  • 添加磅虚拟服务器<名称> DNS < IPAddress > <口> -dns64(启用|禁用)[-BassassaaAA(是|否)]…

使用cli将DNS服务和dns64策略绑定到DNS负载平衡虚拟服务器:

在命令提示符下,键入:

  • 绑定lb vserver
  • bind lb vserver -policyName -priority

GUI程序

要使用GUI创建DNS类型的服务,请执行以下操作:

  1. 导航到流量管理 > 负载平衡 > 服务,然后添加新服务。
  2. 设置以下参数:
    • 服务名称*
    • 服务器*
    • 协议*(从下拉列表中选择dns .)
    • 端口*

要使用GUI创建dns64操作,请执行以下操作:

导航到“流量管理”>“DNS”>“操作”,在“DNS操作64”选项卡上添加新的DNS64操作。

要使用GUI创建dns64策略,请执行以下操作:

导航到“流量管理”>“DNS”>“策略”,在“DNS策略64”选项卡上添加新的DNS64策略。

要使用GUI创建DNS负载平衡虚拟服务器并将DNS服务和dns64策略绑定到它:

  1. 导航到流量管理 > 负载平衡 > 虚拟服务器,然后添加新的虚拟服务器。
  2. 设置以下参数:
    • 名称*
    • IP地址*
    • 协议*(从下拉列表中选择dns .)
    • 端口*
  3. 选择启用dns64选项。
  4. 在“服务”窗格中,将服务绑定到虚拟服务器。
  5. 在“策略”窗格中,将策略绑定到虚拟服务器。

示例配置

> add service SVC-DNS-1 203.0.113.50 DNS 53 Done > add DNS Action64 DNS64-Action-1 -Prefix 2001:DB8:300::/96 Done > add DNS Policy64 DNS64-Policy-1 -rule "CLIENT.IPv6.SRC.IN_SUBNET(2001:DB8:5001::/64)"-action DNS64-Action-1 Done > add lb vserver LBVS-DNS64-1 DNS 2001:DB8:9999::99 53 -dns64 ENABLED Done > bind lb vserver LBVS-DNS64-1 SVC-DNS-1 Done > bind lb vserver LBVS-DNS64-1 SVC-DNS-2 Done > bind lb vserver LBVS-DNS64-1 -policyname DNS64-Policy-1 -priority 2 Done 
DNS64