DNS64
-
IPv6 クライアント CL1 は、サイト www.example.com の IPv6 アドレスに対して DNS AAAA リクエストを送信します。
-
リクエストは、NetScalerアプライアンスNS1上のDNS負荷分散仮想サーバーLBVS-DNS64-1によって受信されます。
-
NS1 は DNS キャッシュレコードに要求された AAAA レコードがないかどうかを確認し、サイト www.example.com の AAAA レコードが DNS キャッシュに存在しないことを検出します。
-
LBVS-DNS64-1のロードバランシングアルゴリズムは、DNSサーバーDNS-1を選択し、AAAAリクエストをそのサーバーに転送します。
-
サイト www.example.com は IPv4 サーバーでホストされているため、DNS サーバー DNS-1 にはサイト www.example.com の AAAA レコードはありません。
-
DNS-1 は、空の DNS AAAA 応答またはエラーメッセージを LBVS-DNS64-1 に送信します。
-
LBVS-DNS64-1 では DNS64 オプションが有効になっていて、CL1 からの AAAA リクエストは DNS64-Policy-1 で指定された条件と一致するため、NS1 は www.example.com の IPv4 アドレスの DNS A リクエストを DNS-1 に送信します。
-
DNS-1 は www.example.com の DNS A レコードを LBVS-DNS64-1 に送信することで応答します。A レコードには www.example.com の IPv4 アドレスが含まれています。
-
NS1 はサイト www.example.com の AAAA レコードを次のように合成します。
-
サイト www.example.com の IPv6 アドレス = 関連する DNS64Action で指定されている DNS64 プレフィックス (96 ビット) と DNS A レコードの IPv4 アドレス (32 ビット) を連結したもの = 2001: DB 8:300:: 192.0.2.60
-
-
NS1 は、合成された AAAA レコードを IPv6 クライアント CL1 に送信します。NS1はAレコードもメモリにキャッシュします。NS1 はキャッシュされた A レコードを使用して、後続の AAAA リクエスト用に AAAA レコードを合成します。
DNS64 構成で考慮すべきポイント
-
NetScalerアプライアンスのDNS64機能はRFC 6174に準拠しています。
-
NetScalerアプライアンスのDNS64機能はDNSSECをサポートしていません。NetScalerアプライアンスは、DNSサーバーから受信したDNSSEC応答からAAAAレコードを合成しません。応答は、RRSIG レコードを含む場合にのみ DNSSEC 応答として分類されます。
-
NetScalerアプライアンスは、96ビットの長さのDNS64プレフィックスしかサポートしていません。
-
DNS64機能はNAT64機能とともに使用されますが、DNS64とNAT64の構成はNetScalerアプライアンスとは独立しています。特定のフローでは、クライアントが受信した合成 IPv6 アドレスが特定の NAT64 設定にルーティングされるように、DNS64 プレフィクスと NAT64 プレフィクスパラメータに同じ IPv6 プレフィクス値を指定する必要があります。NetScaler ADCアプライアンスでのNAT64の構成の詳細については、 ステートフルNAT64を参照してください。
-
NetScaler ADCアプライアンスによるDN64処理の異なるケースを次に示します。
-
DNSサーバーからのAAAAレスポンスにAAAAレコードが含まれている場合、レスポンス内の各レコードが、NetScalerアプライアンスで特定のDNS64構成に対して構成されている除外ルールのセットと照合されます。NetScalerは、プレフィックスが除外ルールと一致するIPv6アドレスを応答から削除します。結果の応答に少なくとも1つのIPv6レコードが含まれている場合、NetScalerアプライアンスはこの応答をクライアントに転送します。それ以外の場合、アプライアンスはドメインのAレコードからAAAA応答を合成してIPv6クライアントに送信します。
-
DNS サーバからの AAAA 応答が空の応答である場合、アプライアンスは同じドメイン名の A リソースレコードを要求するか、アプライアンスがそのドメインの本物のドメインネームサーバかどうかを独自のレコードで検索します。リクエストの結果、回答またはエラーが返された場合は、その回答がクライアントに転送されます。
-
DNSサーバーからの応答にRCODE=1(フォーマットエラー)が含まれる場合、NetScalerアプライアンスはそれをクライアントに転送します。タイムアウト前に応答がない場合、NetScalerアプライアンスはRCODE=2(サーバー障害)の応答をクライアントに送信します。
-
DNS サーバーからの応答に CNAME が含まれている場合は、終端の A または AAAA レコードに到達するまでチェーンが続きます。CNAMEにAAAAリソースレコードがない場合、NetScalerアプライアンスはAAAAレコードの合成に使用するDNS Aレコードを取得します。CNAME チェーンは、合成された AAAA レコードとともに回答セクションに追加され、クライアントに送信されます。
-
-
NetScalerアプライアンスのDNS64機能は、PTR要求への応答もサポートしています。IPv6アドレスのドメインに対するPTR要求がアプライアンスで受信され、IPv6アドレスが設定されたDNS64プレフィックスのいずれかと一致すると、アプライアンスはIP6-ARPAドメインを対応するIN-ADDRにマッピングするCNAMEレコードを作成します。ARPAドメインと新しく形成されたIN-ADDR.ARPAドメインが解決に使用されます。アプライアンスはローカルの PTR レコードを検索し、レコードが存在しない場合、アプライアンスは IN-ADDR.ARPA ドメインの PTR 要求を DNS サーバーに送信します。NetScalerアプライアンスは、DNSサーバーからの応答を使用して、最初のPTR要求に対する応答を合成します。
構成の手順
-
**DNS サービスを追加します。**DNSサービスは、NetScaler ADCアプライアンスがDNSプロキシサーバーとして機能するDNSサーバーを論理的に表現したものです。サービスのオプションパラメータの設定の詳細については、「 負荷分散」を参照してください。
-
**DNS64アクションとDNS64ポリシーを追加し、DNS64アクションをDNS64ポリシーにバインドします。**DNS64ポリシーは、関連するDNS64アクションの設定に従って、DNS64処理のトラフィックと照合する条件を指定します。DNS64 アクションでは、必須の DNS64 プレフィックスと、オプションの除外ルールとマップルール設定を指定します。
-
**DNS 負荷分散仮想サーバーを作成し、DNS サービスと DNS64 ポリシーをそれにバインドします。**DNS負荷分散仮想サーバーは、バインドされたDNSサービスに代表されるDNSサーバーのDNSプロキシサーバーとして機能します。仮想サーバに着信するトラフィックは、DNS64 処理用のバインドされた DNS64 ポリシーと照合されます。負荷分散仮想サーバーのオプションパラメータの設定の詳細については、「 負荷分散」を参照してください。注:CLI には、これら 2 つのタスクに対して個別のコマンドがありますが、GUI では 1 つのダイアログボックスにまとめられています。**DNS レコードのキャッシュを有効にします。**NetScaler ADCアプライアンスのグローバルパラメータを有効にして、DNSプロキシ操作によって取得されるDNSレコードをキャッシュします。DNS レコードのキャッシュの有効化の詳細については、「 ドメインネームシステム」を参照してください。
CLI のプロシージャ
-
add service \<name> \<IP> \<serviceType> \<port> …
-
add dns policy64 \<name> -rule \<expression> -action \<string>
-
bind lb vserver \<name> \<serviceName> ...
-
bind lb vserver \<name> -policyName \<string> -priority \<positive_integer> ...
GUIのプロシージャ
-
次のパラメーターを設定します。
-
サービス名*
-
サーバー*
-
プロトコル* (ドロップダウンリストから DNS を選択)
-
ポート*
-
-
次のパラメーターを設定します。
-
名前*
-
IP アドレス*
-
プロトコル* (ドロップダウンリストから DNS を選択)
-
ポート*
-
-
「DNS64 を有効にする」オプションを選択します。
-
サービスペインで、サービスを仮想サーバーにバインドします。
-
ポリシーペインで、ポリシーを仮想サーバーにバインドします。
構成例
> add service SVC-DNS-1 203.0.113.50 DNS 53
Done
> add service SVC-DNS-2 203.0.113.60 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