LinuC Level1 v10.0 対策コース(パート2)9/29
ホストの基本的なTCP/IP設定
こちらでは、ホストの基本的な設定(hostsファイル、nsswitch.confファイル)について解説します。
hostsファイル
hostsファイルは、ドメインとIPアドレスの対応づけのためのファイルで、コンピュータ内でのみ有効なDNSサーバーのような役割があります。
基本的にはDNSサーバーより先に参照され、hostsの記述内容によっては意図しないIPアドレスが返ってくることがあるので注意が必要です。例えば公開前のサイトの確認などの用途では、hostsへの記述が有効です。
hostsファイルの中身
hostsファイルは/etc/hosts
です。IPアドレスと対応するドメインをIPアドレス ホスト名
の形式で記述します。
以下のような記述は192.168.0.1への接続をtesttest
で行うことができます。
192.168.0.1 testtest
nsswitch.conf
nsswitch.confは、Name Service Switchの設定ファイルです。システムが使用する各種情報の検索順を指定するために使用され、ユーザー情報や名前解決の参照順などの定義をします。
nsswitch.confの中身
nsswitch.confの記述の仕方は一列目に用途(データベース)、二列目に対象となる項目を、左から参照順に記述しています。
nsswitch.confのhosts行に注目すると、ドメインの名前解決の参照順位が定義されて、参照順はfiles、dns、myhostnameの順になります。具体的には名前解決を行う際にfile(/etc/hosts
)が参照され、これに失敗するとdns(/etc/resolv.conf
で指定しているDNSサーバー)が参照され、名前解決の実行順序の変更は、順番を入れ替えることでできます。
passwd: sss files systemd
shadow: files sss
group: sss files systemd
hosts: files dns myhostname
services: files sss
netgroup: sss
automount: files sss
aliases: files
ethers: files
gshadow: files
# Allow initgroups to default to the setting for group.
# initgroups: files
networks: files dns
protocols: files
publickey: files
rpc: files
files
データベースにより参照の対象となるfilesが異なるため代表的なものを以下に記載します。
database名 | filesが参照している設定ファイル | 内容 |
---|---|---|
hosts | /etc/hosts | IPアドレスとホスト名/FQDNの紐付け |
passwd | /etc/passwd | ユーザー名と詳細情報 の紐付け |
group | /etc/group | グループ名とGID/所属ユーザー名の紐付け |
shadow | /etc/shadow | ユーザー名とパスワード (ハッシュ値) の紐付け |
networks | /etc/networks | ネットワーク名とネットワークアドレスの紐付け |
services | /etc/services | サービス名とTCP/UDPポート番号の紐付け |
getent
getentはnsswitch.confで定義されているデータベースの内容を表示するコマンドです。getent データベース名
で表示することができます。
hosts(名前解決)を確認してみます。
getent hosts
127.0.0.1 localhost
127.0.0.1 localhost ip6-localhost ip6-loopback
172.17.0.2 73b2977f04df
getentでの名前解決
getentコマンドで名前解決を行うこともできます。getent データベース名 IPアドレス/ドメイン名
と入力します。
% getent hosts envader.plus
34.111.64.3 envader.plus
まとめ
ホストの基本的な設定について解説しました。
hostsファイルはDNSサーバーのように名前解決に使われます。nsswitch.confファイルはシステムが使用する各種情報の検索順を指定するために使用され、ユーザー情報や名前解決の参照順などの定義をします。
記事の内容は理解できましたか?