[AWS VPC] DHCP設定のmacOSでhostnameが書き換わる現象を抑制した(AD on EC2-VPCの場合)

2017.10.11

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

こんにちは植木和樹@上越妙高オフィスです。月に1回位、本社秋葉原に出張に来ているのですが、その度にMacのホスト名がIPアドレス由来のものに書き換わってしまう現象に遭遇していました。

問題

自宅で仕事している時はTerminalのプロンプトには自ホスト名MYCOMPUTERが設定されているのに、出社するとip-192-168-xxx-xxxのようなホスト名で上書きされてしまう。これを抑制したい。

システム構成

自宅ではDNSをルーターにしていて、ルーターはプロバイダーが提供するDNSサーバーに問い合わせにいっている。

会社ではDNSをEC2上に構築したActive Directoryサーバーにしている。ADはVPCが提供するDNSサーバーに問い合わせにいっている。

解決方法

VPCのDNS ホスト名(DNS hostnames)設定をNoにして解決しました。

20171011_VPCDNShostname001

なおDNS 解決Yesのままにしてください。NoにするとADドメイン以外の名前解決ができなくなり、インターネットの利用に影響がでます!

参考サイト

Mac OS X hostname determination | Seize the Moment of Excited Curiosity for the Acquisition of Knowledge

上記サイトによるとDHCP設定にしたmacOSでは下記の順番でホスト名を決定するようです。

  1. DHCPまたはBOOTPサーバーで提供されるホスト名
  2. DHCPでリースされたIPアドレスを逆引きして返ってきたホスト名
  3. システム環境設定の共有で設定してあるコンピューター名
  4. localhost

つまり会社環境だとDHCPで割り当てられたIPアドレスに対する逆引き問い合わせに、VPCのDNSが応答してしまうためホスト名が上書きされてしまうようです。そのためVPCの設定でDNS ホスト名をオフにすれば解決します。

VPC での DNS の使用 - Amazon Virtual Private Cloud

確認

$ dig -x 192.168.xxx.xxx +short
ip-192-168-xxx-xxx.ap-northeast-1.compute.internal.
$ hostname
ip-192-168-xxx-xxx.ap-northeast-1.compute.internal

(DNS hostnamesをNoに変更)

$ hostname
MYCOMPUTER.local

まとめ

VPCのDNSまわりの設定は普段あまり触ることがないかと思います。最初はマニュアルを読んでも設定のオン/オフによって実際どう挙動が変わるのかピンときませんでした。

私は下記のように覚えています。マネージメントコンソールでVPCを作成すると enableDnsSupport のみ有効になっています。

  • enableDnsSupport ... VPCでDNS機能自体(正引き)を有効にするか(Yes/No)
  • enableDnsHostnames ... VPCでDNSの逆引きを有効にするか(Yes/No

本日の作業メモでした。

2017/10/11 17:51 追記

厳密にいうとenableDnsHostnamesNoにすると、内部DNS名(ex. ip-172-31-0-4.ap-northeast-1.compute.internal)の正引きが出来なくなります。内部DNS名の正引きに依存する処理を行っている場合にはご注意ください。

またenableDnsSupport, enableDnsHostnames はRoute53のPrivateHostedZoneの使用に影響します。詳細については下記のマニュアルを参照ください。 プライベートホストゾーンの使用 - Amazon Route 53