3流プログラマのメモ書き

元開発職→社内SE→派遣で営業支援の三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。(jehupc.exblog.jpから移転中)

Solarisでのネゴシエーション確認

(ネットワーク)オートネゴシエーションは信用できない?ネゴシエーションの話をしましたが、今回は Solarisネゴシエーションの設定がどうなっているかの確認方法です。

これらのネットワークインターフェイスの確認や設定は Solraris では NDD コマンドを使うようですね。( ndd /dev/hme ? とすると使用できるパラメタの一覧が分かります。)

まず自身のインタフェース状況(速度やモード)は下記コマンドで分かります。

bash-3.00# ndd /dev/nge0 link_status

1 //0:切断 1:接続

bash-3.00# ndd /dev/nge0 link_speed

100 //スピード

bash-3.00# ndd /dev/bge link_duplex

2 //ドライババージョン < 0.37 0:半二重 1:全二重

//ドライババージョン >= 0.37 1:半二重 2:全二重

(ただし上記はBCMのNICの場合。他のベンダー(今回はngeということでnVidiaですが)のNICは意味が異なるかも)

//↓ドライババージョンの確認方法

bash-3.00# modinfo | grep bge

もしくは、dladm で搭載してるNIC一括で調べることもできるようです。

bash-3.00# dladm show-dev

nge0 リンク: up 速度: 100 Mbps デュプレックス: full

nge1 リンク: up 速度: 100 Mbps デュプレックス: full

bge0 リンク: unknown 速度: 0 Mbps デュプレックス: unknown

bge1 リンク: unknown 速度: 0 Mbps デュプレックス: unknown

自機のオートネゴシエーションが有効かどうかは下記コマンドで分かります。

ndd /dev/nge0 adv_autoneg_cap

1 //0:無効 1:有効

そして、AutoNegotiationモードの場合には,下記の1になっている項目の中からネゴシエーションを行うようですね。

ndd /dev/nge0 adv_1000fdx_cap //1G全二重

1 //0:無効 1:有効

ndd /dev/nge0 adv_1000hdx_cap //1G半二重

0

ndd /dev/nge0 adv_100fdx_cap

1

ndd /dev/nge0 adv_100T4_cap

0

ndd /dev/nge0 adv_100hdx_cap

1

ndd /dev/nge0 adv_10fdx_cap

1

ndd /dev/nge0 adv_10hdx_cap

1

さらにパラメータに lp_xxxxx とすると、リンク先(通常はスイッチ)のモードもわかるようです。(ただし正確とは言えないみたいなので、実際はスイッチを直接見た方がいいかもしれません。)

ndd /dev/nge0 lp_autoneg_cap //リンク先オートネゴシエーション

1

ndd /dev/nge0 adv_1000fdx_cap

0

ndd /dev/nge0 adv_1000hdx_cap

0

ndd /dev/nge0 lp_100fdx_cap

1

ndd /dev/nge0 lp_100hdx_cap

1

....

試してないので、確実とは言えませんが、ネットの情報見る限りモードを設定したいときは下記のような書式にすれば可能なようです。

ndd -set /dev/nge0 パラメタ

例えば1G/Fullだけ有効にし、オートネゴシエーションを無効にする時はこうします。

ndd -set /dev/nge0 adv_1000fdx_cap 1

ndd -set /dev/nge0 adv_1000hdx_cap 0

ndd -set /dev/nge0 adv_100fdx_cap 0

ndd -set /dev/nge0 adv_100hdx_cap 0

ndd -set /dev/nge0 adv_100T4_cap 0

ndd -set /dev/nge0 adv_10fdx_cap 0

ndd -set /dev/nge0 adv_10hdx_cap 0

ndd -set /dev/nge0 adv_autoneg_cap 0

しかし、Solaris というか Unix のネットワーク周り、ドライバ周りはあんまり触ったことないので四苦八苦しますね。

参考:

システム管理者のメモ帳

オートネゴシエーション設定の変更方法 - Solaris User

Solaris でネットワーク speed と duplex を変更する

3.3.2 nddコマンド使用方法

SUN/システム管理の手引き(ネットワーク) - ClassAct 技術情報

Solaris /dev/ge ドライバの設定パラメーター[nddコマンド] - Solaris User