snmpをインターネット越しに使う


自宅をipv6化したら、ipv4でインターネット公開されるポートが限られている。wellknown-portは公開できないので、naptで対応する。

  • インターネットには、標準以外のPORTで開放する
  • ルータでnaptして、内部では標準のPORTを使う

snmpwalk(requset & response)

内部(snmpwalk:any) → 外部(snmpd:161)

外部VPSに向かって、udp/161でSNMP-requestを送る。outboundなので、得意な点はない。

# snmpwalk -v2c -cpublic 外部VPS.jp .1 
....

外部(snmpwalk:any) → GW-NAPT(xxxx:161) → 内部(snmpd:161)

内部に向かってSNMP-requestを送る。GWに向かってxxxx/udpで送信し、GW-NAPTで161/udpに変換し宛先のサーバへ送る。

# snmpwalk -v2c -cpublic udp:GWアドレス.jp:xxxx .1 
    GWアドレス:xxxx -> 192.168.0.xx:161  # GW-NAPT
....

snmptrap(trap & catch)

内部(snmptrap:any) → 外部(snmptrapd:162)

外部VPSに向かって、udp/162でSNMP-requestを送る。outboundなので、得意な点はない。

# snmptrap -v2c -cpublic 外部VPS.jp '' systemStats 1 s "TEST TRAP" 

 

外部(snmptrap:any) → GW-NAPT(xxxx:162) → 内部(snmptrapd:162)

内部に向かってSNMP-TRAPを送る。GWに向かってxxxx/udpで送信し、GW-NAPTで162/udpに変換し宛先のサーバへ送る。

# snmptrap -v2c -cpublic udp:GWアドレス.jp:xxxx '' systemStats 1 s "TEST TRAP"  
    GWアドレス:xxxx -> 192.168.0.xx:162  # GW-NAPT