DaiApp サービス
この章では、DCNM Web サービスの、DaiApp サービスに対応する API メソッドについて説明します。
DaiApp サービスについて
Dynamic Address Resolution Protocol(ARP; アドレス解決プロトコル)Inspection(DAI)は、ネットワークの ARP パケットを確認するセキュリティ機能です。DAI では、無効な IP-MAC アドレス バインディングを含む ARP パケットの傍受、記録、および破棄を行います。これにより、ネットワークを man-in-the-middle 攻撃から守ることができます。この攻撃の場合、攻撃者は、ペイロードに偽の IP-MAC バインディングを含む偽造した ARP パケット(たとえば、Gratuitous ARP)をホストやデフォルト ゲートウェイに送信します。
bindArpAclOnVlans
VLAN のコレクションに ARP ACL を適用します。API では、VLAN にすでに ARP ACL が適用されているかどうかを検証します。API では、DAI が VLAN でイネーブルにされているかどうかも検証します。DAI が VLAN でイネーブルにされている場合、API では、DAI による検証よりも ARP ACL に基づく ARP インスペクションの方が優先されることを通知する警告メッセージをスローします。つまり、ARP ACL に基づいて拒否する必要があるパケットは、DAI で有効なパケットであっても拒否されます。
ValidationException は、次のいずれかの状況が発生した場合にスローされます。
• arpAclInstanceNameId がヌルか、タイプ ARP ACL InstanceNameId ではない場合。
• vlanInstanceNameIdCol がヌル、または空の場合。
• vlanInstanceNameIdCol コレクションがヌル要素 1 つを含むか、無効な VLAN InstanceNameId を含んでいる場合。
パラメータ
opContext:動作コンテキスト。
arpAclInstanceNameId:ARP ACL オブジェクトの InstanceNameId。
vlanInstanceNameIdCol:VLAN の InstanceNameId のコレクション。
explicitDenyEnable:ARP ACL をスタティック ACL として設定する必要があるかどうかを指示。
戻り値
void
bindArpAclOnVlansByArpAclName
事前準備された ARP ACL を VLAN のコレクションにバインドします。ARP ACL を VLAN のコレクションにバインドする場合に、ARP ACL がデバイスに物理的に設定されている必要はありません。ARP ACL の名前だけを使用してコレクションに ARP ACL をバインドできます。この API は、この事前プロビジョニング設定を指定します。
ValidationException は、次のいずれかの状況が発生した場合にスローされます。
• 渡された引数の arpAclName がヌルの場合。
• vlanInstanceIds コレクションがヌル、または空の場合。
• vlanInstanceIds コレクションがヌル要素 1 つを含むか、無効な VLAN インスタンス名 ID を含んでいる場合。
• vlanInstanceIds コレクションに、データベースに存在しない VLAN のインスタンス ID が含まれている場合。
PropertiesException は、次のいずれかの状況が発生した場合にスローされます。
• arpAclName に無効な ARP ACL 名文字列が含まれている場合。
例:
• ARP ACL 名が「2acl_test」などで、英字で開始されていない場合。
• ARP ACL 名が「acl test2」などスペースを含むか、「acl?test2」など疑問符を含む、または「acl'test」など引用符を含む場合。
パラメータ
opContext:動作コンテキスト。
arpAclName:ARP ACL の名前。この ACL がデバイスに設定されている必要はありません。
vlanInstanceIds:デバイスに設定されている、ネットワーク要素に含まれている VLAN の InstanceNameId のコレクション。
explicitDenyEnable:ARP ACL をスタティック ACL として設定する必要があるかどうかを示します。
戻り値
void
bindArpAclOnVlansForRange
事前準備された ARP ACL を事前準備された VLAN のコレクションにバインドします。ARP ACL を VLAN のコレクションにバインドする場合、ARP ACL と VLAN のいずれについても、デバイスに設定されている必要はありません。ユーザは、ARP ACL 名を VLAN のコレクションにバインドしておき、ARP ACL およびバインドされた VLAN の両方を後で作成することができます。この API は、この事前プロビジョニング設定を指定します。
ValidationException は、次のいずれかの状況が発生した場合にスローされます。
• 渡された引数の arpAclName がヌルの場合。
• 渡された引数の vlanRange がヌルの場合。
• networkElementId がヌルか、タイプがネットワーク要素 InstanceNameId ではない場合。
• networkElementId で指定された InstanceNameId を持つネットワーク要素がデータベースに存在しない場合。
PropertiesException は、次のいずれかの状況が発生した場合にスローされます。
• 引数 arpAclName として指定された ARP ACL 名が有効な ARP ACL 名文字列ではない場合。
例:
• ARP ACL 名が「2acl_test」などで、英字で開始されていない場合。
• ARP ACL 名が「acl test2」などスペースを含むか、「acl?test2」など疑問符を含む、または「acl'test」など引用符を含む場合。
パラメータ
opContext:動作コンテキスト。
networkElementId:ネットワーク要素の InstanceNameId。
arpAclName:ARP ACL の名前。この ACL がデバイスに設定されている必要はありません。
vlanRange:VLAN の範囲を表す文字列。この文字列の内容は、カンマ区切りおよびハイフンでつないだ VLAN のリストです。たとえば、vlanRange は 4,6,9,15-20,25 です。
explicitDenyEnable:ARP ACL をスタティック ACL として設定する必要があるかどうかを示します。
戻り値
void
clearArpRateLimitingConfigurationInInterfaces
インターフェイスのコレクションに適用されている ARP のレート制限とバースト間隔の設定をクリアします。この API では、レート制限とバースト間隔の値をデフォルト値に戻します。
ValidationException は、次のいずれかの状況が発生した場合にスローされます。
• 引数 interfaceNameIds がヌルか、タイプがインターフェイス InstanceNameId ではない場合。
• コレクション interfaceNameIds のいずれかの InstanceNameId によって指定されているインターフェイスがデータベースに存在しない場合。
パラメータ
opContext:動作コンテキスト。
interfaceNameIds:インターフェイスの InstanceNameId のコレクション。
戻り値
void
createArpAcls
ネットワーク要素に標準 ARP ACL オブジェクトを 1 つまたは複数作成します。ネットワーク要素の InstanceNameId および ARP ACL オブジェクトのリストを指定すると、サーバにオブジェクトを作成し、作成した ARP ACL の InstanceNameId のコレクションを戻します。
ValidationException は、次のいずれかの状況が発生した場合にスローされます。
• neInstanceNameId がヌルか、タイプがネットワーク要素 InstanceNameId ではない場合。
• neInstanceNameId がネットワーク要素の有効な InstanceNameId ではない場合。
• arpAclCol 内の ARP ACL オブジェクトに name アトリビュートが設定されていない場合。
• arpAclCol に含まれている ARP ACL のエントリが重複している場合。
javax.xml.bind.PropertyException は、次のいずれかの状況が発生した場合にスローされます。
• ARP ACL の名前が英字で開始されていない場合。
• ARP ACL の名前にスペースや疑問符文字が含まれている場合。
• ARP ACL の名前が 234 文字を超えている場合。
IntegrityException は、次のいずれかの状況が発生した場合にスローされます。
• arpAclCol に含まれている ARP ACL がすでにデータベースに存在する場合。
• arpAclCol に含まれている ARP ACL で、ARP ACL エントリ オブジェクトが重複している場合。
この API では、ARP ACL との VlanExternal アソシエーションは考慮されません。ユーザは、別の API を呼び出して ARP ACL を VLAN にバインドする必要があります。
パラメータ
opContext:動作コンテキスト。
networkElementId:ネットワーク要素の InstanceNameId。
arpAclCol:作成する ARP ACL オブジェクトのコレクション。
戻り値
新規作成された ARP ACL オブジェクトのコレクション。
deleteArpAcls
1 つまたは複数の ARP ACL を削除します。ARP ACL オブジェクトの InstanceNameId を指定すると、そのオブジェクトをサーバから削除します。
ValidationException は、次のいずれかの状況が発生した場合にスローされます。
• arpAcls コレクションがヌル、または空の場合。
• arpAcls コレクションにタイプ ARP ACL でない要素が含まれている場合。
• arpAcls コレクションに、データベースに存在しない ARP ACL が含まれている場合。
パラメータ
opContext:動作コンテキスト。
arpAclInstanceNameIds:削除する ARP ACL の InstanceNameId を含むコレクション
戻り値
void
disableDaiOnVlans
ネットワーク要素で、コレクションで指定された VLAN の DAI をディセーブルにします。
渡された引数がヌルか、タイプ VLAN InstanceNameId ではない場合は、ValidationException がスローされます。
パラメータ
opContext:動作コンテキスト。
vlanIds:VLAN の InstanceNameId。
戻り値
void
enableDaiOnVlans
ネットワーク要素で、コレクションで指定された VLAN の DAI をイネーブルにします。API では、DHCP スヌーピングが VLAN でイネーブルにされているかどうかを検証します。イネーブルにされていない場合、API は、DAI を動作させるには DHCP スヌーピングをイネーブルにする必要があるということを示す例外をスローします。
渡された引数がヌルか、タイプ VLAN InstanceNameId ではない場合は、ValidationException がスローされます。
パラメータ
opContext:動作コンテキスト。
vlanIds:VLAN の InstanceNameId。
戻り値
リストで指定された vlanId に対応する VLAN に関連付けられている DaiSetting オブジェクトの InstanceNameId のリスト。
enableDaiOnVlansByRange
事前準備された VLAN でダイナミック ARP インスペクションをイネーブルにします。VLAN ID だけを使用してダイナミック ARP インスペクションをイネーブルにすることができます。ダイナミック ARP インスペクションをイネーブルにする必要のある VLAN が実際にデバイスに存在している必要はありません。この API は、この事前プロビジョニング設定を指定します。
ValidationException は、次のいずれかの状況が発生した場合にスローされます。
• 渡された引数の networkElementId がヌルか、タイプがネットワーク要素 InstanceNameId ではない場合。
• 渡された引数の vlanRange がヌルの場合。
パラメータ
opContext:動作コンテキスト。
networkElementId:ネットワーク要素の InstanceNameId。
vlanRange:VLAN の範囲を表す文字列。この文字列の内容は、カンマ区切りおよびハイフンでつないだ VLAN のリストです。vlanRange は、たとえば、4,6,9,15-20,25 です。
戻り値
void
getArpAclsInNetworkElement
ネットワーク要素の InstanceNameId を指定すると、指定されたネットワーク要素に設定されているすべての ARP ACL のコレクションを戻します。
渡された引数がヌルか、タイプがネットワーク要素 InstanceNameId ではない場合は、ValidationException がスローされます。
パラメータ
opContext:動作コンテキスト。
networkElementId:ネットワーク要素の InstanceNameId。
戻り値
ネットワーク要素に存在しているすべての ARP ACL オブジェクトのリスト。戻されたオブジェクトのリストでは、次のアソシエーションだけが存在し、その他のアソシエーションはクリアされます。
• 戻される ARP ACL オブジェクトに対して関連付けられているすべての ACE。
• 戻される ARP ACL オブジェクトを参照している VLAN。
• 戻される ARP ACL が設定されているネットワーク要素。
getArpAclsInVlans
この API は VLAN InstanceNameId のコレクションを指定すると、関連付けられている ARP ACL があればその ARP ACL を戻します。
パラメータ
opContext:
vlanInstanceNameIdCol:
戻り値
VLAN に関連付けられている ARP ACL のリスト。パラメータ コレクション内の VLAN に ARP ACL が関連付けられていない場合、リストの対応する位置にはヌル要素が含まれています。
getArpAclsWithoutAcesInNetworkElement
ネットワーク要素の InstanceNameId を指定すると、指定されたネットワーク要素に設定されているすべての ARP ACL のコレクションを戻します。
渡された引数がヌルか、タイプがネットワーク要素 InstanceNameId ではない場合は、ValidationException がスローされます。
パラメータ
opContext:動作コンテキスト。
networkElementId:ネットワーク要素の InstanceNameId。
戻り値
ネットワーク要素に存在しているすべての ARP ACL オブジェクトのリスト。戻されたオブジェクト リストでは、すべてのアソシエーションがクリアされます。
getDaiDisabledVlansInNetworkElement
指定されたネットワーク要素で DAI がディセーブルにされているすべての VLAN を戻します。
渡された引数がヌルか、タイプがネットワーク要素 InstanceNameId ではない場合は、ValidationException がスローされます。
パラメータ
opContext:動作コンテキスト。
networkElementId:ネットワーク要素の InstanceNameId。
戻り値
DAI がディセーブルにされている VlanExternal オブジェクトのリスト。戻されるオブジェクトのリストでは、次のアソシエーションだけがあり、これ以外のアソシエーションはクリアされています。
• DaiSetting アソシエーション。
• ARP ACL アソシエーション。ARP ACL エントリを持つ ARP ACL の場合、これらのアソシエーションはクリアされます。
getDaiEnabledVlansInNetworkElement
指定されたネットワーク要素で DAI がイネーブルにされているすべての VLAN を戻します。
渡された引数がヌルか、タイプがネットワーク要素 InstanceNameId ではない場合は、ValidationException がスローされます。
パラメータ
opContext:動作コンテキスト。
networkElementId:ネットワーク要素の InstanceNameId。
戻り値
DAI がイネーブルにされている VlanExternal オブジェクトのリスト。戻されたオブジェクトのリストでは、次のアソシエーションだけが存在し、その他のアソシエーションはクリアされます。
• DaiSetting アソシエーション。
• ARP ACL アソシエーション。ARP ACL エントリを持つ ARP ACL の場合、これらのアソシエーションはクリアされます。
getDaiGlobalSettingsInNetworkElements
リストで指定されたネットワーク要素の DAI グローバル設定を取得します。ネットワーク要素の InstanceNameId を指定すると、DAI グローバル設定のコレクションを戻します。
渡された引数がヌルか、タイプがネットワーク要素 InstanceNameId ではない場合は、ValidationException がスローされます。
パラメータ
opContext:動作コンテキスト。
neInstanceNameIds:ネットワーク要素の InstanceNameId。
戻り値
DaiGlobalSetting オブジェクトのリスト。戻されるリストには、リストで指定したネットワーク要素に関連する DaiGlobalSetting オブジェクトが含まれています。
getDaiSettingOnVlans
リストで指定された VLAN に関連する DAI 設定のリストを戻します。
渡された引数がヌルか、タイプ VLAN InstanceNameId ではない場合は、ValidationException がスローされます。
パラメータ
opContext:動作コンテキスト。
vlanIds:VLAN の InstanceNameId。
戻り値
DaiSetting オブジェクトのリスト。戻されるオブジェクトのリストでは、次のアソシエーションだけがあり、これ以外のアソシエーションはクリアされています。
• VLAN アソシエーション。
• DAI 設定と関連付けられている VLAN と関連付けられた ARP ACL。ARP ACL エントリを持つ ARP ACL の場合、これらのアソシエーションはクリアされます。
getInterfacesWithArpRateLimitingInNetworkElement
指定されたネットワーク要素にあり、ARP レートおよびバースト間隔が設定されているすべてのインターフェイスを戻します。これらのインターフェイスには、ARP レート制限およびバースト間隔の値が設定されています。
渡された引数がヌルか、タイプがネットワーク要素 InstanceNameId ではない場合は、ValidationException がスローされます。
パラメータ
opContext:動作コンテキスト。
networkElementId:ネットワーク要素の InstanceNameId。
戻り値
ARP レート制限およびバースト間隔が設定されているインターフェイス オブジェクトのコレクション。
getTrustStateSettingInInterfaces
信頼状態設定オブジェクトのコレクションを戻します。インターフェイス InstanceNameId のコレクションを指定すると、信頼状態設定オブジェクトのコレクションを戻します。
渡された引数がヌルか、タイプ インターレース InstanceNameId ではない場合は、ValidationException がスローされます。
パラメータ
opContext:動作コンテキスト。
interfaceInstanceIds:インターフェイスの InstanceNameId。
戻り値
TrustStateSetting オブジェクトのコレクション。
getUntrustedInterfacesWithDefaultRateInNetworkElement
ネットワーク要素の InstanceNameId を指定すると、指定されたネットワーク要素にあるデフォルトの ARP レートおよびバースト間隔値が設定されている、すべての untrusted インターフェイスを戻します。
渡された引数がヌルか、タイプがネットワーク要素 InstanceNameId ではない場合は、ValidationException がスローされます。
パラメータ
opContext:動作コンテキスト。
networkElementId:ネットワーク要素の InstanceNameId。
戻り値
デフォルトのレート制限およびバースト間隔が設定されている信頼できないインターフェイスのオブジェクトのコレクション。
getVlansWithDaiSettingNetworkElement
指定されたネットワーク要素にある、DaiSetting オブジェクトを持つすべての VLAN を戻します。
渡された引数がヌルか、タイプがネットワーク要素 InstanceNameId ではない場合は、ValidationException がスローされます。
パラメータ
opContext:動作コンテキスト。
networkElementId:ネットワーク要素の InstanceNameId。
戻り値
DaiSetting オブジェクトを持つ VLAN のリスト。戻されるオブジェクトのリストでは、次のアソシエーションだけがあり、これ以外のアソシエーションはクリアされています。
• DaiSetting アソシエーション。
• ARP ACL アソシエーション。ARP ACL エントリを持つ ARP ACL の場合、これらのアソシエーションはクリアされます。
modifyAclSequence
開始シーケンス番号およびシーケンス番号の増分ステップに基づいて、ACL 内の ACE のシーケンス番号を変更します。
パラメータ
opContext:動作コンテキスト。
aclInstanceNameIdCol:1 つまたは複数の ACL の InstanceNameId。
再シーケンスは、プラットフォーム タイプが Nexus 7000 シリーズ スイッチの場合にだけサポートされています。
startSeqNo:アクセス リストのエントリは、この初期値を使用して、並べ直されます。
increment:シーケンス番号の変更量を示す数値。たとえば、increment 値が 5 で開始シーケンス番号が 20 の場合、以降のシーケンス番号は 25、30、35、40 と続きます。
戻り値
void
modifyArpAcls
既存の 1 つまたは複数の ARP ACL オブジェクトを変更します。
ValidationException は、次のいずれかの状況が発生した場合にスローされます。
• arpAcls コレクションがヌル、または空の場合。
• arpAcls コレクションにタイプ ARP ACL でないオブジェクトが含まれている場合。
PropertiesException は、次のいずれかの状況が発生した場合にスローされます。
• arpAcls コレクション内の ARP ACL の名前が変更されている場合。
IntgerityException は、次のいずれかの状況が発生した場合にスローされます。
• arpAcls コレクションに、データベースに存在しない ARP ACL オブジェクトが含まれている場合。
• arpAcls コレクションの ARP ACL に、重複する ARP ACL エントリ オブジェクトが含まれている場合。
この API では、ARP ACL オブジェクトの VLAN アソシエーションは考慮されません。ユーザは、別の API を呼び出して ARP ACL を VLAN にバインドする必要があります。
パラメータ
opContext:動作コンテキスト。
arpAcls:データベースの既存の ARP ACL オブジェクトと置換する、変更済み ARP ACL オブジェクトのコレクション。
戻り値
void
modifyDaiGlobalSettingsInNetworkElements
指定されたネットワーク要素のコレクションに含まれている既存の 1 つまたは複数の DAI グローバル設定オブジェクトを変更します。
ValidationException は、次のいずれかの状況が発生した場合にスローされます。
• networkElementIds コレクションがヌル、または空の場合。
• networkElementIds コレクションがヌル要素 1 つを含むか、無効なネットワーク要素 InstanceNameId を含んでいる場合。
PropertiesException は、次のいずれかの状況が発生した場合にスローされます。
• daiGlobalSettings コレクションで、いずれかの daiGlobalSetting アトリビュートが有効ではない場合。
例:
• logBufferSize アトリビュートに 0 ~ 1024 までの値が含まれていない場合。
• logInterval アトリビュートに 0 ~ 86400 までの値が含まれていない場合。
IntegrityException は、次のいずれかの状況が発生した場合にスローされます。
• networkElementIds コレクションと daiGlobalSettings コレクションのサイズが等しくない場合。
パラメータ
opContext:動作コンテキスト。
networkElementId:DAI グローバル パラメータを変更する必要のあるネットワーク要素の InstanceNameId。
daiGlobalSettings:変更済みの DAI グローバル設定オブジェクト
戻り値
void
modifyDaiOnVlans
既存の 1 つまたは複数の DAI 設定オブジェクトを変更します。
ValidationException は、次のいずれかの状況が発生した場合にスローされます。
• modifiedDaiSettings コレクションがヌル、または空の場合。
• modifiedDaiSettings コレクションにタイプ DaiSetting でないオブジェクトが含まれている場合。
PropertiesException は、次のいずれかの状況が発生した場合にスローされます。
• 変更済み DAI 設定オブジェクト内の VLAN 参照が変更されている場合。
パラメータ
opContext:動作コンテキスト。
modifiedDaiSettings:データベースにある既存の DAI 設定オブジェクトと置換する変更済み DaiSetting オブジェクトのコレクション。
戻り値
void
modifyDaiSettingsAndArpAclBindingsOnVlans
指定された VLAN コレクションに含まれている DAI 設定および ARP ACL バインディングを変更します。渡される VLAN オブジェクトには、変更済み DAI 設定および変更済み ARP ACL バインディングがある必要があります。
この API では、ARP ACL エントリの変更はサポートされていません。ARP ACL の ARP ACL エントリを変更する場合は、modifyArpAcls(List arpAcls) API を使用してください。
ValidationException は、次のいずれかの状況が発生した場合にスローされます。
• modifiedVlanObjects コレクションがヌル、または空の場合。
• modifiedVlanObjects コレクションに、データベースに存在しない VLAN が含まれていいる場合。
• modifiedVlanObjects コレクションに含まれている要素に対応する、データベース内の VLAN に、DAI 設定が含まれていない場合。
modifiedVlanObjects の VLAN に関連付けられている ARP ACL の 1 つまたは複数のアトリビュートで、いずれかの DAI 設定が有効ではない場合は PropertiesException がスローされます。
パラメータ
opContext:動作コンテキスト。
modifiedVlanObjects:DAI 設定および ARP ACL 参照を含む、変更済み VLAN オブジェクトのコレクション。
戻り値
void
modifyTrustStateSettings
指定されたネットワーク インターフェイスのコレクションに含まれている既存の 1 つまたは複数の信頼状態設定オブジェクトを変更します。
ValidationException は、次のいずれかの状況が発生した場合にスローされます。
• interfaceInstanceIds コレクションがヌル、または空の場合。
• interfaceInstanceIds コレクションがヌル要素 1 つを含むか、無効なインターフェイス InstanceNameId を含んでいる場合。
• trustStateSettings コレクションがヌル、または空の場合。
• trustStateSettings コレクションにタイプ TrustStateSetting でない要素が含まれている場合。
PropertiesException は、次のいずれかの状況が発生した場合にスローされます。
• trustStateSettings コレクションで、いずれかの trustStateSetting アトリビュートが有効ではない場合。
例:
• arpRate アトリビュートに 0 ~ 2048 までの値が含まれていない場合。
• burstInterval アトリビュートに 0 ~ 15 までの値が含まれていない場合。
IntegrityException は、次のいずれかの状況が発生した場合にスローされます。
• interfaceInstanceIds コレクションと trustStateSettings コレクションのサイズが等しくない場合。
• trustStateSettings コレクションにタイプ TrustStateSetting でないインターフェイスが含まれている場合。
パラメータ
opContext:動作コンテキスト。
interfaceInstanceIds:インターフェイスの InstanceNameIds。
trustStateSettings:変更済み TrustStateSetting オブジェクト。
戻り値
void
unbindArpAclFromVlans
VLAN のコレクションで ARP ACL とのアソシエーションを削除します。
ValidationException は、次のいずれかの状況が発生した場合にスローされます。
• vlanInstanceNameIds コレクションがヌル、または空の場合。
• vlanInstanceNameIdCol コレクションがヌル要素 1 つを含むか、無効な VLAN インスタンス名 ID を含んでいる場合。
パラメータ
opContext:動作コンテキスト。
vlanInstanceNameIds:ARP ACL アソシエーションを削除する必要のある VLAN の InstanceNameId。
戻り値
void