Citrix ADC

書き換え機能に対する DNS サポート

HTTP または TCP 要求と応答の場合と同様に、DNS 要求と応答を変更するように書き換え機能を設定できます。書き換えを使用して DNS 要求のフローを管理し、ヘッダーまたは応答セクションで必要な変更を加えることができます。たとえば、DNS 応答のヘッダーフラグに AA ビットが設定されていない場合、rewrite を使用して DNS 応答に AA ビットを設定し、クライアントに送信できます。

DNS の式

書き換え構成では、次のCitrix ADC式を使用して、DNS要求または応答のさまざまな部分を参照できます。

詳しくは、「式と説明」を参照してください。

DNS バインドポイント

DNS 式を含むポリシーでは、次のグローバルバインドポイントを使用できます。

バインドポイント 説明
DNS_REQ_OVERRIDE 要求ポリシーキューを上書きします。
DNS_REQ_DEFAULT 標準要求ポリシーキュー。
DNS_RES_OVERRIDE 応答ポリシーキューを上書きします。
DNS_RES_DEFAULT 標準応答ポリシーキュー。

デフォルトのバインドポイントに加えて、タイプ DNS_REQ または DNS_RES のポリシーラベルを作成し、それらに DNS ポリシーをバインドできます。

DNS の書き換えアクションタイプ

  • replace_dns_answer_section:このアクションは、DNS 応答セクションを DNS ポリシーで定義された式に置き換えます。
  • replace_dns_header_field:DNS 要求のオペコードタイプをチェックします。DNS 要求のオペコードの種類が、指定されたオペコードの種類と一致するかどうかを示す True または False を返します。この操作により、DNS ヘッダーセクションが DNS ポリシーで定義された式に置き換えられます。

DNS の書き換えポリシーの構成

以下の手順では、Citrix ADCコマンドラインを使用して書き換えアクションとポリシーを構成し、書き換え固有のグローバルバインドポイントにポリシーをバインドします。

書き換えアクションとポリシーを構成し、DNS のポリシーをバインドします

コマンドプロンプトで、次のコマンドを入力します。

  1. add rewrite action <actName> <actType>

    <actname>には、新しいアクションの名前を置き換えます。名前の長さは 1 ~ 127 文字で、文字、数字、ハイフン (-)、アンダースコア (_) を使用できます。<actType>で、DNS 式に用意されている書き換えアクションの種類を指定します。

  2. add rewrite policy <polName> <rule> <actName>

    <polname>では、新しいポリシーの名前に置き換えます。<actname>では、名前は 1 ~ 127 文字で、文字、数字、ハイフン(-)、およびアンダースコア(_)を使用できます。<actname>には、作成したアクションの名前を置き換えます。

  3. bind rewrite global <polName> <priority> <gotoPriorityExpression> -type <bindPoint>

    <polName>には、作成したポリシーの名前を置き換えます。<priority>に、ポリシーのプライオリティを指定します。<bindPoint>では、書き換え固有のグローバルバインドポイントの 1 つを代入します。

:

DNS 要求の AA ビットを設定して、仮想サーバーの負荷を分散します。

次のコマンドは、Citrix ADCアプライアンスが処理するすべてのクエリに対して権限のあるDNSサーバーとして機能するように構成します。

add rewrite action set_aa replace_dns_header_field dns.req.header.flags.set(aa)
add rewrite policy pol !dns.req.header.flags.is_set(aa)  set_aa
bind rewrite global  pol  100  -type dns_res_override

回答とヘッダーのセクションを変更します

サーバが NX ドメインで応答する場合、応答を指定した IP アドレスに置き換えるように書き換えアクションを設定できます。NOPOLICY-REWRITE を使用すると、式(ルール)を処理せずに外部バンクを呼び出すことができます。このエントリは、ルールを含まないが、ポリシーラベルまたは仮想サーバ固有のポリシーバンクにエントリを転送するダミーポリシーです。

add rewrite action set_aa_res replace_dns_header_field "dns.res.header.flags.set(aa)"
add rewrite action modify_nxdomain_res replace_dns_answer_section "dns.new_rrset_a("10.102.218.160",300)"
add rewrite policy set_res_aa true set_aa_res
add add rewrite policy modify_answer "dns.RES.HEADER.RCODE.EQ(nxdomain) && dns.RES.QUESTION.TYPE.EQ(A)"
modify_nxdomain_res
add rewrite policylabel MODIFY_NODATA dns_res
bind rewrite policylabel MODIFY_NODATA modify_answer 10 END
bind rewrite policylabel MODIFY_NODATA set_res_aa 11 END
bind lb vserver v1 -policyName NOPOLICY-REWRITE -priority 11 -gotoPriorityExpression END -type
RESPONSE -invoke policylabel MODIFY_NODATA

制限事項

  • リライトポリシーは、Citrix ADCアプライアンスがDNSプロキシサーバーとして構成されていて、キャッシュミスがある場合にのみ評価されます。
  • ヘッダー内の再帰可能 (RA) フラグが YES に設定されている場合、RA フラグは書き換えで変更されません。
  • ヘッダーの RA フラグが YES に設定されている場合、書き換え操作に関係なくヘッダーの CD フラグが変更されます。

書き換え機能に対する DNS サポート