Linux(CentOS5)のネットワーク設定メモ
What
Linux(CentOS5)のネットワーク設定をちゃんとしたい。
今回は、LAN内で固定IPを持つサーバーを見てみます。
実験する環境
[root@localhost ~]# uname -a Linux localhost.localdomain 2.6.18-8.1.1.el5xen #1 SMP Mon Apr 9 11:46:46 EDT 2007 i686 i686 i386 GNU/Linux [root@localhost ~]# cat /etc/redhat-release CentOS release 5 (Final)
現状把握
CentOS5では、インストール時にほとんど設定されている。
[root@localhost ~]# ping -c 2 localhost PING localhost.localdomain (127.0.0.1) 56(84) bytes of data. 64 bytes from localhost.localdomain (127.0.0.1): icmp_seq=1 ttl=64 time=0.109 ms 64 bytes from localhost.localdomain (127.0.0.1): icmp_seq=2 ttl=64 time=0.063 ms --- localhost.localdomain ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 999ms rtt min/avg/max/mdev = 0.063/0.086/0.109/0.023 ms [root@localhost ~]#
大丈夫っぽい。
- 外にping
[root@localhost ~]# ping google.com connect: Network is unreachable
なんかいろいろだめっぽい・・・orz
デフォルトゲートウェイの設定か?
- route
[root@localhost ~]# route -v Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 169.254.0.0 * 255.255.0.0 U 0 0 0 eth0 10.0.0.0 * 255.0.0.0 U 0 0 0 eth0
ん?デフォルトゲートウェイが設定されていない?
route 〜ルーティングテーブルの表示/設定を行う:ネットワークコマンド使い方 - @IT
[root@localhost ~]# netstat -r Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 169.254.0.0 * 255.255.0.0 U 0 0 0 eth0 10.0.0.0 * 255.0.0.0 U 0 0 0 eth0
- nslookup
[root@localhost ~]# nslookup google.com Server: 10.20.138.1 Address: 10.20.138.1#53 Non-authoritative answer: Name: google.com Address: 64.233.167.99 Name: google.com Address: 64.233.187.99 Name: google.com Address: 72.14.207.99
あれ?nslookupだとIPとれるぞ?
/etc/resolv.conf でLAN内DNSが設定されているからかな?
nslookup 〜DNSサーバに名前解決の問い合わせを行う:ネットワークコマンド使い方 - @IT
> nslookupコマンドは、DNSクライアントの名前解決機能を手動実行するためのコマンドだ。
- traceroute
[root@localhost ~]# traceroute google.com traceroute to google.com (64.233.167.99), 30 hops max, 40 byte packets connect: ネットワークに届きません
デフォルトゲートウェイが設定されてないからかな・・・。とりあえず今は状況確認なので次。
参考
traceroute(tracert) 〜ネットワークの経路を調査する:ネットワークコマンドの使い方 - @IT
- ifconfig
[root@localhost ~]# ifconfig -a eth0 Link encap:Ethernet HWaddr 00:04:23:64:97:92 inet addr:10.20.138.13 Bcast:10.20.138.255 Mask:255.0.0.0 inet6 addr: fe80::204:23ff:fe64:9792/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:2688473 errors:0 dropped:0 overruns:0 frame:0 TX packets:175613 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:421431826 (401.9 MiB) TX bytes:246706281 (235.2 MiB) eth1 Link encap:Ethernet HWaddr 00:04:23:64:97:93 BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) Base address:0xdc80 Memory:fcf80000-fcfa0000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:1693 errors:0 dropped:0 overruns:0 frame:0 TX packets:1693 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:153985 (150.3 KiB) TX bytes:153985 (150.3 KiB) peth0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link UP BROADCAST RUNNING NOARP MTU:1500 Metric:1 RX packets:2689492 errors:0 dropped:0 overruns:0 frame:0 TX packets:244190 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:432272021 (412.2 MiB) TX bytes:251764952 (240.1 MiB) Base address:0xdcc0 Memory:fcfa0000-fcfc0000 sit0 Link encap:IPv6-in-IPv4 NOARP MTU:1480 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) veth1 Link encap:Ethernet HWaddr 00:00:00:00:00:00 BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) veth2 Link encap:Ethernet HWaddr 00:00:00:00:00:00 BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) veth3 Link encap:Ethernet HWaddr 00:00:00:00:00:00 BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) vif0.0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link UP BROADCAST RUNNING NOARP MTU:1500 Metric:1 RX packets:175676 errors:0 dropped:0 overruns:0 frame:0 TX packets:2688504 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:246715663 (235.2 MiB) TX bytes:421433732 (401.9 MiB) vif0.1 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) vif0.2 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) vif0.3 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) xenbr0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF UP BROADCAST RUNNING NOARP MTU:1500 Metric:1 RX packets:2493252 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:358672815 (342.0 MiB) TX bytes:0 (0.0 b)
- hostname
[root@localhost ~]# hostname localhost.localdomain
ネットワーク系の設定ファイルの現状把握、確認
Googles様に聴いたら、下のページを発見。
http://www.a-yu.com/
http://www.ysd.bne.jp/linux/network.html
http://park15.wakwak.com/~unixlife/linux/net-ip.html
よさげです。読んだところ以下のファイルが重要なようです。
一つ一つ見ていきましょう。
デバイス(NIC)ごとの設定(/etc/sysconfig/network-scripts/ifcfg-eth0)
デバイスはeth0を使っているので、確認する。
- 修正前
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 # Intel Corporation 82546EB Gigabit Ethernet Controller (Copper) DEVICE=eth0 BOOTPROTO=static #HWADDR=00:04:23:64:97:92 BROADCAST=10.20.138.255 IPADDR=10.20.138.13 NETMASK=255.0.0.0 NETWORK=10.20.138.0 GATEWAY=10.20.138.254 ONBOOT=yes TYPE=Ethernet [root@localhost ~]#
IPはDHCPからの自動取得ではなく固定を使っている。
HWADDRがコメントアウトされている。HWADDRは"HardWare address"、つまりMACアドレスということだ。
たしかに、ifconfigで見た時に、eth0のところに同じようにかいてある。
コメントアウトしてある意味も見当たらないので、コメントアウトを外した。
- 修正後のファイル
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 # Intel Corporation 82546EB Gigabit Ethernet Controller (Copper) DEVICE=eth0 BOOTPROTO=static HWADDR=00:04:23:64:97:92 BROADCAST=10.20.138.255 IPADDR=10.20.138.13 NETMASK=255.0.0.0 NETWORK=10.20.138.0 GATEWAY=10.20.138.254 ONBOOT=yes TYPE=Ethernet [root@localhost ~]#
エディタで修正後再起動。
しかし、デフォルトゲートウェイが設定が反映していない。
LAN内のデフォルトゲートウェイは 10.20.138.254 は間違っていない。
[root@localhost ~]# route -v Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 169.254.0.0 * 255.255.0.0 U 0 0 0 eth0 10.0.0.0 * 255.0.0.0 U 0 0 0 eth0
ここに表示されなくても、/etc/sysconfig/network-scripts/ifcfg-eth0 に書いてあればおkなのか?
確認してみよう。
[root@localhost ~]# ping 64.233.167.99 connect: Network is unreachable [root@localhost ~]#
これって、外にいけてないってことですよね。。。
もし、LAN内に設置してあるDNSを利用して、IPを取得出来ても、アクセスできないってことですよね。。。違う?
デフォルトゲートウェイを設定する
[root@localhost ~]# route add default gw 10.20.138.254 [root@localhost ~]#
テストしてみる。
[root@localhost ~]# ping 64.233.167.99 PING 64.233.167.99 (64.233.167.99) 56(84) bytes of data. 64 bytes from 64.233.167.99: icmp_seq=1 ttl=241 time=137 ms 64 bytes from 64.233.167.99: icmp_seq=2 ttl=241 time=138 ms --- 64.233.167.99 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 999ms rtt min/avg/max/mdev = 137.785/138.359/138.933/0.574 ms [root@localhost ~]#
帰ってくるようになった。
[root@localhost ~]# route -v Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 169.254.0.0 * 255.255.0.0 U 0 0 0 eth0 10.0.0.0 * 255.0.0.0 U 0 0 0 eth0 default 10.20.138.254 0.0.0.0 UG 0 0 0 eth0 [root@localhost ~]#
route にも表示されている。
しかし、これは一時的な設定だから、サーバー再起動後にまたやらないといけない。
ヒントは、 /etc/sysconfig/network にありそうだ。
ネットワーク全体の設定(/etc/sysconfig/network)
- 修正前
[root@localhost ~]# cat /etc/sysconfig/network NETWORKING=yes NETWORKING_IPV6=yes HOSTNAME=localhost.localdomain GATEWAY=10.20.138.254
現在設定されていないのが、 「GATEWAYDEV」 と「DOMAINNAME」だが、設定する必要はあるのか?
- DOMAINNAME
省略可。LAN内のサーバーなのでドメインはつけていないのでない。書かないことにした。
- GATEWAYDEV
省略可。しかし、
こちらに、
Product Documentation for Red Hat Enterprise Linux 8.0 Beta - Red Hat Customer Portal
>GATEWAYDEV=
また、こちらに、
http://park15.wakwak.com/~unixlife/linux/net-gateway.html
> GATEWAYを有効にするインターフェースを指定する場合は、以下のように記入します。
とかいてあるので、GATEWAYDEV=eth0 を追記することにした。
- 修正後
[root@localhost ~]# cat /etc/sysconfig/network NETWORKING=yes NETWORKING_IPV6=yes HOSTNAME=localhost.localdomain GATEWAY=10.20.138.254 GATEWAYDEV=eth0
- 再起動
[root@localhost ~]# /etc/init.d/network restart インターフェース eth0 を終了中: RTNETLINK answers: Network is unreachable [ OK ] ループバックインターフェースを終了中 [ OK ] ループバックインターフェイスを呼び込み中 [ OK ] インターフェース eth0 を活性化中: [ OK ] [root@localhost ~]#
特に問題なし。
これで、サーバー再起動後もデフォルトゲートウェイが設定されるはず。
こちらに、
ぷらっとホーム - サポート - 技術情報 - OpenBlockS - ネットワークの設定
>上位のDHCPサーバによりアドレスを割り当てられている場合。 「GATEWAY」と「GATEWAYDEV」はDHCPにより設定されるので空白にして下さい。
つまり、今回の例はDHCPではなく、固定のIPを持っていたため、「GATEWAY」と「GATEWAYDEV」を設定しないとデフォルトゲートウェイが再起動時に反映しなかったのですね。