astamuse Lab

astamuse Labとは、アスタミューゼのエンジニアとデザイナーのブログです。アスタミューゼの事業・サービスを支えている知識と舞台裏の今を発信しています。

/etc/hosts で同じホスト名に違うIPアドレスを設定したらどうなるか

f:id:astamuse:20181127232540j:plain

こんにちは。並河(@namikawa)です。

最近、秋も終盤に差し掛かってきていて、すっかり冬らしい気候になってまいりました。

冬といえば、スノボー・こたつでみかん・やっぱり外せないのはラーメンでしょうか。

さて、例によって今回もLinux運用環境での小ネタになります。結構前の話ではあるのですが、若手から質問されて調べた話のメモを書き残しておこうかと思います。

hosts ファイルで、同じホスト名に違うIPアドレスを設定してみる

では、早速タイトルに記載した内容を実際の環境で試してみたいと思います。 テストしてみた環境は "Ubuntu 18.04.1 LTS" となります。

まず、 /etc/hosts に以下のような内容でIPアドレスとホスト名の定義を行います。

192.168.10.100  example01
192.168.10.110  example01
192.168.21.100  example01

で、まずはデフォルトの状態で、ホスト名からIPアドレスを確認してみます。

$ getent hosts example01
192.168.10.100  example01
192.168.10.110  example01
192.168.21.100  example01

"Ubuntu 18.04" のデフォルトの設定では、全てのIPアドレスが返ってきました。

この辺の挙動については man host.conf を確認すると、オプションによって挙動が変わることがわかります。 具体的には、影響があるのは multireorder の部分でドキュメントをざっくり訳すと以下のような感じです。

  • multi : "on"の場合は定義されている(複数の)IPアドレスを全て返す。"off"の場合は最初のアドレスを返す。デフォルトは"off"。manには"on"にすると大規模なhostsファイルの運用時にはパフォーマンスに影響出るとのこと。(そりゃそうだろう)
  • reorder : "on"の場合はローカルアドレス(同じサブネット内)が最初にリストアップされる。"off"の場合は機能しない。デフォルトは"off"。

ということで、なんとなく推察できるかと思いますが、"Ubuntu 18.04" のデフォルトでは /etc/host.conf が以下で設定されていました。

$ cat /etc/host.conf
order hosts,bind
multi on

設定による挙動の差異をまとめてみます

multi off, reorder off

$ getent hosts example01
192.168.10.100  example01

multi on, reorder off

$ getent hosts example01
192.168.10.100  example01
192.168.10.110  example01
192.168.21.100  example01

multi on, reorder on

$ getent hosts example01
192.168.21.100  example01
192.168.10.110  example01
192.168.10.100  example01

実際にコマンドを実行しているマシンは 192.168.21.0/24 のネットワーク配下にいるため、返ってくるIPアドレスのリストが変わっています。

multi off, reorder on

$ getent hosts example01
192.168.10.100  example01

reorder on の設定については multi onになっていないと並べ替えは行われないみたいです。

さいごに

ということで、重箱の隅をつつく系のLinux運用環境小ネタでした。

最後に、毎度で恐縮なPRタイムですが、弊社ではエンジニア・デザイナーを絶賛大募集しておりますので、少しでも気になれば、カジュアルにランチでもしながらお話ししましょう。疑問・質問などございましたら、お手数ですが (@namikawa) まで気軽にDM等いただければと思います。

それでは!=͟͟͞͞(๑•̀=͟͟͞͞(๑•̀д•́=͟͟͞͞(๑•̀д•́๑)=͟͟͞͞(๑•̀д•́

@namikawa が書いた過去記事)

Copyright © astamuse company, ltd. all rights reserved.