- PR -

ipAddrTable の ipAdEntIfIndex の値

1
投稿者投稿内容
girio
会議室デビュー日: 2004/04/25
投稿数: 8
投稿日時: 2006-01-25 15:00
RFC1213 に ipAddrTable の定義がありますが、このテーブルの Entry に
ipAdEntIfIndex というMIB があります。
SNMP マネージャソフトでこの MIB を取得した際の値について質問があります。
例えば、48 ポートの SW (192.168.1.10) に対し、ipAddrTable を取得すると


ipAdEntAddr | 192.168.1.10
---------------+---------------
ipAdEntIfIndex | 49
---------------+---------------
ipAdEntNetMask | 255.255.255.0
---------------+--------------
(以下 Entry 省略)


とテーブルが取得されます。
このとき、ipAdEntIfIndex の値が 49 ですが、物理(実際の)ポートは 48 ポートしか
ないのに、なぜ 49 となるのでしょうか?
他の SW についても実際のポート数 + α の数字として値を取得します。
この理由について、ご存知の方がいらっしゃいましたら、ご教授の程
よろしくお願いいたします。

※ちなみに、ifTable を取得した際の 49 番ポートは VLAN1 となっていますが、
何か関係があるのでしょうか?
いっそう
会議室デビュー日: 2005/03/19
投稿数: 9
投稿日時: 2006-01-27 14:54
こんにちは

まず、ifIndex値(ipAddrEntIfIndexで取得できる値)はインタフェースと
(SNMPエージェントが)認識するすべてのインタフェースに割り当てられますが、
ipAddrTableで表示されるのはIP Addressを持っているインタフェースが
ほとんどだということです。
ifIndex値についてはIP Addressを持たないインタフェースでも割り当てられる可能性が
あるということです。
(IP Addressを持たないインタフェースに割り当てる機種もあれば、割り当てない機種もあります。
L2スイッチであればたいてい前者の仕様になるとおもいます。)

このときVLAN1のifIndex値が49になる理由については
スイッチがifIndexの割り当てロジックに従って割り当てたということになります。
それ以上の詳細については、装置の仕様の話になるので仕様書やマニュアルに記載がなければ
ブラックボックスだということです。

ただ、1〜48に何が割り当てられたのかしりたいというのであれば
以下のコマンドで確認可能です。
> snmpwalk -c <community名> <host名> ifDescr
もしくは
> snmpwalk -c <community名> <host名> 1.3.6.1.2.1.31.1.1.1.1

多分、スイッチのEthernetポートが48個分ifIndex値が割り当てられていると思います。
ただ、このスイッチの場合は必ずこうなるという断定的な考えはあまり持たないほうが
よいと思います。特に仮想インタフェース(VLANなど)についてはスイッチの設定によっても
異なる可能性もありますし、同じ設定でも過去の設定変更の仕方によって変わってくる
場合もあります。
girio
会議室デビュー日: 2004/04/25
投稿数: 8
投稿日時: 2006-01-30 11:39
いっそうさん、返信が遅くなり申し訳ありません。

なるほど、SW ベンダの仕様や設定に依存するところなのですね。
RFC か何かで規定されているのかなと探していたのですが、
そういった記述は見つからなかったので、納得です。

大変助かりました。ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)