対象サーバについて
製品名 | Hitachi PC8DG2-P108P1C10 |
OS(kernel ver) | Debian lenny(2.6.26-2-686) |
CPU | Intel(R) Celeron(R) CPU 2.00GHz |
メモリ | 512M(256M DDR PC2100 x 2枚) |
ストレージ | Seagate 160GB |
はじめに
ネットワーク周りのコマンドをよく忘れてしまうため一度まとめておきたいと思います。
Link状態の確認方法
・正常時
close:~# ifconfig eth0 eth0 Link encap:イーサネット ハードウェアアドレス 00:00:e2:88:3d:13 inetアドレス:192.168.0.3 ブロードキャスト:192.168.0.255 マスク:255.255.255.0 inet6アドレス: fe80::200:e2ff:fe88:3d13/64 範囲:リンク UP BROADCAST RUNNING MULTICAST MTU:1500 メトリック:1 RXパケット:200 エラー:0 損失:0 オーバラン:0 フレーム:0 TXパケット:165 エラー:0 損失:0 オーバラン:0 キャリア:0 衝突(Collisions):0 TXキュー長:1000 RXバイト:14631 (14.2 KiB) TXバイト:11566 (11.2 KiB) 割り込み:18 ベースアドレス:0xe800
・ケーブル断時
close:~# ifconfig eth0 eth0 Link encap:イーサネット ハードウェアアドレス 00:00:e2:88:3d:13 inetアドレス:192.168.0.3 ブロードキャスト:192.168.0.255 マスク:255.255.255.0 inet6アドレス: fe80::200:e2ff:fe88:3d13/64 範囲:リンク UP BROADCAST RUNNING MULTICAST MTU:1500 メトリック:1 RXパケット:200 エラー:0 損失:0 オーバラン:0 フレーム:0 TXパケット:165 エラー:0 損失:0 オーバラン:0 キャリア:0 衝突(Collisions):0 TXキュー長:1000 RXバイト:14631 (14.2 KiB) TXバイト:11566 (11.2 KiB) 割り込み:18 ベースアドレス:0xe800
ifconfigだとリンク状態が確認できません。
そこで、リンク状態が正しく認識できるよう、ethtoolを導入します。
close:~# aptitude install ethtool
・正常時
close:~# ethtool eth0 Settings for eth0: Supported ports: [ TP MII ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full Advertised auto-negotiation: Yes Speed: 100Mb/s Duplex: Full Port: MII PHYAD: 32 Transceiver: internal Auto-negotiation: on Supports Wake-on: pumbg Wake-on: d Current message level: 0x00000007 (7) Link detected: yes
・異常時
close:~# ethtool eth0 Settings for eth0: Supported ports: [ TP MII ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full Advertised auto-negotiation: Yes Speed: 10Mb/s Duplex: Half Port: MII PHYAD: 32 Transceiver: internal Auto-negotiation: on Supports Wake-on: pumbg Wake-on: d Current message level: 0x00000007 (7) Link detected: no
Link detectedの箇所で確認できます。
ちなみにIPコマンドが入っていれば、ip link show コマンドでも確認できます。
・正常時
close:~# ip link show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:00:e2:88:3d:13 brd ff:ff:ff:ff:ff:ff 3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000 link/ether 00:10:60:dd:99:5c brd ff:ff:ff:ff:ff:ff 4: eth2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000 link/ether 00:10:60:db:04:24 brd ff:ff:ff:ff:ff:ff
・異常時
close:~# ip link show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000 link/ether 00:00:e2:88:3d:13 brd ff:ff:ff:ff:ff:ff 3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000 link/ether 00:10:60:dd:99:5c brd ff:ff:ff:ff:ff:ff 4: eth2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000 link/ether 00:10:60:db:04:24 brd ff:ff:ff:ff:ff:ff
IFエラー確認
close:~# ip -s link show eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:00:e2:88:3d:13 brd ff:ff:ff:ff:ff:ff RX: bytes packets errors dropped overrun mcast 30571 372 0 0 0 0 TX: bytes packets errors dropped carrier collsns 21374 288 0 0 0 0
オプションの-sをもう一つ付けるとより詳細に確認できます。
close:~# ip -s -s link show eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:00:e2:88:3d:13 brd ff:ff:ff:ff:ff:ff RX: bytes packets errors dropped overrun mcast 30991 379 0 0 0 0 RX errors: length crc frame fifo missed 0 0 0 0 0 TX: bytes packets errors dropped carrier collsns 22063 292 0 0 0 0 TX errors: aborted fifo window heartbeat 0 0 0 0
リモートでのIF閉塞・開放
ip link set eth0 down/up
→リモートでIF閉塞・開放する場合に使用
close:~# ip link set eth0 down close:~# ip link show eth0 2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000 link/ether 00:00:e2:88:3d:13 brd ff:ff:ff:ff:ff:ff close:~# ip link set eth0 up close:~# ip link show eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:00:e2:88:3d:13 brd ff:ff:ff:ff:ff:ff
アドレスの追加
・事前状態
close:~# ip addr show eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:00:e2:88:3d:13 brd ff:ff:ff:ff:ff:ff inet 192.168.0.3/24 brd 192.168.0.255 scope global eth0 inet6 fe80::200:e2ff:fe88:3d13/64 scope link valid_lft forever preferred_lft forever
・アドレス追加
close:~# ip addr add local 10.0.0.1/24 dev eth0 label eth0:0
・事後確認
close:~# ip addr show eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:00:e2:88:3d:13 brd ff:ff:ff:ff:ff:ff inet 192.168.0.3/24 brd 192.168.0.255 scope global eth0 inet 10.0.0.1/24 scope global eth0:0 inet6 fe80::200:e2ff:fe88:3d13/64 scope link valid_lft forever preferred_lft forever
・試験
close:~# ping 10.0.0.2 PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data. 64 bytes from 10.0.0.2: icmp_seq=1 ttl=64 time=0.175 ms 64 bytes from 10.0.0.2: icmp_seq=2 ttl=64 time=0.150 ms 64 bytes from 10.0.0.2: icmp_seq=3 ttl=64 time=0.145 ms
コネクテッドには到達します。
close:~# ping www.yahoo.co.jp ping: unknown host www.yahoo.co.jp
→どちらをソースにするか分からなくなるためデフォルトゲートウェイから先には到達しません。
・アドレス削除
close:~# ip addr del local 10.0.0.1/24 dev eth0
ARPテーブル確認
・確認コマンドその1
close:~# arp アドレス HWタイプ HWアドレス フラグ マスク インタフェース 192.168.0.100 ether 00:0f:1f:e9:8a:52 C eth0 10.0.0.2 ether 00:0f:1f:e9:8a:52 C eth0 192.168.0.7 ether b8:ac:6f:aa:e8:b7 C eth0
・確認コマンドその2
close:~# ip neigh show 192.168.0.100 dev eth0 lladdr 00:0f:1f:e9:8a:52 REACHABLE 10.0.0.2 dev eth0 lladdr 00:0f:1f:e9:8a:52 STALE 192.168.0.7 dev eth0 lladdr b8:ac:6f:aa:e8:b7 REACHABLE
→arpコマンドでは全て同じ状態として扱われていますが、ipコマンドではSTALE、REACHABLEといったより詳細な状態を管理しています。
具体的には以下のARP状態があります。
imcomplete | アドレス解決の処理中です。 |
reachable | 有効で接続可能です。 |
stale | 有効ですが、相手の接続性は疑わしい状態です。 |
delay | 有効ですが、相手の接続性は疑わしいため確認中です。 |
probe | 無効で、相手の接続性が疑わしいため確認中です。 |
failed | アドレス解決できませんでした(無効) |
noarp | 有効であり、今後、相手の検証を行うこともありません。 |
permanet | 管理者が削除しない限り有効です。 |
ルーティング確認・追加・削除
・確認
close:~# ip route show 10.0.0.0/24 dev eth0 proto kernel scope link src 10.0.0.1 192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.3 default via 192.168.0.1 dev eth0
・追加
close:~# ip route add 122.1.1.1/32 nexthop via 192.168.0.1 dev eth0 close:~# ip route show 122.1.1.1 via 192.168.0.1 dev eth0 10.0.0.0/24 dev eth0 proto kernel scope link src 10.0.0.1 192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.3 default via 192.168.0.1 dev eth0
・削除
close:~# ip route del 122.1.1.1/32 nexthop via 192.168.0.1 dev eth0 close:~# ip route show 10.0.0.0/24 dev eth0 proto kernel scope link src 10.0.0.1 192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.3 default via 192.168.0.1 dev eth0
- 参考文献
-
Linuxで作るアドバンストシステム構築ガイドのp.102~122