【2/2】ルータ冗長プロトコルのVRRP/HSRPのグループ番号をMACアドレスから確認するPythonツールを作ってみた
- 【1/2】ルータ冗長プロトコルのVRRP/HSRPのグループ番号をMACアドレスから確認する
- 【2/2】ルータ冗長プロトコルのVRRP/HSRPのグループ番号をMACアドレスから確認するPythonツールを作ってみた ★本記事
ネットワークエンジニアにお馴染みのルータ冗長プロトコルである VRRP(Virtual Router Redundancy Protocol)とHSRP(Hot Standby Router Protocol)の グループ番号をMACアドレスから確認する方法を前回【1/2】で説明しました。
グループ番号重複事故の再発防止策として、MACアドレステーブルからVRRP/HSRPのグループ番号を抽出するチェック項目を追加するのは簡単です。
しかしながら、目GREPでMACアドレスを見分けて、グループ番号を確認するのは困難を極め、事故が再発する可能性が高いです。
そこで今回はMACアドレスからグループ番号を抽出するPythonツールを作成してみました。
本記事では、作成したPythonツール(pyparsemactable)の簡単な使い方を説明いたします。
続きを読むHSRPv2(IPv6)のグループ番号とMACアドレス
本記事は「 ルータ冗長プロトコルのVRRP/HSRPのグループ番号をMACアドレスから確認する」の参考文献です。
下表は、HSRPv2(IPv6)のグループ番号とMACアドレスの対応付けを示しています。
続きを読むHSRPv2(IPv4)のグループ番号とMACアドレス
本記事は「 ルータ冗長プロトコルのVRRP/HSRPのグループ番号をMACアドレスから確認する」の参考文献です。
下表は、HSRPv2(IPv4)のグループ番号とMACアドレスの対応付けを示しています。
続きを読むHSRPv1のグループ番号とMACアドレス
本記事は「 ルータ冗長プロトコルのVRRP/HSRPのグループ番号をMACアドレスから確認する」の参考文献です。
下表は、HSRPv1のグループ番号とMACアドレスの対応付けを示しています。
続きを読むVRRPのグループ番号とMACアドレス一覧
本記事は「 ルータ冗長プロトコルのVRRP/HSRPのグループ番号をMACアドレスから確認する」の参考文献です。
下表は、VRRPv2/v3のグループ番号とMACアドレスの対応付けを示しています。
続きを読む【1/2】ルータ冗長プロトコルのVRRP/HSRPのグループ番号をMACアドレスから確認する
- 【1/2】ルータ冗長プロトコルのVRRP/HSRPのグループ番号をMACアドレスから確認する★本記事
- 【2/2】ルータ冗長プロトコルのVRRP/HSRPのグループ番号をMACアドレスから確認するPythonツールを作ってみた
ネットワークエンジニアにお馴染みのルータ冗長プロトコルであるVRRP(Virtual Router Redundancy Protocol)とHSRP(Hot Standby Router Protocol)のグループ番号をMACアドレスから確認する方法を説明します。
同じネットワークセグメントにルータ冗長プロトコルを利用して複数の冗長グループを作った場合、 しばしばグループ番号が重複して通信障害を引き起こしてしまうことがあると思います[^1]。 そしてもれなく障害報告書の出番です。
本記事では、不幸な事故が二度と起こらないように、ルータ冗長プロトコルのグループ番号を事前に使われていないか確認する方法を説明します。
続きを読むネットワーク監視表示灯(パトライト)をHTTP APIから操作してみた
ネットワーク監視表示灯(通称:パトライト)をHTTP APIで操作してみました。
はじめに
ネットワーク監視表示灯(以下、パトライト)は、SNMPやSOCKET通信の他に、HTTPコマンド(HTTP API)に対応しています。 今回はHTTPコマンドを利用して、パトライトを操作してみました。
SNMPやSOCKET通信(シェル)からパトライトを操作する方法は下記を参考にしてみてください。
動作環境
今回は以下のWindowsとLinuxの環境で動作を試してみたした。
- Windows 10 Pro バージョン1909
- Linux Ubuntu 18.04(Win10のWSL上で動作)
- ネットワーク監視灯:NHシリーズ「NHP-3FB1」 ファームウェアバージョン1.46
パトライトの準備
ヤフオクで入手したパトライトのNHシリーズ「NHP-3FB1」は、HTTPコマンドをサポートしています。 古いファームウェアではHTTPコマンドがサポートされていないため、最新のファームウェアバージョン1.46にアップグレードしてみてください。
ファームウェアアップグレードに必要な取扱説明書やファームウェアのダウンロードは下記を参照してください。
HTTPコマンド制御機能の設定
Webブラウザからパトライトの管理画面にログインし、HTTPコマンド制御機能を有効にします。 デフォルトで機能が有効になっています。 もし下記の画面のように「HTTPコマンド制御機能」がない場合は、HTTPコマンドがサポートしていない、 ファームウェアバージョンをお使いの可能性があります。 ファームウェアアップグレードしてください。
- セットアップ項目>システム設定
- HTTPコマンド制御機能:有効
HTTPコマンド
HTTP GETリクエストで、表示灯の状態を指定できます。 リクエストURIと2つのパラメータは下記のとおりです。
項目 | 内容 |
---|---|
リクエストURI | http://<IPアドレス>/api/control?<パラメータ>=<値> |
IPアドレス | パトライトのIPアドレス |
パラメータ | alert またはclear が指定可能 |
値 | alert の場合、6桁の数字でパトライトの状態を指定。clear の場合1 が固定値。詳細は下図を参照 |
パラメータ:alert |
表示灯の状態を指定する |
パラメータ:clear |
表示灯の状態をクリア(リセット)する |
下図にHTTPコマンドの詳細を示します。
PowerShellでパトライトを操作
Windowsの場合、
PowerShellからInvoke-RestMethod
を利用することで、HTTPコマンドを発行できます。
Invoke-RestMethod
の-Uri
に表示灯の状態を指定したURIを指定することで、パトライトを操作できます。
# 表示灯の赤を点灯 > Invoke-RestMethod -Uri "http://192.168.11.101/api/control?alert=199999" Success. # 表示灯の赤を点滅(パターン1) > Invoke-RestMethod -Uri "http://192.168.11.101/api/control?alert=299999" Success. # 表示灯の赤を点滅(パターン2) > Invoke-RestMethod -Uri "http://192.168.11.101/api/control?alert=399999" Success. # 表示灯の状態をクリア(リセット) > Invoke-RestMethod -Uri "http://192.168.11.101/api/control?clear=1" Success.
curlコマンドでパトライトを操作
LinuxやMacの場合、
cURL
コマンドを利用することで、HTTPコマンドを発行できます。
curl
コマンドの引数に表示灯の状態を指定したURIを指定することで、パトライトを操作できます。
# 表示灯の赤を点灯 $ curl http://192.168.11.101/api/control\?alert\=199999 Success.% # 表示灯の赤を点滅(パターン1) $ curl http://192.168.11.101/api/control\?alert\=299999 Success.% # 表示灯の赤を点滅(パターン2) $ curl http://192.168.11.101/api/control\?alert\=399999 Success.% # 表示灯の状態をクリア(リセット) curl http://192.168.11.101/api/control\?clear\=1 Success.%
表示灯の操作結果
表示灯の操作で、下記の状態になるように指定した結果は下記のとおりです。
- 赤:点滅パターン1
- 黄:点滅パターン2
- 緑:点灯
# # 赤点滅パターン1、黄点滅パターン2、緑点灯、その他消灯 $ curl http://192.168.11.101/api/control\?alert\=231000 Success.%
パトライトをSNMPで操作して点滅させてみました🚨 pic.twitter.com/AH02c7ujAS
— kooshin (@kooshin) 2020年2月9日
おわりに
HTTP APIでパトライトを操作できるので、各種ツールと連携しやすいと思います。
パトライトがほしいと思った方は、是非ご自宅に!