プログラマ 福重 伸太朗 〜基本へ帰ろう〜 このページをアンテナに追加 RSSフィード

2008-05-22

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 ~]#

大丈夫っぽい。


[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 - ルーティングテーブルの表示/設定を行う


  • netstat
[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 でLANDNSが設定されているからかな?


nslookup - DNSサーバに名前解決の問い合わせを行う

> nslookupコマンドは、DNSクライアントの名前解決機能を手動実行するためのコマンドだ。


  • traceroute
[root@localhost ~]# traceroute google.com
traceroute to google.com (64.233.167.99), 30 hops max, 40 byte packets
connect: ネットワークに届きません

デフォルトゲートウェイが設定されてないからかな・・・。とりあえず今は状況確認なので次。

参考

traceroute - ネットワークの経路を調査する


  • 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 ~]#

IPDHCPからの自動取得ではなく固定を使っている。

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

省略可。しかし、

こちらに、

Red Hat Enterprise Linux

>GATEWAYDEV=<value>、ここで、 <value> は eth0 などのゲートウェイデバイスです。

また、こちらに、

|| Not Found ||

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」を設定しないとデフォルトゲートウェイ再起動時に反映しなかったのですね。

toyoaketoyoake 2009/09/02 15:45 めちゃくちゃ参考になりましたw
書き方と良い素晴らしかったですwww
ありがとうございましたm(__)m

japanrock_pgjapanrock_pg 2009/09/02 23:15 id:toyoakeさん
お役に立てて光栄です!

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証