このページではLinuxインストールした自宅サーバー公開サーバー向けのネットワーク設定にする方法についてビギナー向けに解説します。
お便利サーバー.com+相互リンクサイト内をキーワードで検索
CentOS6.2インストール後の設定

インストール後の設定

ログインシステムの変更

ユーザーアカウントの作成

X-Windowと通信の確認

簡易テキストエディタ"nano"

ネットワークの詳細設定

SELinuxの無効化

ファイヤーウォールの無効化

日本語文字セットの設定

sshクライアントの導入

yumによるアップデート

不要デーモンの停止

公開のためのルーター設定

ダイナミックDNSの登録と設定

ダイナミックDNSの自動更新

Ubuntu 10.04 LTS デスクトップ版のススメへようこそ

サーバーを前提としたネットワーク設定

構築中のLinuxサーバー を、単純に クライアント機 として使うだけであれば、 OS インストール のときに行ったネットワーク設定だけで充分です。

従ってこのパートで行う設定は不要です。

しかしながらクライアント機ではなく サーバー機 として確実に機能させるためには更に詳細なネットワーク設定が必要となります。

ここで行う設定は CentOS6 をサーバーとして動作させるためだけではなく、これから行っていく様々な設定の基本になりますから、「とりあえず動くようになればいい」という考えで設定すると良くありません。一つ一つの設定の意味を理解しながら行うことに意義があると考えてください。

ネットワークの設定を司るCentOS6システム上の設定ファイルは、以下のとおりです。

1./etc/sysconfig/network-scripts/ifcfg-eth?

特定の NIC に依存するネットワーク情報の設定ファイル。

2./etc/sysconfig/network

NICに依存しない、CentOS6システム全体のネットワーク情報の設定ファイル。

3./etc/resolv.conf

構築中のLinuxサーバー が参照する DNSサーバー 情報の設定ファイル。

4./etc/hosts

構築中のLinuxサーバー が参照する hostsファイル

5./etc/host.conf

6./etc/nsswitch.conf

このCentOS6システムが参照する 名前解決 システムの優先順位の設定ファイル。

これからCentOS6のシステム上で行う様々な サーバー アプリケーション の設定は、いずれもこの六つの設定ファイルの記述を デフォルト の値として参照しますから、これらの設定を間違えてしまうと後でとても困ることになります。

もしも 構築中のLinuxサーバー とりあえずインターネットに接続できている 状態であれば、これらの設定ファイルには既に基本的な設定値が記述されているはずです。

ですから、変更したり追加したりするパラメータだけではなく、デフォルトのまま書き換える必要のないパラメータについても、一つ一つの意味を確実に押さえておくことをお勧めします。

このページの先頭へ↑

1.NICのネットワーク設定

TCP/IP では、通信の ノード として NIC を用います。

制限はありますが、一つのNICに対しても複数のネットワーク設定を行うことも可能です。

設定は、

"/etc/sysconfig/network-scripts/ifcfg-eth?"

という設定ファイルの内容を編集して行います。

ファイル名の末尾の "?" は、 "0" から始まる続き番号となります。

これは CentOS6 のシステムが、一つの ホスト に複数のNICを実装する場合に対応するためです。

ですから、今回 構築中のLinuxサーバー のように ホスト機 に一つのNICしか実装されていない場合は、

"/etc/sysconfig/network-scripts/ifcfg-eth0"

だけを編集すればよいことになります。

ネットワークの設定ファイルは、 "root" ユーザー以外には変更できません。

まず、適当な ユーザーアカウント でCentOS6のシステムに ログイン した後、 su コマンド でユーザーアカウントを "root" に変更し、設定ファイルを nano エディタで開きます nanoエディタでファイルを開く

右下の設定値(初期値)は、インストールしたサーバー機の ハードウェア 構成、ドライバのインストールの手順の違いなどによって異なることがあります。
[tanaka@web1 ~]$ su -Enter
Password: "root"のパスワードを入力します。 Enter
[root@web1 ~]# nano /etc/sysconfig/network-scripts/ifcfg-eth0Enter


書式は、

"キーワード"="パラメータ"

です。これらの値は、NICが動作を開始するときに読み込まれます。ひとつの設定値は一行に記述します。各行の記述の順序の指定は特にありません。

日本語に対応したテキストエディタを使う場合は日本語でコメントを入れることもできますが、あいにく "nano" は日本語対応が不十分です。すべて半角英数字で記述してください。

"#" で始まる行はコメント行としてプログラムからは無視されますから、メモなどで適宜利用してください。

以下、各キーワードの意味とパラメータについて説明します。

"DIVICE"...NICの名前

実際に設定値としてシステムが参照するのはこの値であって、ファイル名の "ifcfg-eth0" ではありません。まぎらわしいので念のため。

構築中のLinuxサーバー 自身が、システムの中の様々な設定で、 NIC を特定して取り扱う場合の「識別名」です。

使用するNICがひとつで、またそのNICにひとつしか IPアドレス を割り当てない場合(つまり現在構築中のケース)は、

DEVICE="eth0"

と記述します。

"NM_CONTROLLED"...NetworkManagerの有効化

NIC の設定や制御を、 X-Window 上のネットワーク設定アプリケーション "NetworkManager" NetworkManagerについて で行うことを可能にするか否かの設定です。

通常は

NM_CONTROLLED="yes"

として有効にしておきます。

"no" にすると、デスクトップでの設定や制御操作ができなくなります。

"ONBOOT"...起動時のNIC有効化の有無

構築中のLinuxサーバー のシステムを起動したときに、自動的にその NIC を有効にするか、しないか、という設定です。パラメータ "yes" "no" で指定します。

これが有効になっていないと、 構築中のLinuxサーバー の起動時にNICが動作せず、起動の度に手動で動作させなくてはならなくなります。当然、

ONBOOT=yes

と記述します。

"TYPE"...接続タイプの設定

NIC の規格の設定です。

最近はほとんどがイーサネット接続ですから、 "Type=Ethernet" 以外の設定が行われるのは非常に珍しいといえます。例えば、アナログ モデム でインターネットに接続する場合などは、 "TYPE=Modem" という記述になります。

今回のケースでは、 構築中のLinuxサーバー ルーター 配下に イーサネット で接続されていますから、

TYPE=Ethernet

と記述します。

"BOOTPROTO"...IPアドレスの指定方法の選択

NIC の基本的な「振る舞い」の設定です。

その他、 "dialup" 、や "bootp" といった設定もありますが、今回のサーバー構築には無関係なので説明は割愛します。

もし、NICに対して直接 IPアドレス を設定するときは "none" ルーター などを DHCPサーバー として稼動させ、NICに自動でIPアドレスを割り当てるときは "dhcp" と設定します。

当然ながら、 構築中のLinuxサーバー は、 サーバー として稼動させるためにIPアドレスを固定にする必要がありますから、

BOOTPROTO=none

と記述します。

"IPADDR"...IPアドレスの値

NIC に割り当てる IPアドレス の設定です ネットワークの計画 。当然、

IPADDR=192.168.100.11

となります。

"PREFIX"...プレフィックス長

構築中のLinuxサーバー が接続している サブネット プレフィックス長 の設定です。

以前のバージョンのCentOSでは、 NETMASK=255.255.255.0 のように記述していました。

サブネットマスク値 ネットワークの計画 "255.255.255.0" に相当するプレフィックス長 プレフィックス長について として、

PREFIX=24

と設定します。

"GATEWAY"...ゲートウェイアドレスの値

サブネット の出入り口である ゲートウェイアドレス の設定です。つまり ルーター IPアドレス が入ります ネットワークの計画

このパラメータを設定しない場合には、 "/etc/sysconfig/network/" (2.ネットワーク全体の設定)のキーワード "GATEWAY" の設定が参照されます。

つまり、複数の NIC を搭載して、NIC毎に異なるゲートウェイアドレスを設定する必要があるときには省略することはできません。

ただし、 「ゲートウェイアドレスの設定は、NICに対して個別に行う。」 という習慣にしておいたほうがスマートですから、ここで設定しておくことをおすすめします。

GATEWAY=192.168.100.1

となります。

"DNS1""DNS2"...参照DNSサーバーのアドレス

構築中のLinuxサーバー が自ら参照する DNSサーバー IPアドレス を設定します。

NetwoorManager を利用しない場合は自動的に "/etc/resolv.conf" には書き込まれません。
この場合は後述する "/etc/resolv.conf" に所定の書式で直接記述する必要があります。

ここに記述されたDNSサーバーのIPアドレスは NIC が起動するときに、後述する "/etc/resolv.conf" "nameserver" の値として書き込まれます。

つまりシステムが実際に参照するのはこの設定ファイルの記述部分ではなく "/etc/resolv.conf" "nameserver" の値となります。

ここには、

DNS1=xxx.xxx.xxx.xxx

DNS2=yyy.yyy.yyy.yyy

と記述します。

DNSサーバーのIPアドレスは、 ISP のメンテナンスの場合などに備え、通常は二つ以上のDNSサーバーを参照しておく必要がありますので、ISPの契約書類をお読みになり、書類に記載のあるDNSサーバーを二つ以上記述しておくことをお薦めします。

"DOMAIN"...DNS検索パス

構築中のLinuxサーバー が、検索する ホスト名 から ドメイン名 が省略されている場合に自動的に補完するドメイン名を設定します。

通常は 構築中のLinuxサーバー に設定する主ホスト名のドメイン名を記述します。

NetwoorManager を利用しない場合は自動的に "/etc/resolv.conf" には書き込まれません。
この場合は後述する "/etc/resolv.conf" に所定の書式で直接記述する必要があります。

ここに記述されたドメイン名は NIC が起動するときに、後述する "/etc/resolv.conf" "search" の値として書き込まれます。

つまりシステムが実際に参照するのはこの設定ファイルの記述部分ではなく "/etc/resolv.conf" "search" の値となります。

ここには、

DOMAIN=obenri.com

と記述します。

"DEFROUTE"...デフォルトのNICの設定

構築中のLinuxサーバー に複数の NIC が接続されている場合に、システムが使用するNICを明示的に指定しない場合に用いられる デフォルト のNICを設定します。

NICが一つしかない場合には実際にはこの設定は意味を持ちませんが、後からNICを追加したときのために、

DEFROUTE=yes

と設定しておきます。

"IPV4_FAILURE_FATAL"...IPv6を利用するか否か

この NIC が、 IPv4 による設定を試みてうまくいかなかったとき、 IPv6 が利用可能であればIPv6を有効にするか、それともIPv6が利用可能であっても使用しないか、を選択する設定です。

"no" を設定すれば前者、 "yes" で後者となります。

この コンテンツ ではIPv6でのサーバー構築については触れません。

IPV4_FAILURE_FATAL=yes

と設定します。

"IPV6INIT"...IPv6の有効化

NIC IPv6 IPv6について を利用するかどうかの設定です。

このコンテンツではIPv6は扱いませんので記述しないか、明示的に IPV6INIT=no と設定しておきます。

"NAME"...NetworkManagerの認識名

X-Window 上のネットワーク設定アプリケーション "NetworkManager" NetworkManagerによるNICの設定 NIC を認識するときの名前です。通常は変更せずに、

NAME="System eth0"

としておきます。

"UUID"...システムが付与する認識名

CentOS が、 NIC 周辺機器の一つとして命名する、 ユニーク な認識名です。

NICが始めて認識され、有効になったときに付与されるもので、以後この 構築中のLinuxサーバー における一意的な名前として扱われます。

そのまま変更しません。

"HWADDR"...NICのMACアドレス

NIC MACアドレス の設定です。

NICが認識されたときに通常は自動的に設定されます。

そのままにしておきます。

設定ファイルの例

以上の設定を行った "/etc/sysconfig/network-scripts/ifcfg-eth0" の設定例を示します。

CentOS6 インストール を行うとき、ネットワークの設定 CentOS6のインストール(ネットワークの設定) の説明通りに設定が行われていれば、基本的に修正の必要はないはずです。

テキストファイルの内容が変更されていなければ、 Ctrl+x だけで終了できます。

設定が終わったら、 Ctrl + x y Enter で設定ファイルを保存し、 nano エディタを終了します。

NEC「得選街」
このページの先頭へ↑

2.ネットワーク全体の設定

CentOS6 は複数の NIC の利用が可能で、更にそれぞれのNICに複数の ノード を設定することが可能です。

ただ、例えば ドメイン名 FQDN のように、 それぞれのノードに依存しない設定、つまり 「全体をとりまとめた共通設定」 を行う必要があります。

その設定は、

"/etc/sysconfig/network"

という設定ファイルの内容を編集して行います。

編集は "/etc/sysconfig/network-scripts/ifcfg-eth0" と同様の手順で行います。

[tanaka@web1 ~]$ su -Enter
Password: "root"のパスワードを入力します。 Enter
[root@web1 ~]# nano /etc/sysconfig/networkEnter


書式は、

"キーワード"="パラメータ"

です。これらの値は、システムのネットワークが動作を開始するときに読み込まれます。ひとつの設定値は一行に記述します。各行の記述の順序の指定は特にありません。

"#" で始まる行はコメント行としてプログラムからは無視されますから、メモなどで適宜利用してください。

以下、各キーワードの意味とパラメータについて説明します。

"NETWORKING"...ネットワーク機能の利用の有無

CentOS6の色々な設定の中には、このように、 「そんなの当たり前でしょ。」 的なものが結構あります。人間にとって解り切ったことでも、機械には教えてあげなければ解ってくれないことがたくさんあるということです。

構築中のLinuxサーバー のシステムが、ネットワーク機能を利用するかどうかの設定です。 "yes" または "no" で指定します。当然、

NETWORKING=yes

となります。

"HOSTNAME"...ホスト名の設定

この CentOS6 のシステムの、 ホスト名 FQDN )を設定します。

このパラメータは、CentOS6のシステムと、システム上で動作する アプリケーション の多くがホスト名の デフォルト として参照します。

CentOS6の インストール で、ネットワークの設定のステップ CentOS6のネットワーク設定 を行っていれば、また後から NIC の設定を行っていれば CentOS6インストール後にNICのドライバをインストールする方法 、ホスト名は "web1.obenri.com" になっているはずです。

もしも設定されていないければ、

HOSTNAME=web1.obenri.com

のように、 ホスト名の決め方について の考え方に基づいてホスト名を定め、記述します。

"GATEWAY"...ゲートウェイアドレスの値

構築中のLinuxサーバー のシステムの、 ゲートウェイアドレス を設定します。

このパラメータは、 "/etc/sysconfig/network-scripts/ifcfg-eth?" で、キーワード "GATEWAY" が設定されていない場合の デフォルト との設定なります。

つまり、 "/etc/sysconfig/network-scripts/ifcfg-eth?"

にきちんと設定されていればこのパラメータは不要ですが、念のため設定しておくことをおすすめします。

GATEWAY=192.168.100.1

と記述します。

設定ファイルの例

以上の設定を行った "/etc/sysconfig/network" の設定例を示します。

CentOS6 インストール を行うとき、ネットワークの設定 CentOS6のインストール(ネットワークの設定) の説明通りに設定が行われていれば、基本的に修正の必要はないはずです。

テキストファイルの内容が変更されていなければ、 Ctrl+x だけで終了できます。

設定が終了したら、 Ctrl + x y Enter で設定ファイルを保存し、 nano エディタを終了します。

NEC「得選街」
このページの先頭へ↑

3.参照するDNSサーバーの設定

構築中のLinuxサーバー が、 名前解決 のために参照する DNSサーバー の設定ファイル、

"/etc/resolv.conf"

です。

[tanaka@web1 ~]$ su -Enter
Password: "root"のパスワードを入力します。 Enter
[root@web1 ~]# nano /etc/resolv.confEnter


以前のバージョンの CentOS では、直接この "/etc/resolv.conf" に参照するDNSサーバーのIPアドレスなどを記述していましたが、CentOS6では NetworkManager が有効になっていると、ネットワークが起動するときに "/etc/sysconfig/network-scripts/ifcfg-eth0" に記述されている、

DNS1=xxx.xxx.xxx.xxx

DNS2=yyy.yyy.yyy.yyy

DOMAIN=obenri.com

の設定が、 "/etc/resolv.conf" の中に

nameserver xxx.xxx.xxx.xxx

nameserver yyy.yyy.yyy.yyy

search obenri.com

と転写され、機能するように仕様変更されています。

つまり通常はこの "/etc/resolv.conf" を直接書き換える必要はありません。

しかしNetworkManagerが有効で自動設定になっていても、この設定ファイルは内容を書き換えて保存するとすぐに設定が反映されますから、テストとして一時的に内容を書き換えたりすることはあり得るかもしれませんので、以下簡単に記述方法について説明します。

参照するDNSサーバーの部分の書式は、

"nameserver IPアドレス " で指定します。

キーワード "nameserver" とパラメータである "IPアドレス" は間をスペースまたはTABで区切って、一行毎に一つのパラメータを記述して参照するDNSサーバーをIPアドレスで指定します。

キーワードは複数設定可能で、上の行に記述されたDNSサーバーから順に参照されます。

DNS検索パスの部分の書式は、

"search ドメイン名 " で指定します。

ここに、例えば

"seaech obenri.com"

と記述したとすると、DNSサーバーで名前解決を行うとき、 "www.obenri.com" といった FQDN ではなく、 "www" というホスト名だけでも、その後ろにキーワード ".obenri.com" を補完して名前解決を行ってくれます。

このキーワードは、 LAN 内に自前のDNSサーバーを設置し、そのDNSサーバーにサブネット内とサブネット外とで異なる名前解決を行わせるときなどには有効なことがありますが、自分でDNSサーバーを設置していない現時点では、任意です。

"#" で始まる行はコメント行としてプログラムからは無視されますから、メモなどで適宜利用してください。

テキストファイルの内容が変更されていなければ、 Ctrl+x だけで終了できます。

書き換えを有効にしたいときは、、 Ctrl + x y Enter で設定ファイルを保存し、 nano エディタを終了します。

ただし、NetworkManager NetworkManagerについて が有効になっていると、直接書き換えた内容は、 ホスト機 を再起動したり、ネットワーク接続の再起動を行ったりすると、自動的に "/etc/sysconfig/network-scripts/ifcfg-eth0" で上書きされてしまう点に注意してください。

NEC「得選街」
このページの先頭へ↑

4."hosts"の設定

構築中のLinuxサーバー が、固定的に 名前解決 を行う hostsファイル として、

"/etc/hosts"

を編集します。

[tanaka@web1 ~]$ su -Enter
Password: "root"のパスワードを入力します。 Enter
[root@web1 ~]# nano /etc/hostsEnter


書式は、

" IPアドレス   ホスト名 " です。

行の先頭から最初のスペースまたはTABまでが IPアドレス と解釈されます。

左側のパラメータである IPアドレス と、右側のパラメータである ホスト名 はスペースまたはTABで区切って、一行で記述します。ホスト名はスペースまたはTABで区切って複数指定することが可能です。

キーワードは複数設定可能で、上の行から順に参照されます。

"#" で始まる行はコメント行としてプログラムからは無視されますから、メモなどで適宜利用してください。

一行目と二行目はそれぞれ IPv4 IPv6 ループバックアドレス に対する名前解決の設定です。

これらの設定は、ユーザーが行う設定とは無関係にシステムが決めるものですから、修正せずにそのまま残しておきます。

構築中のLinuxサーバー をパソコンと同じように一般的なクライアント期として使用するのであれば、 "/etc/hosts" の設定はこれだけで構いません。

しかしながらサーバーとして運用を行う場合はこれだけでは不十分で、先に サーバーのホスト名の設定 で設定した "web1.obenri.com" というホスト名が、自分自身に割り当てられたされたIPアドレス "192.168.100.11" を指し示すことを、

192.168.100.11 web1.obenri.com web1

と追記し、 構築中のLinuxサーバー 自身が、

web1.obenri.com → 192.168.100.11

及び、

web1 → 192.168.100.11

と自分自身で名前解決できるようにする必要があります。

以前のバージョンのCentOSでは、これに関する設定は自動的に "/etc/hosts" に記述されていたのですが、CentOS6.2では手作業で記述する必要があります。

また例えば 構築中のLinuxサーバー に別の ホスト名 "www.obenri.com" を追加設定し、DNSサーバーに頼らずに自分自身でこの "/etc/hosts" を使って名前解決を行いたい場合は、

"192.168.100.11 www.obenri.com www"

のように追加記述することになります。

ところで、 WAN 、すなわちインターネット空間では、普通このような名前解決の仕事は DNSサーバー が担うようにシステム化されています DNSサーバーによる名前解決のしくみ

だとすれば、この "/etc/hosts" というファイルの設定はなぜ必要なのでしょうか。名前解決の一切を ISP 指定のDNSサーバーに任せるわけにはいかないのでしょうか。

ここでもう一度、現在構築中のネットワーク構成を思い出してください ネットワークの計画

このネットワークは、 ルーター NAT + IPマスカレード 機能を使って、 WAN 空間と LAN 空間を切り分けた形になっています NAT+IPマスカレードの説明

というわけですから、WAN空間に設置されているISPのDNSサーバーが名前解決できるのは、あくまでWAN空間に ノード を持つルーターや ホスト であって、WAN空間から切り離されたLANの内部のホストに対しては、名前解決を行うことができないわけです。

従って、こういうネットワーク構成では、なんらかの方法でLAN内部の名前解決をしなけければならないことになります。

このLAN内部に設置するDNSサーバーについては、 LAN内に設置するDNSサーバーの構築 で構築の解説をします。

もちろん、LANの中で名前解決を行うためのDNSサーバーを設置するのも一つの選択肢ですが、LANに接続しているホストの台数が限られていれば、それぞれのホスト機に 「固定的な情報としての名前解決の対照表」 を持たせるほうが簡単です。

その対照表が "/etc/hosts" というわけです。

ちなみに、この設定ファイルのループバックアドレスに対する名前解決の設定は、こういう記述になっています。

2行目の "::1" で始まる行は IPv6 IPv6について に関する記述ですので説明は割愛します。
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4

これらはいうまでもなく ループバックアドレス に対するホスト名の記述です。

この "localhost" "web1" のように、 FQDN 形式ではないホスト名は、本来 UNIX OS が使ってきたもので、現在は WindowsOS MacintoshOS でも利用しますから、そういうホスト名を参照するアプリケーション動作のために必ず記述しておきましょう。

"localhost" "localhost.localdomain" というホスト名は、ループバックアドレスに対する「お約束のホスト名」です。 "localhost4" "localhost4.localdomain4" はIPv6と混在する環境で明示的にIPv4のループバックアドレスを指し示さなければならない場合に予約されているホスト名と解釈してください。

しかしながら自分自身のホスト名である "web1.obenri.com" 及び "web1" も、当然のことながら自分自身を表すループバックアドレス "127.0.0.1" を指し示していても問題はありませんから、特にCentOS5以前の解説書ではIPv4の部分は、

127.0.0.1 web1.obenri.com web1 localhost.localdomain localhost

と記述するように解説しているケースがあります。

ただ実用上、意図的に設定するホスト名については強いてループバックアドレスへの名前解決を行う必要はなく、

192.168.100.11 web1.obenri.com web1

という記述のみで充分です。

余分な設定が多いと、後から ドメイン名 サブドメイン を追加するときに書き換えなければならない部分が増えて設定ミスを犯しやすくなり、 アプリケーション によっては不都合が出る場合がありますので、ループバックの設定の部分は可能な限りデフォルトのままにしておくことをお勧めします。

設定ファイルの例

以上の設定を行った "/etc/hosts" の設定例を示します。

テキストファイルの内容が変更されていなければ、 Ctrl+x だけで終了できます。

設定が終わったら、 Ctrl + x y Enter で設定ファイルを保存し、 nano エディタを終了します。

NEC「得選街」
このページの先頭へ↑

5.名前解決の順序の設定(/etc/host.conf)

構築中のLinuxサーバー が、 名前解決 を行うために参照するシステムの優先順位を決定するための設定です。

"/etc/host.conf"

を編集します。

[tanaka@web1 ~]$ su -Enter
Password: "root"のパスワードを入力します。 Enter
[root@web1 ~]# nano /etc/host.confEnter


";" で始まる行はコメント行としてプログラムからは無視されますから、メモなどで適宜利用してください。

"multi on" は、 構築中のLinuxサーバー "/etc/hosts" を参照して名前解決を要求したとき、ホスト名が複数の IPアドレス を返すような場合に、全部の名前解決の結果を返すという設定です。

この設定がシステム動作に何らかの影響を与えることは稀ですのでそのままでも構いませんが、一般には "/etc/hosts" の記述順で一つのIPアドレスのみを返す振る舞いのほうがサーバー運用ではトラブルも少なく、発生した問題を解決しやすいといえます。

従ってここは設定行を削除するか、明示的に "multi off" と修正して、単独のIPアドレスを返すように設定することをお勧めします。

ところで、以前のバージョンのCentOSまでは、二行目に名前解決の仕組みの優先順の設定として、

"order 先に参照するシステム,後に参照するシステム"

というキーワードの記述がありましたが、CentOS6.2からはこの値を参照する標準パッケージがなくなり、後述する "/etc/nsswitch.conf" を参照する仕様になっているため、この記述は廃止されました。

しかしながら標準パッケージ以外のアプリケーションを利用する場合は、依然としてこの "/etc/host.conf" が参照される可能性もあるため、一応記述しておくことをお勧めします。

キーワード order とパラメータはスペースまたはTABで区切って、一行で記述します。

"参照するシステム" は、 "/etc/hosts" の記述を示す "hosts" と、 DNSサーバー の記述である "/etc/resolv.conf" を示す "bind" を、 "," で区切って優先する順番に記述します。

このホスト機の FQDN である "web1.obenri.com" が、 WAN 空間からアクセスを受けるときは、同じくWAN空間に設置されたDNSサーバーで名前解決されますから、

それから ルーター ポートフォワーディング 機能で "211.183.111.34→
192.168.100.11"
に変換され、このホスト機はアクセスを受けるわけです。

"web1.obenri.com→211.183.111.34"

のように、 グローバルIPアドレス を所在地情報としてアクセスを受けます。

しかし、このホスト機自身が 「自分自身の名前解決」 を行う場合には、WAN空間に設置されたDNSサーバーを参照するわけにはいきません。

なぜならこのホスト機は、 サブネット 内では "192.168.100.11" という プライベートIPアドレス を所在地情報として動作しますから、 "211.183.111.34" のようなグローバルIPアドレスを持ってこられても処理のしようがないからです。

つまり 構築中のLinuxサーバー は、

1.まず、自分自身をプライベートIPアドレスに名前解決するために、WAN空間のDNSサーバーを利用せずに"/etc/hosts"を使う。

2.次に自分自身以外(インターネット空間)の ホスト を名前解決するために、WAN空間のDNSサーバーを利用する。

という順序で名前解決を行う必要があるわけです。従って、 "/etc/host.conf" は、

multi off
order hosts,bind

と設定しておきます。

キーワードは他にもありますが、とりあえずは不要ですので説明は割愛します。

設定内容を確認したら、 Ctrl + x nano エディタを終了します。

書き換えを有効にしたいときは、、 Ctrl + x y Enter で設定ファイルを保存し、 nano エディタを終了します。

ただし先に説明したとおり、CentOS6で名前解決を必要とするアプリケーションの大部分は、この "/etc/host.conf" ではなく、以下に説明する "/etc/nsswitch.conf" を参照しますから、 "/etc/host.conf" を修正するだけではなく "/etc/nsswitch.conf" の設定も確認し、必要に応じて同じように設定しなければならない点に注意してください。

NEC「得選街」
このページの先頭へ↑

6.名前解決の順序の設定(/etc/nsswitch.conf)

構築中のLinuxサーバー が、 名前解決 を行うために参照するシステムの優先順位を決定するための設定です。

"/etc/nsswitch.conf"

を編集します。

[tanaka@web1 ~]$ su -Enter
Password: "root"のパスワードを入力します。 Enter
[root@web1 ~]# nano /etc/nsswitch.confEnter


このファイルには多くのキーワードがありますが、 名前解決 の順序に関する設定は、

38行目の "hosts:" で始まる一行です。

キーワードは他にもありますが、とりあえずは不要ですので説明は割愛します。

"#" で始まる行はコメント行としてプログラムからは無視されますから、メモなどで適宜利用してください。

この部分の設定の意味は上記5.と同じですから、ここでの説明は割愛します。

設定行の、

hosts:   files dns

は、 "/etc/hosts" の記述を示す "files" と、 DNSサーバー の記述である "/etc/resolv.conf" を示す "dns" を、スペースで区切って優先する順番に記述してあります。

つまり 構築中のLinuxサーバー は、

1.まず、自分自身をプライベートIPアドレスに名前解決するために、WAN空間のDNSサーバーを利用せずに"/etc/hosts"を使う。

2.次に自分自身以外(インターネット空間)の ホスト を名前解決するために、WAN空間のDNSサーバーを利用する。

という順序で名前解決を行いますからそのままの記述でOKということになります。

設定内容を確認したら、 Ctrl + x nano エディタを終了します。

NEC「得選街」
このページの先頭へ↑

ネットワーク設定の有効化と動作確認

以上の設定ファイルの書き換えを行ったら、変更された内容をシステムに反映させる必要があります。

一番はっきりした方法は、 reboot コマンド でシステムごと再起動してしまうことです。しかし、この方法はお勧めしません。

なぜなら再起動には少なくとも数十秒はかかりますから、設定に間違いがあって、何度も再起動していると結構イライラするからです。

というわけで、システムのネットワーク機能だけを再起動する方法をお勧めします。

具体的には、 "/etc/init.d/network" というネットワーク制御用 スクリプト ファイルを "restart" オプションで実行します。

[tanaka@web1 ~]$ su -Enter
Password: "root"のパスワードを入力します。 Enter
[root@web1 ~]# /etc/init.d/network restartEnter
.
.
.
中略(メッセージが表示されます)
.
.
.
[root@web1 ~]#

この方法であれば、ものの数秒で設定が反映されますから、試行錯誤でネットワーク設定を行う場合でもイライラすることはありません。

スクリプトが上のように正常に実行できたら、動作確認をしましょう。

もちろん、 X-Windowからネットワークを確認する方法 の方法で確認しても構いませんが、単純なネットワークの動作確認であれば ping コマンドで充分です。任意の ユーザーアカウント ログイン して、 プロンプト から、次の IPアドレス ping を実行してください。

1."127.0.0.1" ... ループバックアドレス の確認

2."192.168.100.11" ...自ホストのNICへの接続確認

3."192.168.100.1" ...ルーターへの接続確認

ISPによってはDNSサーバーにping応答しないような設定がなされている場合がありますが、この場合は当然応答パケットは返ってきません。
こういう場合は 9. のチェックで名前解決とWAN空間との接続を同時にチェックしてください。

4." ISP DNSサーバー " ... WAN 空間への接続確認

"/etc/sysconfig/network-scripts/ifcfg-eth0" "/etc/sysconfig/network" が正しく記述されていれば、どれも問題なく パケット が返ってくるはずです。返ってこないときは、これらの設定ファイルの内容をもう一度見直してください。

更に、次の ホスト名 ping を実行してください。

5."localhost.localdomain" ...ループバックアドレスの名前解決の確認

6."localhost" ...ループバックアドレスの名前解決の確認

どちらも "127.0.0.1" からパケットが返ってくることを確認してください。 "unknown host [ホスト名]" と表示されてコマンドが実行されないときは、 "/etc/host.conf" の設定か、 "/etc/hosts" のループバックアドレスの記述に間違いがあります。

7."web1.obenri.com" ...自ホストの名前解決の確認

8."web1" ...自ホストの名前解決の確認

どちらも "192.168.100.11" からパケットが返ってくることを確認してください。 "unknown host [ホスト名]" と表示されてコマンドが実行されないときは、 "/etc/host.conf" の設定か、 "/etc/hosts" "192.168.100.11" の部分の記述に間違いがあります。

9."www.yahoo.co.jp" ...WAN空間での名前解決の確認

"/etc/resolv.conf" に記述されている DNSサーバー のIPアドレスの記述に誤りがあるか、そのDNSサーバーが動作していません。記述に誤りがない場合は、 ISP の都合でDNSサーバーが変更になっているかもしれませんので、ISPに確認してみてください。

以上の確認ができたら、ネットワークの設定は完了です。

NEC「得選街」
このサイトに対するご意見、ご要望、苦情、泣き言、献上品、資金援助などがございましたら こちら からお寄せください(お返事できなかったらごめんなさい)。もちろん リンクフリー です。趣味や勉強のためでしたら、引用、転用、コピー、朗読、その他OKです。このサイトへのリンクについては こちら をご覧ください。また、本サイトの更新情報をメールで知らせてほしい方は ここ からご登録ください。
Powered by Apache
”Linux”は、Linus Torvalds 氏の各国における登録商標です。”Red Hat”及びRed Hatのロゴおよび Red Hat をベースとしたすべての商標とロゴは、各国におけるRed Hat, Inc. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。
www.centos.org - The Community ENTerprise Operating System