管理番号:YMHRT-4561
(最終更新日: 2023/7/26)
Luaスクリプトを導入する一連の流れをサンプルのLuaスクリプトを使用して説明します。
1.LuaスクリプトをホームページからPCにダウンロードする
本導入手順の説明では、ルーターの設定は初期状態とします。
説明に使用するサンプルのLuaスクリプトは、ルーターのDHCPサーバー機能が動作していることが必要です。
サンプルのLuaスクリプトでは、次の処理を行います。
1-1.LuaスクリプトをホームページからPCにダウンロードします。
サンプルのLuaスクリプト
1-2.保存を選択し、LuaスクリプトをPCに保存します。
1-3.必要に応じてLuaスクリプトに記述されている設定値を変更します。
本導入手順では設定値を変更しません。
各スクリプトの★がついている設定値は、変更することができます。 必要に応じて、メモ帳などのテキストエディターを使用してLuaスクリプトを開き、設定値を書き換えて保存します。 |
ホームページからPCにダウンロードして保存したLuaスクリプトを、ルーターにコピーします。
ファイルをPCからルーターにコピーするために、USBメモリを使用してコンソールコマンドを利用する方法を説明します。
この方法の他に、TFTPを使用してPCからルーターにファイルをコピーすることもできます。 そちらの方法については、参考資料をご参照ください。 技術資料「RTFS」-「詳細」-「tftpを用いたファイル転送」 |
2-1.PCにUSBメモリを接続して、ダウンロードしたLuaスクリプトをUSBメモリにコピーします。
2-2.USBメモリをPCから取り外し、ルーターに接続します。
ルーターのUSBランプが点灯します。
2-3.ルーターコンソールを開きます。
[解説] ルーターコンソールはシリアルケーブルやtelnetで接続して使用します。 使用方法については取扱説明書をご参照ください。 |
2-4.管理者権限でログインし、コマンドでルーターにコピーします。
copyコマンドを使用します
copy (コピー元のファイル) (コピー先のファイル)
ファイルを指定するパスとして相対パスは利用できません。絶対パスを使用してください。
USBメモリのルートディレクトリーからルーターのルートディレクトリーにLuaスクリプトをコピーする場合:
[ルーターコンソール] # copy usb1:/dhcp_log_watch.lua /dhcp_log_watch.lua # |
[解説] copyコマンドの詳細はこちらをご参照ください。 ファイル名を変更する場合は適宜合わせてください。 USBメモリの代わりにmicroSDメモリカードを使用することもできます。 microSDメモリカードを使用する場合は「usb1:」に代えて「sd1:」とします。 |
2-5.Luaスクリプトがルーターに正しくコピーされたことをコマンドで確認します。
show file listコマンドを使用します。
[ルーターコンソール] # show file list / 2011/03/22 17:46:46 2033 dhcp_log_watch.lua # |
[解説] show file listコマンドの詳細はこちらをご参照ください。 |
3-1.コピーしたLuaスクリプトをコマンドで実行します。
luaコマンドを使用します。
lua (Luaスクリプト名)
Luaスクリプト名は絶対パスで指定してください。
ルーターのルートディレクトリーにあるLuaスクリプトを実行する場合:
[ルーターコンソール] # lua /dhcp_log_watch.lua # |
[解説] luaコマンドの詳細はこちらをご参照ください。 ルーターの起動時からLuaスクリプトを実行させておきたい場合は、scheduleコマンドを利用できます。 例:schedule at 1 startup * lua /dhcp_log_watch.lua |
3-2.Luaスクリプトの実行状況を確認します。
show status luaコマンドを使用します。
[ルーターコンソール] [running] [history] |
[解説] Luaスクリプトが正常に実行されていれば、上記のような表示となります。 もし上記の表示と異なる内容が表示されている場合には、次の項目からのLuaスクリプトが実行できないを確認し、問題の解決を行ってください。 show status luaコマンドの詳細はこちらをご参照ください。 |
3-3.Luaスクリプトの動作を確認します。
サンプルのLuaスクリプトは、実行結果をSYSLOGに出力します。
動作を確認するために、SYSLOGを確認します。
[ルーターコンソール] # show log | grep "Host detect" Searching ... 2011/03/24 14:32:19: [Lua] Host detect 2011/03/24 14:32:18: [DHCPD] LAN1(port1) Allocates 192.168.100.3: 00:25:64:68:ee:15 at LAN1 : port 1 |
[解説] 外部メモリへのリダイレクト機能を使うと、実行結果を外部メモリのファイルに出力することができます。 |
以上で導入手順は完了です。
ホームページで掲載している他のLuaスクリプトについても、同じ手順で実行できます。 なお、設定例によって、Luaスクリプト以外にもファイルのコピーが必要な場合があります。 ファイルのコピー方法は、Luaスクリプトのコピー方法と同じです。詳細は各スクリプトの説明をご参照ください。
Luaスクリプトが実行できない、いくつかのパターンを掲載します。
正しく動作していない場合、まずshow logコマンドでluaに関するログを確認してください。
# lua /test.lua # # show log 2011/03/23 15:41:06: lua: cannot open /test.lua: No such file or directory # # |
[解説] 指定したLuaスクリプトファイル名またはディレクトリーが見当たらないためエラーが発生しています。 指定したファイル名およびディレクトリーが正しいことを確認してください。 |
<ルーターコンソール> <Luaスクリプト> |
[解説] 設定値"log_level"の値が間違っているため、エラーが発生しています。 SYSLOGに、Luaスクリプトの82行目の"rt.syslog"の1つ目の値が無効な値のためエラーが発生したことを出力しています。 "log_level"の設定値を確認し、修正してください。 |
[解説] ホームページで掲載しているLuaスクリプトの中には、掲載している「構成」と「設定」でだけ動作するものが含まれています。この場合、LANケーブルの接続ポート番号まで合わせる必要があります。もう一度、設定、構成を確認してください。 |
Luaスクリプト機能の対応機種は、RTX5000、RTX3510、RTX3500、RTX1300、RTX1220、RTX1210、RTX1200(Rev.10.01.16以降)、RTX830、RTX810、NVR700W、NVR510、NVR500、FWX120、vRXです。
本手順で利用したLuaスクリプトを使用する設定例です。
LANネットワークに接続されたホストの利用状況を履歴としてSYSLOGに出力し、管理することができます。DHCPのSYSLOGを監視し、PCが接続されているポート番号をSYSLOGに出力します。
対応機種のうち、設定例を掲載している機種は、以下のとおりです。
機種 | 掲載内容 | 備考 |
---|---|---|
RTX1300 RTX1220 RTX1210 RTX1200 RTX830 RTX810 NVR700W NVR510 NVR500 FWX120 | コマンド設定例 Luaスクリプト例 |
Luaスクリプト機能 |
LANインターフェースの設定 (LAN1ポートを使用) |
ip lan1 address 192.168.100.1/24 |
---|---|
LDHCPの設定 | dhcp service server dhcp server rfc2131 compliant except remain-silent dhcp scope 1 192.168.100.2-192.168.100.191/24 |
設定値 | -- 検出したい SYSLOG の文字列パターン ptn = "%[DHCPD%]" -- MACアドレス検出の文字列パターン mac_ptn = "%x%x:%x%x:%x%x:%x%x:%x%x:%x%x" -- 出力するSYSLOGのレベル(info, debug, notice) log_level = "info" |
---|---|
ホスト検索 | function search_host(mac) rtn, str = rt.command("show status switching-hub macaddress " .. mac) |
メインルーチン | local rtn, str while (true) do |
ご相談・お問い合わせ