CentOSサーバに固定のプライベートIPを設定したら、外部のネットワークに接続できなくなるという現象に直面しました。
復旧に向けたチェック項目をメモしておきます。
まず、第一に、IPアドレスを静的に割り当てるには、以下のファイルをマニュアル設定する必要がある。
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network
/etc/hosts
/etc/resolv.conf
○/etc/conf.confについて
DHCPで起動したときは、以下のような内容になっています。
# Generated by NetworkManager
nameserver yyy.yyy.yy.1
静的にIPを設定するときも、このときの値を使用すればよいです。(今回はルータのアドレス)
だから、たった一行だけ
nameserver yyy.yyy.yy.1
と書いておしまい。
○/etc/hostsについて
今現段階の認識では、自分(サーバーマシン)が他者(LAN内のクライアントPC)をどうやって認識するかについての設定ファイルだと思ってます。
ですので、これを設定すれば、前項で書いたように、他のクライアントにドメインネームやホストネームでリモートアクセスできるようになります。でも、今回はあまり関係が深くはないのではと思っています。
○/etc/sysconfig/network-scripts/ifcfg-eth0について
以下の項目が大切
DEVICE=eth0
BOOTPROTO=static
BROADCAST=yyy.yyy.yy.255
HWADDR=xx:xx:xx:xx:xx:xx
IPADDR=192.168.11.200
IPV6INIT=no
IPV6_AUTOCONF=no
NETMASK=255.255.255.0
NETWORK=yyy.yyy.yy.0
ONBOOT=yes
TYPE=Ethernet
○/etc/sysconfig/networkについて
このファイルのゲートウェイ設定はかなり大事
以下の3項目を書いておく
NETWORKING=yes
HOSTNAME=localhost.localdomain
GATEWAY=yyy.yyy.yy.1
以上です。
各々の設定を変更する度に、
#/etc/rc.d/init.d/network restart
でネットワークを再構築すると変更内容が反映させる。
最後に、ゲートウェイの設定がうまくいっているかどうかを確認するために、以下のコマンドを実行します。
# /sbin/route -n
Destination Gateway Genmask Flags Metric Ref Use Iface
yyy.yyy.yy.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
0.0.0.0 yyy.yyy.yy.1 0.0.0.0 UG 0 0 0 eth0
これの三行目が表示されていれば設定は終了です。
実際に外部のサーバーと通信ができるかどうかテストしてみます。
# ping google.com
でいけます。
network is unrechable
とエラーが出ずに、きちんと交信が続くならば、設定成功です。