SNMPによるATMスイッチのコントロール及びモニタリングの実例として, ForeのATMスイッチのためのコントロールライブラリswctlと,それを用いた モニタSWviewを紹介し,可能性と問題点を述べる.
目次
1. ATM スイッチに対する要求
2. Fore ATM スイッチの制御インタフェース
→インタフェースが固定されていて動作も遅く、 大量のPVC設立や解放には向かない。
→キャラクタベースでモニタリングにも使いづらい。
MIB 構造 ( 一部抜粋 )
( )...Object ID [ ]...rw = readable/writable, ro = read only enterprise(.1.3.6.1.4.1) | +fore(326) | +systems(2) | +atmSwitch(2) | +software(2) | +asxd(1) | | | +switchGroup(1) | +portGroup(2) | +pathGroup(3) | +channelGroup(4)* | +topologyGroup(5) | +signalingGroup(6) | +swBoardGroup(7) | +swBoardTopologyGroup(8) | +nsapGroup(9) | +upcContractGroup(10)** | +snmp(2) | +trapConfGroup(1) +snmpConfGroup(2) +snmpAgentAddressGroup(5)
VCCテーブル関連のMIBオブジェクト
*channelGroup(.1.3.6.1.4.1.326.2.2.2.1.4) | +channelTable(1)[na] | | | +channelEntry(1)[na] | | | +chanPort(1)[ro] | +chanVPI(2)[ro] | +chanVCI(3)[ro] | +chanStatus(4)[rw] | +chanNumOutputs(5)[ro] | +chanAllocBandwidth(6)[rw] | +chanUsedBandwidth(7)[ro] | +chanCells(8)[ro] | +chanUptime(9)[ro] | +chanSigProtocol(10)[ro] | +chanRejectedCells(11)[ro] | +chanCDV(12)[rw] | +chanPolicingAction(13)[rw] | +chanUpcContract(14)[rw] | +channelRouteTable(2)[na] | +channelRouteEntry(1)[na] | +chanrInputPort(1)[ro] +chanrInputVPI(2)[ro] +chanrInputVCI(3)[ro] +chanrOutputPort(4)[ro] +chanrOutputVPI(5)[ro] +chanrOutputVCI(6)[ro] +chanrStatus(7)[rw] +chanrSigProtocol(8)[rw]
UPCテーブル関連のMIBオブジェクト
**upcContractGroup(.1.3.6.1.4.1.326.2.2.2.1.10) | +upcContractTable(1) | +upcContractEntry(1) | +upcContractKey(1)[ro] +upcContractEntryStatus(2)[rw] +upcContractPCR01(3)[rw] +upcContractSCR01(4)[rw] +upcContractMBS01(5)[rw] +upcContractPCR0(6)[rw] +upcContractSCR0(7)[rw] +upcContractMBS0(8)[rw] +upcContractCDVT(9)[rw] +upcContractTagReq(10)[rw] +upcContractAal5Epd(11)[rw] +upcContractName(12)[rw]
Object ID:chanrStatus .1.3.6.1.4.1.326.2.2.2.1.4.2.1.7.x.y.z.l.m.n x: in port y: in VPI z: in VCI l: out port m: out VPI n: out VCI Port: A1=0 A2=1 A3=2 A4=3 B1=8 B2=9 B3=10 B4=11 C1=16 C2=17 C3=18 C4=19 D1=24 D2=25 D3=26 D4=27 CTL=56
Object ID:chanUpcContract .1.3.6.1.4.1.326.2.2.2.1.4.1.1.14.x.y.z x: in port y: in VPI z: in VCI
Object ID:upcContractEntryStatus .1.3.6.1.4.1.326.2.2.2.1.10.1.1.2.x x:upc index
→1つのPVCの設立に複数のObjectに対して値を設定する必要
3. ATM スイッチコントロールライブラリ swctl について
swctl_open()
swctl_close()
swctl_add()- 新たにPVCを設立する
swctl_delete()
- 既存のPVCを解放する
swctl_modify()
- 既存のPVCのUPCを変更する
swctl_redirect()
- 既存のPVCのoutputを変更する(delete&add)
swctl_stat()
- 現在ATM Switchに設立されているPVC及びUPCの情報を得る
swctl_mon()
- あるPVCのトラフィック統計情報(今までに転送されたcell数)を得る
4. SWview について
<ボタン>
[PVC設定ウィンドウ]
<ボタン>
swctl ライブラリで指定したトラップホスト上で動作させていれば、
他のプログラムからswctlライブラリの関数を呼び出したときに、
swctl_add(), swctl_delete(), swctl_modify(), swctl_redirect()
などを呼び出したときに、自動的に情報更新が行われる
5. 今後の課題
現在はライブラリmake時に埋め込み → swctl_open()
で指定する
...どのレベルのセキュリティが求められるのか?
ライブラリ独自のtrap message(UDPパケット) → SNMPのtrap messageを拾う
1回の関数呼び出しで1つのVC操作 → 1回の関数呼び出しで複数のVC操作
現在 UPC なしで設立が30ms/VC (UPCなし),39ms/VC (UPCあり),解放が
19ms/VC程度