全ポートの状態一括表示

本設定例では、ルーターのL2MSマスター機能・Luaスクリプト機能と、L2スイッチのL2MSスレーブ機能を使用しています。

ルーターの対応機種は、RTX1210RTX1200(Rev.10.01.16以降)、RTX810NVR700WNVR510NVR500FWX120です。

L2スイッチの対応機種は、SWX2300-8GSWX2300-16GSWX2300-24GSWX2200-8GSWX2200-24GSWX2200-8PoESWX2100-8GSWX2100-16GSWX2100-24GSWX2100-5PoESWX2100-10PoEです。

L2MSマスター(ルーター)とL2MSスレーブ(L2スイッチ)の対応リビジョンは、 技術資料「L2MS」でご確認ください。

図 構成図

スイッチのポート使用状況を確認する設定例です。
Luaスクリプトを使用して、スイッチのポートごとのリンクアップ/ダウン状態を取得し、ルーターのコンソールに出力します。
本設定例で使用するLuaスクリプトは、リンクの状態を表示した後に自動的に終了します。そのため、ポートの使用状況を確認するたびに実行する必要があります。
なお、Luaスクリプトを実行する際は、luaコマンドを使用します。Luaスクリプトファイル名に続けて、スイッチのMACアドレスまたはスイッチまでの接続ポートの経路情報を指定してください。

実行例:lua /swx_lua_status_ports.lua 00:a0:de:aa:bb:cc

対応機種のうち、設定例を掲載している機種は、以下のとおりです。

機種 掲載内容 備考
ルーター RTX1210 RTX1200 RTX810 NVR700W NVR510 NVR500 FWX120 コマンド設定例
Luaスクリプト例
L2MSマスター機能、
Luaスクリプト機能
L2スイッチ SWX2200-8G SWX2200-24G SWX2200-8PoE SWX2100-8G SWX2100-16G SWX2100-24G SWX2100-5PoE SWX2100-10PoE L2MSスレーブ機能

ルーターの設定例

LANインターフェースの設定
(LAN1ポートを使用)
ip lan1 address 192.168.100.1/24
DHCPの設定 dhcp service server
dhcp server rfc2131 compliant except remain-silent
dhcp scope 1 192.168.100.2-192.168.100.191/24
L2MSの設定 switch control use lan1 on

Luaスクリプト例

スイッチの機種を取得する関数

function switch_model_read(sw)
  local rtn, str
  local cmd = "switch control function get model-name " .. sw
  rtn, str = rt.command(cmd)
  if (not rtn) or (not str) then
    str = string.format("failed to get model name : %s¥r¥n", sw)
  end
  return rtn, str
end

メインルーチン

local rtn, str, port_num, len
sw = arg[1]

-- Which model ?
rtn, str = switch_model_read(sw)
if (not rtn) or (not str) then
  if (str) then
    print(str)
  end
  return
end

if (string.find(str, "SWX2200-8G", 1, true)) then
  port_num = 8
elseif (string.find(str, "SWX2200-24G", 1, true)) then
  port_num = 24
elseif (string.find(str, "SWX2200-8PoE", 1, true)) then
  port_num = 8
elseif (string.find(str, "SWX2100-8G", 1, true)) then
  port_num = 8
elseif (string.find(str, "SWX2100-16G", 1, true)) then
  port_num = 16
elseif (string.find(str, "SWX2100-24G", 1, true)) then
  port_num = 24
elseif (string.find(str, "SWX2100-5PoE", 1, true)) then
  port_num = 5
elseif (string.find(str, "SWX2100-10PoE", 1, true)) then
  port_num = 10
else
  print(str)
  return
end

-- check the port status
for i = 1, port_num do
  local cmd = string.format("switch control function get status-port-speed "..
                   "%d %s", i, sw)
  rtn, str = rt.command(cmd)
  if (not rtn) or (not str) then
    return
  end
  len = string.len(str) - 2
  str = string.sub(str, 1, len)
  print("port " .. i .. " : " .. str)
end

【ご注意】
本設定例は、設定の参考例を示したもので、動作を保証するものではございません。
ご利用いただく際には、十分に評価・検証を実施してください。