Linuxネットワークコマンド

11月 16, 2009

Linux LPIC編。(第5章 ネットワーク)
ネットワークの章はネットワークデバイス、あたりから入る。
1番目のイーサネットインターフェース名はeth0で、2番目はeth1とか。
カーネルが認識しているネットワークデバイスはlspci、dmesgで確認できる、とか。
まぁこの辺りは軽く流すとして・・・

では、Linuxで利用するネットワーク系のコマンドから。といってもtcpdumpやnc以外は
基本的なコマンドでレベル1にも登場しているので、ここで詳細を書くまでもない気も
するが、復習もかねて。
ちなみに-nオプションで名前解決を行わない、というのはそれぞれのコマンドで共通
しているので、個別には書かないことにする。

ifconfgコマンドはネットワークインターフェースを設定したり確認したりする。
それにしてもifconfigでインターフェースを設定しても再起動すると元に戻ってしまうので、
結局は設定ファイルに記述することになる。
ifconfig eth0 up/downなんかはNICフェールオーバーのテスト時に利用できる。

それからネットワークインターフェースのエイリアス名を設定するときに、「eth0:1」
みたいに数値で指定することが多いと思われるが、文字列でもいいそうだ。

# ifconfig eth0:name1 192.168.55.20 netmask 255.255.255.128 up


arpコマンドはarpテーブルを操作する。

オプション
-a 指定したホストまたはすべてのエントリを表示
-f ホスト名MACアドレスの対応をファイルから詠み込む(デフォルトは/etc/ethers)
-d 指定したホストのエントリを削除
-i ネットワークインターフェースを指定
-s ホスト名とMACアドレスの対応を指定して追加

ネットワーク接続の監視にはarpwatchというツールが利用できるそうだ。

traceroute , tracepathは指定したホストへのパケット経路を表示する。
pingでもオプションの指定によってはできるらしい。

tcpdumpコマンドは指定したネットワークインターフェースに流れるパケット情報を
キャプチャする。出力結果の見方に要注意?

書式
tcpdump [オプション] [条件式]

※条件式では、portでポート番号を、protoでプロトコルを指定する。
条件式を省いた場合、ネットワーク上のすべてのパケットをダンプする。

オプション
-i 監視するネットワークインターフェースを指定
-s パケットから取り出すバイト数を指定する
-X 16進数とASCII文字列で表示
-N ホストのドメイン名を表示しない
-l 標準出力をバッファリングする
-t 時刻を表示しない
-v 詳細出力


HTTP通信の様子をキャプチャするなら以下例のように。
ポート番号の代わりにプロトコルを指定してもよい。

# tcpdump -nli eth0 port 80


tcpdumpはもっと沢山のオプションや条件式があり、複雑なフィルタリングに対応可。
manなど見るとガッツリいろいろ書いてあるけど、ここでは省略します。

パケットキャプチャのGUI版として、Wiresharkの名前は覚えておこう。
WiresharkはEtherealの主要な開発者が開発を行っているとのこと。
ほほぅ、時代は何気に移り変わっているのだな・・・

次にnetstatコマンドのポイント。
以下3つのコマンドは同じ働きで、ルーティングテーブルを表示する。

netstat -r
route
ip route show


最後の、”ip route show”は出力の表示がわかりにくいかも。。

netstatオプション
-a すべてのソケットを表示
-c 1秒ごとにリアルタイム表示
-i ネットワークインターフェースの状態を表示
-l 接続待ち状態にあるソケットのみ表示
-n アドレスやポートを数値で表示
-p PIDとプロセスを表示
-r カーネルのルーティングテーブルを表示


ncコマンドはtelnetと同じようにホストのポートに接続できる。また、-vzオプションで
ポートスキャンを実行できる。

指定したホストのポートに接続
# nc [ホスト名/IPアドレス] [ポート番号]

ポートスキャンを実施
# nc -vz [ホスト名/IPアドレス] [スキャンする範囲]
例:1-1000


開いているポートの確認にはlsofコマンドも利用できるが、lsofには別の使い方も。
「lsof -i:ポート番号で、そのポートが使用しているプロセスを特定できる。
(netstat -apやfuserでも可)

最後に、routeコマンドを使ったルーティングの設定。
(レベル1でもやったけどね)

書式がちょっと、くせ者かも。ネットワークアドレスを指定する際には”-net”とハイフンが
必要で、netmask、gwはいらない。hostも”-host”と、ハイフンがいる。
以下はaddでテーブルに追加しているが、削除ならdel。


# route add -net 192.168.100.0 netmask 255.255.255.0 gw 172.16.0.1


オプション
-F カーネルのルーティングテーブルを表示
-C カーネルのルーティングキャッシュを表示


ルーティングテーブルの項目の見方はさすがに省略。。しようと思ったが、気になるところだけ。

宛先のネットマスクを示すGenmaskが、255.255.255.255だったらホスト、0.0.0.0.は
デフォルトゲートウェイを表す。Flagsは経路の状態を表し、Uは経路が有効。!だと無効で、
Hは宛先はホスト、となる。

次回はネットワーク設定ファイル全般について。

出典
Linux教科書LPICレベル2(翔泳社)


Linux記事一覧はこちらをどうぞ
↓ ↓ ↓
Linux-index


Categories: LPIC