※ 2018 年 9 月 13 日現在の情報をもとに作成しています
1. はじめに
Windows OS に付属している nslookup コマンドを実行すると、指定したドメインについての DNS クエリーだけでなく、それに関連する DNS クエリーが複数生成されます。そして、それらの応答をもとに結果の出力が行われます。これは、実際に Web 閲覧などの際に行われる名前解決と比べると少々複雑になっています。
そのため、Umbrella のデプロイ方法や DNS の環境によっては、nslookup コマンドの出力や、その際の Umbrella Dashboard の Active Search レポートの表示が想定どおりとはならない場合があります。
本記事ではそういった場合のいくつかの例と回避策について紹介します。
2. Network Identity を使用している場合
Network Identity は、Umbrella Dashboard に組織のグローバル IP アドレスを登録し、クライアントの DNS として Umbrella の DNS サーバー (208.67.222.222/208.67.220.220) を指定するデプロイ方法です。
この環境において、DNS サフィックスに「cisco.com」が設定されている Windows 端末で「nslookup example.com」を実行すると、以下の DNS クエリーが Umbrella の DNS サーバーへ順に送られます。
- Umbrella の DNS サーバーの IP アドレスの PTR (逆引き) レコード
- example.com.cisco.com の A レコード
- example.com.cisco.com の AAAA レコード
- example.com の A レコード
- example.com の AAAA レコード
そして、実際の実行結果は以下のようになります。
>nslookup example.com 208.67.222.222
サーバー: resolver1.opendns.com
Address: 208.67.222.222
権限のない回答:
名前: example.com
Addresses: (省略)
一連の流れを説明すると、まず出力 2 行目の表示用に DNS サーバーの逆引き (1) を行い、DNS サフィックス付きの IPv4/IPv6 の名前解決 (2)/(3) を行います。ここでドメインがなかった (NXDOMAIN) 場合、DNS サフィックスなしの IPv4/IPv6 の名前解決 (4)/(5) を行います。
なお、この場合の Umbrella Dashboard の Activity Search レポートの表示は以下のようになります。

※ 逆引きの表示がないのは、逆引きは Noisy Domain に属しており、デフォルトで非表示となっているためです
3. Roaming Computers を使用している場合
Roaming Computers (Roaming Client または AnyConnect Umbrella Roaming Security Module) を使用している場合でも、前項の 5 種類の DNS クエリーは生成されます。
ただし、Network Identity との違いとして、デフォルトで DNS サフィックスが自動的に Internal Domains (内部ドメイン) の中に含まれます。
そのため、DNS サフィックス付きの IPv4/IPv6 の名前解決は Umbrella の DNS サーバーではなく、内部の DNS サーバーに送られることになります。また、逆引きも Internal Domains の対象となっていますので、内部の DNS サーバーに送られます。
その結果として、DNS サフィックスなしの IPv4/IPv6 の名前解決のみが Umbrella の DNS サーバーに送られます。以下はその時の Activity Search レポートの表示例です。

4. Virtual Appliance を使用している場合
Virtual Appliance を使用している場合、前項の Roaming Computers と同様に Internal Domains が使えます。
ただし、DNS サフィックスが自動的に Internal Domains の中に含まれることはありませんので、手動で DNS サフィックスを Internal Domains に登録していない限り、Umbrella の DNS サーバーに送られることになります。結果として Activity Search レポートには以下のように表示されます。

5. ワイルドカード指定のドメインが DNS サフィックスの場合
これまでの説明では、example.com.cisco.com というドメインが存在しないことを前提として進めていきました。もし、このドメインが実際に存在する場合、その後に行われる DNS サフィックスなしの IPv4/IPv6 の名前解決は行われないことになります。
実際のところ、「問い合わせるドメイン + DNS サフィックス」という形のドメインが存在することはほとんどありませんが、DNS サフィックスに使っているドメインが「ワイルドカード指定」されている場合は話が変わります。
ここでいうワイルドカード指定とは、ドメインのゾーン ファイルで「*」を使うことを指します。この場合、aaa.cisco.com や bbb.cisco.com といったすべてのサブドメインにおいて、同じ IP アドレスが返されることになります。
そして、この場合、example.com.cisco.com についても同じ IP アドレスが返ることになり、結果として想定されない IP アドレスがコマンドの実行結果として出力されることになります。
6. 回避策
これまで説明してきたような DNS サフィックス付きの IPv4/IPv6 の名前解決が行われる事象は、以下のようにドメインの最後にピリオド (.) をつけることで回避できます。
nslookup example.com.
このピリオドは「ルート ドメイン」を表し、これより後にサフィックスが付かないことを意味します。
これまで行ってきた説明は以下のサポート記事にも詳しく記載されています。
nslookup: Special DNS consideration for test lookups (DNS Suffixes)
https://support.umbrella.com/hc/en-us/articles/360001339343-nslookup-Special-DNS-consideration-for-test-lookups-DNS-Suffixes-