VPN、DNS クエリ、およびオペレーティング システム/プラット フォーム バリアントの FAQ 目次 概要 Q. 異なる OSS プラットフォームが DNS クエリを処理する方法はどのように違いますか。AnyConnect とフル トンネリン グまたはスプリット トンネリングによるドメイン名の解決にどのように影響しますか。 真のスプリット DNS とベスト エフォートのスプリット DNS 「tunnel all」と「tunnel all DNS」 AnyConnect 3.0.4325 で解決された DNS の性能問題 Q. それぞれのオペレーティング システムは DNS をどのように処理しますか。 Windows MAC iPhone 関連情報 概要 このドキュメントでは、異なる Operations Support Systems(OSS)が DNS クエリを処理する方法の違いと、AnyConnect による ドメイン名解決に及ぼす影響について、質問とそれに対する回答を示します。 Q. 異なる OSS プラットフォームが DNS クエリを処理する方法はどのように違います か。AnyConnect とフル トンネリングまたはスプリット トンネリングによるドメイン 名の解決にどのように影響しますか。 A. split-include トンネリングを使用するとき、DNS について次の 3 つのオプションがあります。 1. スプリット DNS:適応型セキュリティ アプライアンス(ASA)で設定されたドメイン名と一致する DNS クエリがトンネルを 通って、ASA で定義された DNS サーバなどに到達し、他のクエリは到達しません。 2. Tunnel-all-DNS:ASA で定義された DNS サーバ向けの DNS トラフィックのみが許可されます。 この設定は、グループ ポ リシーで設定されます。 3. 標準 DNS:すべての DNS クエリが、ASA によって定義された DNS サーバ経由で送信され、否定応答の場合は物理アダプタ 上で設定された DNS サーバにも送信されます。 すべてのケースで、トンネルを通過するように定義された DNS クエリは、ASA 上で定義されたすべての DNS サーバに到達しま す。 特に、ASA 上で DNS サーバが定義されない場合、トンネルについての DNS 設定はブランクです。 つまり理論的に言えば、 スプリット DNS を定義しない場合、すべての DNS クエリは ASA によって定義された DNS サーバに送信されることも意味しま す。 ただし実際には、このドキュメントに記載する動作は、オペレーティング システムによって異なる可能性があります。 注: クライアントの名前解決をテストする場合は、NSLookup の使用を避けてください。代わりにブラウザを利用するか、 ping を使用してください。 この理由は、NSLookup がオペレーティング システム(OS)DNS リゾルバに依存しないことに よって、AnyConnect が特定のインターフェイス経由で DNS 要求を強制しないためです。 これはスプリット DNS 設定に応 じて、DNS 要求の許可または拒否のみを行います。 その要求について受け入れ可能な DNS サーバを試すよう DNS リゾルバ に強制するためには、ドメイン名解決についてネイティブ DNS リゾルバに依存するアプリケーションを使用したスプリット DNS テストのみが実行されることが重要です。 たとえば、DNS 解決を自分自身で処理する、NSLookup、Dig、または同様の アプリケーションを除くすべてのアプリケーションです。 真のスプリット DNS とベスト エフォートのスプリット DNS AnyConnect リリース 2.4 は、スプリット DNS フォールバック(ベスト エフォートのスプリット DNS)をサポートし、これはレ ガシーの IPSec クライアントに見られる真のスプリット DNS ではありません。 要求がスプリット DNS ドメインと一致した場 合、AnyConnect は要求が ASA にトンネリングされることを許可します。 サーバがホスト名を解決できない場合、DNS リゾルバ は処理を続行し、物理インターフェイスにマッピングされた DNS サーバに同じクエリを送信します。 一方、要求がどのスプリッ ト DNS ドメインとも一致しない場合、AnyConnect は要求を ASA にトンネリングさせません。 その代わりに、AnyConnect は DNS 応答を作成することで、DNS リゾルバがフォールバックして、物理インターフェイスにマッピングされた DNS サーバにクエ リを送信します。 この機能がスプリット DNS ではなく、スプリット トンネリング用の DNS フォールバックと呼ばれるのはこの ためです。 つまり、スプリット DNS ドメインをターゲットとした要求のみがトンネリングされることを AnyConnect が保証する だけでなく、AnyConnect はホスト名解決のために、クライアント オペレーティング システムの DNS リゾルバの動作にも依存し ていると言えます。 このことは、非公開ドメイン名の漏えいの可能性があるため、セキュリティ上の問題となります。 たとえば、ネイティブ DNS ク ライアントが公開 DNS サーバに対して非公開ドメイン名を求めるクエリを送信する可能性があります(特に、VPN DNS 名前サー バが DNS クエリを解決できなかった場合)。 バグ CSCtn14578 を参照してください。現在、3.0.4235 で Windows についてのみ解決されています。 解決策では真のスプリッ ト DNS を実施しています。 これは、VPN DNS サーバに一致して、許可された設定済みドメイン名に限りクエリを出します。 そ の他のすべてのクエリは、物理アダプタ上で構成されたものなど、他の DNS サーバでのみ許可されます。 「tunnel all」と「tunnel all DNS」 スプリット トンネリングが無効にされた場合(tunnel-all 設定)DNS トラフィックはトンネルでのみ許可されます。 同様に、 tunnel all DNS 設定(すべての DNS ルックアップをトンネル経由で送信する)がグループ ポリシーで設定された場合、一種の スプリット トンネリングと同様、DNS トラフィックはトンネル経由でのみ許可されます。 これはすべてのプラットフォームで一貫していますが、Windows の場合は次の注意点があります。 tunnel-all または tunnel all DNS が設定された場合、AnyConnect は、セキュア ゲートウェイ上で設定された DNS サーバへの DNS トラフィックのみ許可します(VPN アダプタに適用)。 これは、先に述べた真のスプリット DNS ソリューションと一緒に実 装されたセキュリティの機能強化です。 このことが特定のシナリオで問題になることがわかった場合(たとえば、DNS 更新または登録要求を VPN DNS サーバ以外のサー バに送信する必要があるなど)、2 つの手順から成る回避策は次のとおりです。 1. 現在の設定が、tunnel-all: enable split-exclude tunneling の場合、1 つの偽のホストのスプリット除外ネットワークは 機能します(リンクローカル アドレスなど)。 2. tunnel all DNS がグループ ポリシーで設定されていないことを確認します。 AnyConnect 3.0.4325 で解決された DNS の性能問題 Windows に固有のこの問題は、以下の条件で最もよく見られます。 ホーム ルータ設定: DNS サーバと DHCP サーバに同じ IP アドレスを割り当てた場合(AnyConnect は DHCP サーバへの必 要なルートを作成します)。 大量の DNS ドメインがグループ ポリシーにある。 Tunnel-all 設定。 修飾されていないホスト名によって実行される名前解決。つまり、問い合わせされたホスト名に関係するものが試行される まで、リゾルバは選択可能なすべての DNS サーバについて大量の DNS サフィクスを試す必要があることを暗示します。 この問題は、AnyConnect がブロックする物理アダプタ経由で DNS クエリを送信しようとするネイティブ DNS クライアントが原 因です(tunnel-all 設定を指定した場合)。 これは名前解決の遅延につながります。 お客様の経験から、この遅延は非常に大 きくなることがあり、特に大量の DNS サフィクスがヘッドエンドによって送信される場合は、肯定応答を受信するまですべての DNS サフィクス(および選択可能なすべての DNS サーバ)を 1 つずつ調べる必要があるため、このことが言えます。 この問題は、先に述べた真のスプリット DNS ソリューションと一緒に(バグ CSCtq02141およびCSCtn14578 と組み合わせて)バ ージョン 3.0.4325 で解決済みです。 ただし、アップグレードを実行できない場合は、次の回避策を実行できます。 1. 1 つの偽の IP アドレスに対して split-exclude トンネリングを有効にすることで、ローカル DNS 要求が物理アダプタを 通過します。 任意のデバイスがリンクローカル サブネット 169.254.0.0/16 のいずれか 1 つに対して VPN 経由でトラフ ィックを送信することはほとんどないため、これらの IP アドレスからのアドレスを使用できます。 スプリット除外を可能 にした後、クライアント プロファイルまたはクライアント自身のローカル LAN アドレスを有効にし、tunnel all DNS を無 効にするようにしてください。 ASA での構成変更を次に示します。 access-list acl_linklocal_169.254.1.1 standard permit host 169.254.1.1 group-policy gp_access-14 attributes split-tunnel-policy excludespecified split-tunnel-network-list value acl_linklocal_169.254.1.1 split-tunnel-all-dns disable exit クライアント プロファイルには、次の行のみを追加します。 <LocalLanAccess UserControllable="true">true</LocalLanAccess> また、AnyConnect クライアント GUI でこれをクライアントごとに有効にすることもできます。 [AnyConnect Preference] メニ ューにナビゲートし、[Enable local LAN access] オプションにチェックマークを入れます。 2. 名前解決には、修飾されていないホスト名でなく、完全修飾ドメイン名(FQDN)を使用します。 3. 物理インターフェイスの DNS サーバに別の IP アドレスを使用します。 Q. それぞれのオペレーティング システムは DNS をどのように処理しますか。 A. AnyConnect のスプリット トンネリングと一緒に使用するとき(スプリット DNS を使用しない)、DNS 検索を処理する方法は、 オペレーティング システムの種類によって異なります。 Windows Windows では、DNS 設定はインターフェイスごとです。 つまり、スプリット トンネリングが使用された場合、VPN トンネル ア ダプタで DNS クエリが失敗すると、クエリは物理アダプタの DNS サーバにフォールバックできるということを意味します。 ス プリット DNS を使用しないスプリット トンネリングが定義された場合、外部 DNS サーバにフォールバックするため、内部およ び外部の両方の DNS 解決が機能します。 MAC MAC では、DNS 設定はグローバルです。 したがって、スプリット トンネリングが使用されているが、スプリット DNS は使用さ れない場合、DNS クエリはトンネル外部のDNS サーバに到達できません。 外部ではなく、内部でのみ解決できます。 このことは、バ グ CSCtf20226 および CSCtz86314 に記載されています。 いずれの場合も、次の回避策によって問題が解決されるはずです。 - Specify an external DNS server IP address under the group-policy and use FQDN for internal DNS queries - If external names are resolvable via the tunnel, disable split DNS by removing the DNS names configured in the group policy, under Advanced > Split Tunneling. This requires using FQDN for internal DNS queries. - The split-DNS case has been resolved in AnyConnect 3.1, with these caveats: * split-DNS must be enabled for both IP protocols (requires ASA v9.0 or later); OR * split-DNS must be enabled for one IP protocol and (if ASA has v9.0 or later: client bypass protocol for the other IP protocol, for example, no address pool and Client Bypass Protocol enabled in the group policy or if ASA is earlier than v9.0: no address pool configured for the other IP protocol; this implies that this other IP protocol is IPv6.) 注: AnyConnect は MAC OSX の resolv.conf ファイルを直接変更せず、OSX 固有の DNS 設定を変更します。 OSX には、 OSX の DNS 設定を参照する resolv.confscutil --dns コマンドがあります。 iPhone iPhone は MAC と正反対で、Windows と同じではありません。 スプリット トンネリングが定義されたがスプリット DNS が定義 されない場合、DNS クエリは、定義されたグローバル DNS サーバに到達します。 たとえば、スプリット DNS ドメイン エントリ は内部解決のために必須です。 この動作はバグ CSCtq09624 に記載されており、iOS AnyConnect クライアントの最新の 2.5.4038 バージョンで修正されています。 注: iPhone DNS クエリは、CSCts89292 に記載されている.local domains を無視します。 この問題はオペレーティング システムの機能が原因であることが、Apple のエンジニアによって確認されています。 これは設計による動作であり、変更 されることがないことが Apple により確認されています。 関連情報 CSCsv34395 - DHCP サーバへの FQDN のプロキシ実行のサポートを AnyConnect に追加する(英語) CSCtn14578:真のスプリット DNS をサポートする AnyConnect (フォールバックしない)(英語) CSCtq02141 - ISP DNS がパブリック IP と同じサブネットの場合の AnyConnect DNS の問題(英語) CSCtn14578:真のスプリット DNS をサポートする AnyConnect (フォールバックしない)(英語) CSCtf20226 - Mac でのスプリット トンネルを使用した AnyConnect DNS の動作を Windows と同じにする(英語) CSCtz86314 - Mac: スプリット DNS によるトンネル経由で DNS が正しく送信されない(英語) CSCtq09624 - スプリット トンネリングを使用した AnyConnect iPhone DNS の動作を Windows と同じにする(英語) CSCts89292 - iPhone DNS への AC のクエリが .local domains を無視する(英語) Cisco IOS ファイアウォール(英語) テクニカルサポートとドキュメント:シスコ 1992 - 2014 Cisco Systems, Inc. All rights reserved. Updated: 2013 年 6 月 28 日 http://www.cisco.com/cisco/web/support/JP/111/1118/1118270_vpn-dns-queries-qanda-j.html Document ID: 116016
© Copyright 2026 Paperzz