はじめに
このドキュメントでは、FDQNオブジェクトを使用する際のCisco適応型セキュリティアプライアンス(ASA)でのドメインネームシステム(DNS)の動作について説明します。
前提条件
要件
Cisco ASAに関する基本的な知識があることが推奨されます。
使用するコンポーネント
シミュレートされた実稼働環境のASAで複数の完全修飾ドメイン名(FQDN)を設定する場合のDNSの動作を明確にするため、インターネットに面した1つのインターフェイスと、ESXiサーバでホストされるPCデバイスに接続された1つのインターフェイスを持つASAvをセットアップしました。このシミュレーションには、ASAvの暫定コード9.8.4(10)が使用されています。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
ネットワーク図
トポロジの設定を次に示します。
背景説明
複数の完全修飾ドメイン名(FQDN)オブジェクトがASAで設定されている場合、FQDNオブジェクトで定義されているいずれかのURLにアクセスしようとするエンドユーザが、ASAによって送信される複数のDNSクエリを確認します。このドキュメントの目的は、このような動作が見られる理由について、より詳細に理解することです。
設定
クライアントPCは、これらのIP、サブネットマスク、およびDNS解決用のネームサーバで設定されています。
ASAでは、2つのインターフェイス(PCが接続されたセキュリティレベル100の内部インターフェイス1つ、およびインターネットに接続できる外部インターフェイス1つ)が設定されました。
ここで、Gig0/1インターフェイスはインターフェイスIPが10.197.223.9の外部インターフェイスで、Gig0/3インターフェイスはインターフェイスIPが10.10.10.1の内部インターフェイスで、反対側のPCに接続されています。
次に示すように、ASAでDNS設定を行います。
www.facebook.com、www.google.com、www.instagram.com、およびwww.twitter.comに対して4つのFQDNオブジェクトを設定します。
DNSトラフィックをキャプチャするために、ASA外部インターフェイスでキャプチャを設定します。次に、クライアントPCから、ブラウザを使用してwww.google.comへのアクセスを試みます。
何を観察しますか。パケットキャプチャを見てください。
ここでは、www.google.comのみを解決しようとした場合でも、すべてのFQDNオブジェクトに対してDNSクエリが送信されていることが分かります。
次に、ASA上のIPに対するDNSキャッシングの仕組みを見て、これが起きる理由を理解します。
- クライアントPCのWebブラウザにwww.google.comと入力すると、PCはDNSクエリを送信して、IPアドレスに解決されたURLを取得します。
- DNSサーバはPCの要求を解決し、google.comが指定された場所にあることを示すIPを返します。
- 次に、PCはgoogle.comの解決済みIPアドレスへのTCP接続を開始します。ただし、パケットがASAに到達したとき、指定したIPを許可または拒否することを示すACLルールはありません。
- ただし、ASAは、4つのFQDNオブジェクトがあり、FQDNオブジェクトのいずれかが関連するIPに解決される可能性があることを認識しています。
- したがって、ASAは、関係するIPに解決できるFQDNオブジェクトを認識しないため、すべてのFQDNオブジェクトに対してDNSクエリを送信します(これが複数のDNSクエリが観察される理由です)。
- DNSサーバは、FQDNオブジェクトを対応するIPアドレスで解決します。FQDNオブジェクトは、クライアントによって解決されたものと同じパブリックIPアドレスに解決できます。そうしないと、ASAは、クライアントが到達しようとしているIPアドレスとは異なるIPアドレスに対してダイナミックアクセスリストエントリを作成するため、ASAはパケットを廃棄してしまいます。たとえば、ユーザがgoogle.comを10.0.113.1に解決し、ASAが10.0.113.2に解決した場合、ASAは10.0.113.2の新しいダイナミックアクセスリストエントリを作成し、ユーザはWebサイトにアクセスできません。
- 特定のIPの解決を要求する要求が次に到着したとき、その特定のIPがASAに保存されている場合は、ダイナミックACLエントリが存在することになるため、そのIPは再度すべてのFQDNオブジェクトを照会しません。
- クライアントがASAから送信された大量のDNSクエリを懸念している場合は、DNSタイマーの有効期限を延長します。これにより、エンドホストはDNSキャッシュにある宛先IPアドレスにアクセスしようとします。PCがASAのDNSキャッシュに保存されていないIPを要求すると、すべてのFQDNオブジェクトを解決するためにDNSクエリが送信されます。
- この問題の回避策として、DNSクエリの数を引き続き削減する場合は、FQDNオブジェクトの数を減らすか、FQDNを解決するパブリックIPの全範囲を定義します。ただし、FQDNオブジェクトの目的は達成されません。Cisco Firepower Threat Defense(FTD)は、この使用例に対処するより優れたソリューションです。
確認
各FQDNオブジェクトが解決されるASAのDNSキャッシュにどのIPが存在するかを確認するには、コマンドASA# sh dnsを使用できます。
関連情報