VRRP連動スイッチ制御

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

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

L2スイッチの対応機種は、SWX2200-8GSWX2200-24GSWX2200-8PoEです。

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

図 Luaスクリプト構成図1 図 Luaスクリプト構成図2 図 Luaスクリプト構成図2

VRRP機能によるバックアップ回線への切り替えと連動して、スイッチ連携機能とDHCPサーバー機能の切り替えを行う構成です。
ルーター(1)のWAN回線が不通となった場合には、ルーター(2)のバックアップ回線に切り替えます。Luaスクリプトを使用してそれぞれのルーターを監視し、WAN回線の切り替え時に、ルーター(1)のSWX2200のスイッチ連携機能とDHCPサーバー機能をOFF、ルーター(2)のスイッチ連携機能とDHCPサーバー機能をONにします。

本設定例では、ルーター(1)とルーター(2)におけるL2MSの設定はそれぞれ同じ設定にしてください。本設定例では、一例として指定ポートを使用可能とする switch control function set port-use コマンドを使用しています。

Luaスクリプトは、ルーター(1)とルーター(2)のそれぞれで実行してください。

光回線に接続するためには、別途ONUが必要です。

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

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

ルーター(1)の設定例

LANインターフェースの設定
(LAN1ポートを使用)
ip lan1 address 192.168.100.252/24
ip lan1 vrrp 1 192.168.100.254 priority=200
ip lan1 vrrp shutdown trigger 1 pp 1
WANインターフェースの設定
(LAN2ポートを使用)
pp select 1
pp always-on on
pppoe use lan2
pppoe auto disconnect off
pp auth accept pap chap
pp auth myname (ISP1に接続するID) (ISP1に接続するパスワード)
ppp lcp mru on 1454
ppp ipcp ipaddress on
ppp ipcp msext on
ppp ccp type none
ppp ipv6cp use off
ip pp mtu 1454
ip pp nat descriptor 1
pp enable 1
ip route default gateway pp 1
NATの設定 nat descriptor type 1 masquerade
DHCPの設定 dhcp service server
dhcp server rfc2131 compliant except remain-silent
dhcp scope 1 192.168.100.2-192.168.100.100/24 gateway 192.168.100.254
DNSの設定 dns server (ISPより指定されたDNSサーバーのIPアドレス)
dns private address spoof on
フィルターの設定 ip filter source-route on
ip filter directed-broadcast on
ip filter 1010 reject * * udp,tcp 135 *
ip filter 1011 reject * * udp,tcp * 135
ip filter 1012 reject * * udp,tcp netbios_ns-netbios_ssn *
ip filter 1013 reject * * udp,tcp * netbios_ns-netbios_ssn
ip filter 1014 reject * * udp,tcp 445 *
ip filter 1015 reject * * udp,tcp * 445
ip filter 1020 reject 192.168.100.0/24 *
ip filter 1030 pass * 192.168.100.0/24 icmp
ip filter 2000 reject * *
ip filter 3000 pass * *
ip filter dynamic 100 * * ftp
ip filter dynamic 101 * * www
ip filter dynamic 102 * * domain
ip filter dynamic 103 * * smtp
ip filter dynamic 104 * * pop3
ip filter dynamic 105 * * netmeeting
ip filter dynamic 106 * * tcp
ip filter dynamic 107 * * udp
ip pp secure filter in 1020 1030 2000
ip pp secure filter out 1010 1011 1012 1013 1014 1015 3000 dynamic 100 101 102 103 104 105 106 107
L2MSの設定 switch select lan1:1
switch control function set port-use 3 on # 注釈1
switch control function set port-use 4 on # 注釈1
switch control use lan1 on
Luaスクリプトのスケジュール設定 schedule at 1 startup * lua (Luaスクリプトファイル名)

ルーター(2)の設定例

LANインターフェースの設定
(LAN1ポートを使用)
ip lan1 address 192.168.100.253/24
ip lan1 vrrp 1 192.168.100.254
ip lan1 vrrp shutdown trigger 1 pp 1
WANインターフェースの設定
(LAN2ポートを使用)
pp select 1
pp always-on on
pppoe use lan2
pppoe auto disconnect off
pp auth accept pap chap
pp auth myname (ISP2に接続するID) (ISP2に接続するパスワード)
ppp lcp mru on 1438
ppp ipcp ipaddress on
ppp ipcp msext on
ppp ccp type none
ppp ipv6cp use off
ip pp mtu 1438
ip pp nat descriptor 1
pp enable 1
ip route default gateway pp 1
NATの設定 nat descriptor type 1 masquerade
DHCPの設定 dhcp server rfc2131 compliant except remain-silent
dhcp scope 1 192.168.100.2-192.168.100.100/24 gateway 192.168.100.254
DNSの設定 dns server (ISPより指定されたDNSサーバーのIPアドレス)
dns private address spoof on
フィルターの設定 ip filter source-route on
ip filter directed-broadcast on
ip filter 1010 reject * * udp,tcp 135 *
ip filter 1011 reject * * udp,tcp * 135
ip filter 1012 reject * * udp,tcp netbios_ns-netbios_ssn *
ip filter 1013 reject * * udp,tcp * netbios_ns-netbios_ssn
ip filter 1014 reject * * udp,tcp 445 *
ip filter 1015 reject * * udp,tcp * 445
ip filter 1020 reject 192.168.100.0/24 *
ip filter 1030 pass * 192.168.100.0/24 icmp
ip filter 2000 reject * *
ip filter 3000 pass * *
ip filter dynamic 100 * * ftp
ip filter dynamic 101 * * www
ip filter dynamic 102 * * domain
ip filter dynamic 103 * * smtp
ip filter dynamic 104 * * pop3
ip filter dynamic 105 * * netmeeting
ip filter dynamic 106 * * tcp
ip filter dynamic 107 * * udp
pp select 1
ip pp secure filter in 1020 1030 2000
ip pp secure filter out 1010 1011 1012 1013 1014 1015 3000 dynamic 100 101 102 103 104 105 106 107
pp enable 1
L2MSの設定 switch select lan1:1
switch control function set port-use 3 on # 注釈1
switch control function set port-use 4 on # 注釈1
switch control use lan1 on
Luaスクリプトのスケジュール設定 schedule at 1 startup * lua (Luaスクリプトファイル名)

Luaスクリプト例

設定値 -- 出力する SYSLOG のレベル(info, debug, notice)
log_level = "(SYSLOGレベル)"
グローバル変数の設定 -- VRRPを利用するLANインターフェースの番号
lan_num = 1
-- 関連コマンド文字列
cmd_swctl = "switch control use lan"
cmd_dhcp = "dhcp service server"
VRRPの状態を取得する関数

function get_vrrp_status(num)
 local rtn, str
 local master = false
 local cmd = "show status vrrp lan"

 rtn, str = rt.command(cmd .. tostring(num))
 if rtn and str then
  if str:match(": Master") then
    master = true
  end
 end

 return rtn, master
end

Masterの役割設定を追加 or 削除する関数

function set_role(num, master)
 if master then
  rt.command(cmd_swctl .. tostring(num) .. " on")
  rt.command(cmd_dhcp)
 else
  rt.command("no " .. cmd_swctl .. tostring(num))
  rt.command("no " .. cmd_dhcp)
 end
end

メインルーチン

local rtn, str, array, master, state

-- 現在の状態を取得する
while true do
 rtn, master = get_vrrp_status(lan_num)
 if rtn then
  if master then
   set_role(lan_num, master)
  end
  break
 end
end

-- VRRP状態遷移の監視を開始する
--   Masterになった or Masterでなくなった場合は
--   役割設定を変更する
while true do
 rtn, array = rt.syslogwatch("%[VRRP ")
 if rtn and array then
  if array[1]:match(" -> ") then
   rtn, state = get_vrrp_status(lan_num)
   if rtn then
    if state ~= master then
     master = state
     set_role(lan_num, master)
    end
   end
  end
 end
end

[注釈の説明]

注釈1:
L2MSの設定の一例として、ポート3, 4を使用可能としています。

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