LoginSignup
2
2

More than 5 years have passed since last update.

Yamahaルータを利用してパケットループ時に音を鳴らす

Posted at

パケットループを検知・遮断してくれる製品は数あれど、現場の人間に音でお知らせしてくれる製品はそんなに多くないような気がします。

ということで、ヤマハさんのスイッチも検知と遮断はしてくれるものの警報音が出ないわけですが、それならばルータで鳴らしてしまえ。というお話 :)

サンプル構成

[ RTX830 : LAN1 ] --- [SWX2100-5PoE]

仕組みと設定

SyslogのInfoレベルで
[SWCTL] lan1:1(ac:44:f2:xx:xx:xx): PORT1 loop detect
こんなログが出るのでsyslogwatchしてるだけ

スイッチの設定(物理)

ディップスイッチの4番をONにして電源投入!

ヤマハルータの設定

switch control use lan1 on
lua use on
embedded file LoopDetect.lua <<EOF
  CHECK_INTERVAL = 3

  function Beep()
    local bz, err = rt.hw.open("buzzer1")
    bz:tone("B4")
    rt.sleep(1)
    bz:off()
    bz:close()
  end

  function Check_Looppacket(port, hub)
    while true do
      local cmd = string.format("switch control function get status-loopdetect-port %d %s", port, hub)
      local rtn, portstate = rt.command(cmd)
      if (not rtn) then
        break
      end
      if ( portstate:find("normal", 1, true) ) then
        break
      end
      Beep()
      rt.sleep(CHECK_INTERVAL)
    end
  end

  function main()
    local rtn, logcode = rt.syslogwatch("loop detect")
    if (rtn) then
      local hub, port = logcode[1]:match(/\[SWCTL\]\s(.+)\(.+\sPORT(\d+)/)
      Check_Looppacket(port, hub)
    end
  end

  while true do
    main()
  end
EOF

実行コマンド

lua emfs:/LoopDetect.luaで実行
スケジュール登録は
schedule at 1 startup * lua emfs:/LoopDetect.lua
こんな感じで。

最後に

EMFS使いたすぎて わざわざRTX830を選定しましたw
EMFS機能はとても便利ですね。
TFTPでわざわざ送ったりする事も減ります。
あとは対応ルータが増えてくれれば・・・。

ただ、今回の設定だと音が鳴るのはルータなので
知らない人からするとルータが壊れたって思われてしまうのかなぁ。
でも音が小さいからラックとかに入ってると聞こえないだろうナァ。orz

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2