BIG-IP で SNMP アクセス許可範囲を設定する際、「どの IPv4 アドレスからでも許可する」つもりで設定しても、実際には上手く SNMP アクセス出来ないことがあります。今回は SNMP 設定(allowed-addresses 設定)の注意点について記載します。今回は TMOS 12.x 系で試してみます。
デフォルトの設定
TMOS 12.0.0(0.0.606) はデフォルトで以下のようになっていました。
[root@big-ip-01:Active:Standalone] config # tmsh list sys snmp all-properties sys snmp { agent-addresses { tcp6:161 udp6:161 } agent-trap enabled allowed-addresses { 127. } auth-trap disabled bigip-traps enabled communities { comm-public { access ro community-name public description none ipv6 disabled oid-subset none source default } } description none disk-monitors { root { description none minspace 2000 minspace-type size path / } var { description none minspace 10000 minspace-type size path /var } } include none l2forward-vlan none load-max1 12 load-max5 12 load-max15 12 process-monitors { bigd { description none max-processes 1 min-processes 1 process bigd } chmand { description none max-processes 1 min-processes 1 process chmand } httpd { description none max-processes infinity min-processes 1 process httpd } mcpd { description none max-processes 1 min-processes 1 process mcpd } sod { description none max-processes 1 min-processes 1 process sod } tmm { description none max-processes infinity min-processes 1 process tmm } } sys-contact "Customer Name <admin@customer.com>" sys-location "Network Closet 1" sys-services 78 trap-community public trap-source none traps none users none v1-traps none v2-traps none }
失敗例
「どの IPv4 アドレスからでも許可する」と思い、以下のように設定すると上手く SNMP アクセス出来ません。
この場合、該当箇所の設定は以下のようになっています。
[root@big-ip-01:Active:Standalone] config # tmsh list sys snmp allowed-addresses sys snmp { allowed-addresses { 0.0.0.0 } }
別 PC から snmpwalk してみると、確かに値を取得出来ません。
$ snmpwalk -v 2c -c public 192.168.1.1 sysName Timeout: No Response from 192.168.1.1
成功例
正しくは以下のように設定します。失敗例では Type 欄をデフォルト値の「Host」にしたままでしたが、正しくは「Network」を選択した上で Address / Mask の両方に「0.0.0.0」と入力します(Type に Host を選択したままで Network に「0.0.0.0/0」を指定しても同じコンフィグになるようです)。
このように設定すると、該当箇所の設定は以下のようになっています。
[root@big-ip-01:Active:Standalone] config # tmsh list sys snmp allowed-addresses sys snmp { allowed-addresses { 0.0.0.0/0.0.0.0 } }
別 PC から snmpwalk してみると、無事に値を取得出来ます。
$ snmpwalk -v 2c -c public 192.168.1.1 sysName SNMPv2-MIB::sysName.0 = STRING: big-ip-01.example.local