はじめに
このドキュメントでは、SNMP v2およびv3設定でNexus 5000、7000、9000のOIDを除外する方法について説明します。
前提条件
要件
Object Identifier(OID;オブジェクト識別子)除外を実装する前に、次の項目に関する知識があることが推奨されます。
- Simple Network Management Protocol(SNMP)に精通していること
- デバイス設定モードへのアクセス
- 除外するOIDの理解
- SNMPコミュニティおよびユーザ設定の理解
使用するコンポーネント
このドキュメントの情報は、次のNexusモデルを使用したラボテストに基づいています。
- Nexus 5000
- Nexus 7000
- Nexus 9000
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
背景説明
SNMPの世界では、Management Information Base(MIB;管理情報ベース)ツリーの解析が困難になり、特定のOIDで停止に達すると、ウィンドウタイムアウトなどの問題が発生する場合があります。もう1つの一般的な問題は、面倒なOIDを連続してポーリングすることで、不要で影響のないアラートがトリガーされる場合です。このようなシナリオを取り除く方法の1つとして、除外を作成し、その特定のOIDをスキップしてMIB構造の残りの部分に進むようにデバイスに指示する方法があります。面倒なOIDをバイパスし、MIB構造の残りの部分を続行するようにデバイスを設定することで、MIBツリーの円滑なフローを促進できます。
注:この除外は、MIBツリーからのデータの読み取り方法に影響を与える可能性があることに注意してください。これらの除外に進む前に、注意してOIDの必要性を確認してください。
OIDを除外すると、通常はアグリゲーションサービスルータ(ASR)/Catalystスイッチ(CAT)/統合サービスルータ(ISR)などのデバイスで簡単なプロセスが実行されますが、Nexusデバイスでこの問題を解決するには、ビューがないため複雑さが増します。この記事では、ロールを導入してコミュニティ/ユーザにマッピングすることで革新的なアプローチを考察し、Nexus 5000、7000、および9000デバイス上のSNMP v2およびv3設定でOIDを除外するためのソリューションを示します。
基本的な手順
アクセスコンフィギュレーションモード:
#conf t
OID除外のロールの定義:
#role name
#rule 1 permit read feature snmp
#rule 2 deny {read/ read-write} oid
ヒント:{read/read-write}を使用すると、SNMP操作を「読み取り」または「読み取り/書き込み」から選択できます。通常、「読み取り」操作は情報の取得を伴い、「読み取り/書き込み」操作は情報の取得と変更を伴います。必要に応じて、読み取り/読み取り/書き込みを選択できます。
設定モードを終了します。
#exit
SNMPコミュニティ/ユーザに設定を適用します。
SNMPv2の場合:
#snmp-server community group
SNMPv3の場合:
#snmp-server user auth {sha/md5} priv {aes/des}
コンフィギュレーション
注:この例には、OID 1.3.6.1.2.1.2.2.1.3(ifType)の除外が含まれています。 ifType OIDは、必ず除外するOIDに置き換えてください。
OIDのifTypeを除外するロールの定義:
switch#
switch# config t
Enter configuration commands, one per line. End with CNTL/Z.
switch(config)# role name deny_oid
switch(config-role)# rule 1 permit read feature snmp
switch(config-role)# rule 2 deny read oid 1.3.6.1.2.1.2.2.1.3
switch(config-role)# exit
switch(config)# exit
switch# sh role name deny_oid
Role: deny_oid
Description: new role
Vlan policy: permit (default)
Interface policy: permit (default)
Vrf policy: permit (default)
-------------------------------------------------------------------
Rule Perm Type Scope Entity
-------------------------------------------------------------------
2 deny read oid 1.3.6.1.2.1.2.2.1.3
1 permit read feature snmp
switch#
deny_oid
の役割を持つSNMPv2コミュニティを作成します。
switch(config)# snmp-server community snmpv2user group deny_oid
switch(config)# exit
switch# sh snmp community
Community Group / Access context acl_filter
_________ ______________ _______ __________
snmpv2user deny_oid
switch#
deny_oidロールを持つSNMPv3ユーザを作成します。
switch# config t
Enter configuration commands, one per line. End with CNTL/Z.
switch(config)# snmp-server user snmpv3user deny_oid auth sha password!123 priv ?
WORD Privacy password for user (Max Size 134)
switch(config)# snmp-server user snmpv3user deny_oid auth sha password!123 priv password!123
switch(config)# do sh snmp user
______________________________________________________________
SNMP USERS
______________________________________________________________
User Auth Priv(enforce) Groups acl_filter
____ ____ _____________ ______ __________
admin md5 aes-128(no) network-admin
snmpv3user sha aes-128(no) deny_oid
______________________________________________________________
NOTIFICATION TARGET USERS (configured for sending V3 Inform)
______________________________________________________________
User Auth Priv
___ ____ ____
switch(config)#
検証
注:ifType OIDのポーリングを確認するために、テストユーザ「trial」が使用されました。残りのユーザはdeny_oidロールでマッピングされ、図に示すようにifType OIDのデータを示しませんでした。
除外しないSNMPwalk:
注:記事全体では、デバイスのIPアドレスの代わりにa.b.c.dが使用されています。
[root@user ~]# snmpwalk -v2c -c trial a.b.c.d 1.3.6.1.2.1.2.2.1.3
IF-MIB::ifType.83886080 = INTEGER: ethernetCsmacd(6)
IF-MIB::ifType.436207616 = INTEGER: ethernetCsmacd(6)
IF-MIB::ifType.436208128 = INTEGER: ethernetCsmacd(6)
IF-MIB::ifType.436208640 = INTEGER: ethernetCsmacd(6)
IF-MIB::ifType.436209152 = INTEGER: ethernetCsmacd(6)
IF-MIB::ifType.436209664 = INTEGER: ethernetCsmacd(6)
IF-MIB::ifType.436210176 = INTEGER: ethernetCsmacd(6)
IF-MIB::ifType.436210688 = INTEGER: ethernetCsmacd(6)
IF-MIB::ifType.436211200 = INTEGER: ethernetCsmacd(6)
IF-MIB::ifType.436211712 = INTEGER: ethernetCsmacd(6)
^C
除外されたOIDを持つSNMPv2のSNMPwalk:
[root@user ~]# snmpwalk -v2c -c snmpv2user a.b.c.d 1.3.6.1.2.1.2.2.1.3
IF-MIB::ifType = No Such Object available on this agent at this OID
注:OIDを除外しないポーリングを示すために、新しいユーザ「trialv3」が作成されました。
OIDを除外しないSNMPwalk:
[root@user ~]# snmpwalk -v3 -u trialv3 -l authPriv -a sha -A 'password!123' -x aes -X 'password!123' a.b.c.d 1.3.6.1.2.1.2.2.1.3
IF-MIB::ifType.83886080 = INTEGER: ethernetCsmacd(6)
IF-MIB::ifType.436207616 = INTEGER: ethernetCsmacd(6)
IF-MIB::ifType.436208128 = INTEGER: ethernetCsmacd(6)
IF-MIB::ifType.436208640 = INTEGER: ethernetCsmacd(6)
IF-MIB::ifType.436209152 = INTEGER: ethernetCsmacd(6)
IF-MIB::ifType.436209664 = INTEGER: ethernetCsmacd(6)
IF-MIB::ifType.436210176 = INTEGER: ethernetCsmacd(6)
IF-MIB::ifType.436210688 = INTEGER: ethernetCsmacd(6)
IF-MIB::ifType.436211200 = INTEGER: ethernetCsmacd(6)
IF-MIB::ifType.436211712 = INTEGER: ethernetCsmacd(6)
IF-MIB::ifType.436212224 = INTEGER: ethernetCsmacd(6)
^C
[root@user ~]#
除外されたOIDを持つSNMPv3ユーザのSNMPwalk:
[root@user ~]# snmpwalk -v3 -u snmpv3user -l authPriv -a sha -A 'password!123' -x aes -X 'password!123' a.b.c.d 1.3.6.1.2.1.2.2.1.3
IF-MIB::ifType = No Such Object available on this agent at this OID
[root@user ~]#