やっぱり Sun がスキ! : Weblog やっぱり Sun がスキ!

やっぱり Sun がスキ!

http://blogs.sun.com/yappri/date/20070725 2007年 7月 25日 水曜日

Solaris が認識しているネットワーク I/F 名を全部知る方法

Solaris のネットワークインタフェースを設定する ifconfig コマンドの引数で -a や plumb オプションは有名ですが、-a と plumb オプション を続けて使用するコマンド "ifconfig -a plumb" って使った事ありますか?
今回は、 ifconfig コマンドの便利なオプション "-a plumb" を紹介します。

Sun のネットワークドライバは、e1000g、ipge、bge、nxge、nge、etc... といろいろ 存在している為、現在使用しているサーバが認識しているネットワーク I/F 名全部を知りたい 時は /etc/path_to_instの中身を調べたりと結構面倒です。
そんな時は、下記コマンドを一度たたいてみましょう。

# ifconfig -a plumb
実際に実機(Sun Fire X4100 M2)を使ってこのコマンドを試してみました。
下記の X4100 M2 には、現在 nge0 が設定されておりますが、X4100 M2 は、標準で4つ ネットワーク I/F がありますので、残りの名前を調べてみます。

・現在の設定状況確認
# ifconfig -a

lo0: flags=2001000849 mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
nge0: flags=1000843 mtu 1500 index 2
        inet 192.168.0.1 netmask ffffff00 broadcast 10.14.8.255
        ether 0:14:4f:7d:20:9c 

・ここで ifconfig -a plumb を入力
# ifconfig -a plumb
ifconfig: SIOCSLIFNAME for ip: nge0: already exists
・ネットワークI/F 名の確認
# ifconfig -a
lo0: flags=2001000849 mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
nge0: flags=1000843 mtu 1500 index 2
        inet 192.168.0.1 netmask ffffff00 broadcast 10.14.8.255
        ether 0:14:4f:7d:20:9c 
nge1: flags=1000842 mtu 1500 index 4
        inet 0.0.0.0 netmask 0 
        ether 0:14:4f:7d:20:9d 
e1000g0: flags=1000802 mtu 1500 index 5
        inet 0.0.0.0 netmask 0 
        ether 0:14:4f:7d:20:9e 
e1000g1: flags=1000802 mtu 1500 index 6
        inet 0.0.0.0 netmask 0 
        ether 0:14:4f:7d:20:9f 

このように、IP Addressを設定していない残りのネットワーク I/F が現れました。
ちなみに、X4100 M2 は、 nge と e1000g の2種類のドライバを使用しています。

(まとめ)
"ifconfig -a plumb" コマンドは、実際にネットワーク I/F がサーバで認識されているか どうかの確認や、 nxge までは理解しているが、カードを何回も抜き差して、nxge3 だか nxge6 だ か番号が分からなくなってしまった時にとても便利です。