[Python][Network] netmikoで使えるデバイスタイプについて

netmikoで使えるデバイスタイプ

netmikoは抽象化の度合いこそ低いものの、対応デバイスの多さが特徴です。ただ、対応デバイス名の記載について言及があまりなく、実際どんなものがあるのかはGithubのソースを見ないとわかりません。

そこで、どんなものがあるのかを列挙してみました。実際には、ここにあるコードを見て、それぞれのベンダーに対応するモジュール名を確認してみました。

A10 Networks

  • a10_ssh

Accedian Networks

  • accedian_ssh

Alcatel

  • alcatel_aos_ssh
  • alcatel_sros_ssh

Arista Networks

  • arista_ssh

Aruba Networks (Hewlett-Packard Enterprise)

  • aruba_ssh

Avaya

  • avaya_ers_ssh
  • avaya_vsp_ssh

Brocade Communication Systems

  • brocade_nos_ssh
  • brocade_netiron

Calix

  • calix_b6_ssh

Checkpoint Software Technologies

  • checkpoint_gaia_ssh

Ciena

  • ciena_saos_ssh

Cisco Systems

  • cisco_asa_ssh
  • cisco_ios(SSH/TELNET両対応)
  • cisco_nxos_ssh
  • cisco_s300
  • cisco_tp_tcce
  • cisco_wlc_ssh
  • cisco_xr_ssh

Coriant

  • coriant_ssh

DELL

  • dell_force10_ssh
  • dell_powerconnect

Eltex

  • eltex_ssh

Enterasys Networks

  • enterasys_ssh

Extreme Networks

  • extreme_ssh
  • extreme_wing_ssh

f5 networks

  • f5_ltm_ssh

Fortinet

  • fortinet_ssh

Hewlett-Packard Enterprise

  • hp_comware_ssh
  • hp_procurve_ssh

HUAWEI(H3C/Hewlett-Packard Etnterprise)

  • huawei_ssh

Juniper Networks

  • juniper_ssh

Linux

  • linux_ssh

Mellanox Technologies

  • mellanox_ssh

MRV Communications

  • mrv_ssh

NetApp

  • netapp_cdot_ssh

OVS (Open VSwitch)

  • ovs_linux_ssh

PaloAlto Networks

  • paloalto_panos_ssh

Pluribus Networks

  • pluribus_ssh

Quanta

  • quanta_mesh_ssh

Ruckus Wireless

  • ruckus_fastiron_ssh

terminal_server

  • terminal_server

Ubiquiti Networks

  • edge_ssh

Viyatta/VyOS

  • vyos_ssh

感じたこと

見てわかると思うのですが、多岐にわたって対応していると思いきや、意外とそうでもありません。ただ、コネクションの部分を特化してコーディングされてるため、おそらくはユーザが必要に応じてドライバを増やしているんだろうなーと言う感じがしました。

あと、SSHが前提のモジュールが多いですね。使用の際は、SSHを構成した上で実施することをオススメしますです。具体的な中身は、例えばCisco_IOSモジュールの場合、SSH/TELNETそれぞれで接続用クラスなどが提供されていることがソースから判別つくので、そのあたりからにらめっこするとわかりやすいのかなと感じます。

ある程度Pythonの書き方を覚えた上で、こうしてGithub上のソースを見てみるのも一つ大事なことかなと感じました。

個人的な感想ですが、netmikoは戻り値としてスイッチの出力がそのまま返ってくることから、コンフィグのバックアップには最適かな?と言う印象です。逆に、スイッチの統計情報や接続情報等に関するものについては、別途存在するNAPALMを使ったほうが良いのだろうなとも。

NAPALMはどうやらRouterboardにも対応しているらしく、それ使えばもう少し網羅的に構成管理が出来るかもです。そのうち使って、運用管理などに役立ててみようかなーと考えています。