こんにちは。並河(@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
を確認すると、オプションによって挙動が変わることがわかります。
具体的には、影響があるのは multi
と reorder
の部分でドキュメントをざっくり訳すと以下のような感じです。
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 が書いた過去記事)