NEC IXのVRRP設定

スポンサーリンク

NEC IX ルータにおけるVRRPの設定方法を紹介します。VRRPはデフォルトゲートウェイを冗長化する技術です。データセンター内のハイエンド機では2台の機器を1台に見せかける技術が主流なので近年は使用頻度が減りつつありますが、ローエンド機器やWAN接続部分ではまだまだ現役の技術かと思われます。

設定まとめ

コマンド一覧

VRRP等に関するコマンド一覧は以下の通りです。

Router(config)# vrrp enable 
Router(config)# interface <interface>
Router(config-GigaEthernetX.Y)# vrrp <VRID> ip <virtual_address>
Router(config-GigaEthernetX.Y)# vrrp <VRID> preempt
Router(config-GigaEthernetX.Y)# vrrp <VRID> priority <priority>
Router(config-GigaEthernetX.Y)# vrrp <VRID> timers advertisement <sec> [delay <sec>]
Router(config-GigaEthernetX.Y)# vrrp <VRID> timers delay <sec>
Router(config-GigaEthernetX.Y)# vrrp <VRID> authentication <text>
Router(config-GigaEthernetX.Y)# vrrp ip virtual-host 

Router(config)# watch-group <group-name> [<seq>]
Router(config-watch-<name>-<seq>)# event <seq> <event>
Router(config-watch-<name>-<seq>)# action <seq> <action>

Router(config)# network-monitor <group-name>

VRRP

VRRPを有効にする最小限設定は以下の通りです。

Router(config)# vrrp enable 
Router(config)# interface <interface>
Router(config-GigaEthernetX.Y)# vrrp <VRID> ip <virtual_address>

VRRPでチューニング可能なパラメタには以下のようなものがあります。

Router(config)# interface <interface>
Router(config-GigaEthernetX.Y)# vrrp <VRID> preempt
Router(config-GigaEthernetX.Y)# vrrp <VRID> priority <priority>
Router(config-GigaEthernetX.Y)# vrrp <VRID> timers advertisement <sec> [delay <sec>]
Router(config-GigaEthernetX.Y)# vrrp <VRID> timers delay <sec>
Router(config-GigaEthernetX.Y)# vrrp <VRID> authentication <text>

NEC IX固有の設定ですが、VRRPで付与されたvirtual addressがpingなどに応答するようにするには、以下のvirtual-hostコマンドが必要になります。

Router(config)# interface <interface>
Router(config-GigaEthernetX.Y)# vrrp ip virtual-host 

Network Monitor

多くのネットワーク機器は、interface trackingやobject trackingなどをVRRPと併用して、WAN側の障害やリンクダウンを伴わない障害に備えます。しかし、NEC IXはinterface trackingやobject trackingの機能は備えていません。

NEC IXでWAN側の障害やリンクダウンを伴わない障害に対応できるVRRPを実装するには、Watch Group, Network Monitorと呼ばれる機能を使用します。Cisco IOSのEEM(Embedded Event Manager)に近い機能になります。

以下のような構文でwatch-groupを定義します。「どんなイベントが起きたら」「どんなアクションをするか」の定義です。

Router(config)# watch-group <group-name> [<seq>]
Router(config-watch-<name>-<seq>)# event <seq> <event>
Router(config-watch-<name>-<seq>)# action <seq> <action>


定義したwatch-groupによる監視を開始するには、以下のようなnetwork-monitorコマンドを使用します。


Router(config)# network-monitor <group-name>


以上の説明ではイメージが湧きづらいと思いますので、設定例を1つ示します。以下は8.8.8.8へのping監視がNGとなった場合にVRRPをshutdownさせる設定です。このような設定にしておけばリンクダウンを伴わないWAN障害であったとしても、VRRPを切り替える事ができます。


watch-group track_google 10
  event 10 ip unreach-host 8.8.8.8 GigaEthernet0.0
  action 10 ip shutdown-vrrp 1
!
network-monitor track_google enable


<h2>動作確認</h2>

<h3>動作確認の構成</h3>

以下の環境で動作確認を行います。


            +-----------------+ 
       eth0 |    VyOS 1.4     | eth1
        +---+    Internet     +---+
        | .1|Lo:200.0.0.200/32|.1 |
        |   +-----------------+   |
        | 200.0.10.0/24           | 200.0.20.0/24
        |                         |
   lan2 | .10                lan2 | .20
+-------+----------+    +---------+--------+
|    NEC IX 2015   |    |    NEC IX 2015   |
|        R1        |    |        R2        |
+-------+----------+    +---------+--------+
   lan1 | .1                 lan1 | .2
        | vrrp(.254)              | vrrp(.254)
        +------------+------------+
                     | 192.168.1.0/24
                     | 
              ens224 | .100
             +-------+----------+
             |  RockyLinux 8.5  |
             |     host100      |
             +------------------+

初期設定

IX2015の初期設定は以下の通りとします。設定はIPアドレスとインターネットに接続するためのNATしか投入していません。

R1 : NEC IX 2015
! NEC Portable Internetwork Core Operating System Software
! IX Series IX2105 (magellan-sec) Software, Version 8.10.11, RELEASE SOFTWARE
! Compiled Aug 02-Fri-2013 13:57:45 JST #2
! Current time Nov 21-Sun-2021 20:29:53 JST
!
!
hostname R1
timezone +09 00
!
!
!
username admin password hash 0C34240482 administrator
!
!
!
!
!
!
logging buffered 131072
logging subsystem all warn
logging timestamp datetime
!       
!
ip route default 200.0.10.1
!
!
!
!
!
!
!
!
!
!
telnet-server ip enable
!
!
!
!
!
!
!
!
!
device GigaEthernet0
!
device GigaEthernet1
!
interface GigaEthernet0.0
  ip address 200.0.10.10/24
  ip napt enable
  no shutdown
!
interface GigaEthernet1.0
  ip address 192.168.10.1/24
  no shutdown
!
interface Loopback0.0
  no ip address
!
interface Null0.0
  no ip address
R2 : NEC IX 2015
! NEC Portable Internetwork Core Operating System Software
! IX Series IX2105 (magellan-sec) Software, Version 10.2.34, RELEASE SOFTWARE
! Compiled Mar 26-Fri-2021 16:04:41 JST #2
! Current time Nov 21-Sun-2021 20:49:33 JST
!
hostname R2
timezone +09 00
!
logging buffered 131072
logging subsystem all warn
logging timestamp datetime
!
username admin password hash 63cA632c6fBB8D099804ed6eBc758b@ administrator
!
!
ip ufs-cache enable
ip route default 200.0.20.1
ip dhcp enable
!
!
!
!
!
!       
!
!
!
telnet-server ip enable
!
!
!
device GigaEthernet0
!
device GigaEthernet1
!
interface GigaEthernet0.0
  ip address 200.0.20.20/24
  ip napt enable
  no shutdown
!
interface GigaEthernet1.0
  ip address 192.168.10.2/24
  no shutdown
!
interface Loopback0.0
  no ip address
!       
interface Null0.0
  no ip address

動作確認 (1) VRRPによる仮想IPアドレス設定

R1とR2の両方にVRRPを設定し、R1とR2で仮想IPアドレスを設定します。なお、priorityが大きい方が優先されますので、以下設定例の場合はR1に仮想IPアドレスが付与されます。

[R1:IX2015]
vrrp enable 
!
interface GigaEthernet1.0
  vrrp 1 ip 192.168.10.254
  vrrp 1 priority 120
  vrrp 1 ip virtual-host 
[R2:IX2015]
vrrp enable 
!
interface GigaEthernet1.0
  vrrp 1 ip 192.168.10.254
  vrrp 1 priority 110
  vrrp 1 ip virtual-host 

VRRPの状態は"show vrrp"で確認する事ができます。detailを付与したコマンド"show vrrp detail"は、VRRPの状態遷移などより詳細な情報を確認する事ができます。

[R1:IX2015]
R1(config)# show vrrp 
Interface            VRID Pri Pre State      Master addr
GigaEthernet1.0         1 120 P   master     192.168.10.1     
R1(config)# 
R1(config)# 
R1(config)# show vrrp detail 
Virtual router group: 1
  Virtual router status
    State: master
    Virtual router IP address: 192.168.10.254
    Master IP address: 192.168.10.1
    MAC address: 00:00:5e:00:01:01
    Priority: 120
  History
    time                   state
    2021/11/21 20:36:11    initialize
    2021/11/21 20:36:11    initialize > backup
    2021/11/21 20:36:11    priority 100 > 120
    2021/11/21 20:36:15    backup > master
  Statistics
    Become master: 1
    Advertise
      3 received, 106 sent
    Priority zero
      0 received, 0 sent
    Errors
      36 advertise interval errors, 0 authentication failures
      0 address list errors, 0 invalid authentication type
      0 authentication type mismatch, 0 length errors
      0 invalid type packets, 0 IP TTL errors
R1(config)# 
[R2:IX2015]
R2(config)# show vrrp 
Interface            VRID Pri Pre State      Master addr
GigaEthernet1.0         1 110 P   backup     192.168.10.1     
R2(config)# 

念の為、host010からNEC IXを経由して、インターネットを擬似したVyOSの200.0.0.200まで疎通可能である事を確認します。

[host100:RockyLinus8.5]
[root@host100 ~]# ping -c 3 200.0.0.200
PING 200.0.0.200 (200.0.0.200) 56(84) bytes of data.
64 bytes from 200.0.0.200: icmp_seq=1 ttl=63 time=0.755 ms
64 bytes from 200.0.0.200: icmp_seq=2 ttl=63 time=0.725 ms
64 bytes from 200.0.0.200: icmp_seq=3 ttl=63 time=0.775 ms

--- 200.0.0.200 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2073ms
rtt min/avg/max/mdev = 0.725/0.751/0.775/0.037 ms

動作確認 (2) リンクダウン障害対策

VRRPのデフォルト設定は筐体障害にしか耐えられず、WAN側のインターフェースダウンを検出する事はありません。多くのルータではVRRPでインターフェースダウンを検出する機能はinterface trackingと呼ばれていますが、NEC IXにはinterface trackingの機能を備えていません。

NEC IXでinterface tracking相当の挙動を再現するには、network-monitorと呼ばれるイベントベースの処理を定義する方法を使用します。network-monitorはCisco IOSで言うEEM(Event Manager Applet)相当の機能です。

R1ならば、WAN側のセグメントである200.0.10.0/24がルーティングテーブルに載らないイベントを契機にVRRPをshutdownさせます。

[R1:IX2015]
watch-group track_interface 10
  event 10 ip unreach-route 200.0.10.0/24 
  action 10 ip shutdown-vrrp 1
!
network-monitor track_interface enable

R2にもほぼ同様の設定を入れます。

[R2:IX2015]
watch-group track_interface 10
  event 10 ip unreach-route 200.0.20.0/24 
  action 10 ip shutdown-vrrp 1
!
network-monitor track_interface enable

障害を再現させる前に、正常系のshowコマンドの出力をみましょう。正常時はActionのStatusが"restoration"と表示されています。これはVRRP shutdownをしていない事を意味します。

[R1:IX2015]
R1(config)# show watch-group        
Watch-group status summary
Total 1, normal 1, stand 0
Group name                      Sequence Status Variance   Wait
track_interface                 10       normal 0          -   
R1(config)# 
R1(config)# 
R1(config)# show watch-group detail 
Watch-group 'track_interface' is enabled
  Sequence 10
    Status: normal
    Profile variance counts: 0
    Profile restore counts: 0
    Suppress variance counts: 0
    Suppress restoration counts: 0
    Event:
      Event 10 ip unreach-route 200.0.10.0/24
        Status: normal
        Event variance counts: 0
        Event restore counts: 0
    Action:
      Action 10 ip shutdown-vrrp 1
        Status: restoration
R1(config)# 

R1のWAN側GigaEthernet0.0で障害を発生させます。

[R1:IX2015]
interface GigaEthernet0.0
  shutdown 

show watch-group detailコマンドの出力を確認します。ActionのStatusが"executing"から"executing"に変わりました。これはVRRP shutdownが実行された事を意味します。

[R1:IX2015]
R1(config)# show watch-group 
Watch-group status summary
Total 1, normal 0, stand 1
Group name                      Sequence Status Variance   Wait
track_interface                 10       stand  1          -   
R1(config)# 
R1(config)# 
R1(config)# show watch-group detail 
Watch-group 'track_interface' is enabled
  Sequence 10
    Status: stand
    Elapsed variance time: 0:00:09
    Profile variance counts: 1
    Profile restore counts: 0
    Suppress variance counts: 0
    Suppress restoration counts: 0
    Profile history
      Time                Event      Status
      2021/11/22 00:06:17 variance   stand  
    Event:
      Event 10 ip unreach-route 200.0.10.0/24
        Status: stand
        Elapsed variance time: 0:00:09
        Event variance counts: 1
        Event restore counts: 0
    Event history
      Sequence    Time                Event
      10          2021/11/22 00:06:17 variance
    Action:
      Action 10 ip shutdown-vrrp 1
        Status: executing
R1(config)# 

R1のVRRPがmasterからinitializeに変わった事を確認します。

[R1:IX2015]
R1(config)# show vrrp detail 
Virtual router group: 1
  Virtual router status
    State: initialize
    Virtual router IP address: 192.168.10.254
    Master IP address: 0.0.0.0
    MAC address: 00:00:5e:00:01:01
    Priority: 120
  History
    time                   state
    2021/11/21 23:58:07    master > initialize
    2021/11/21 23:58:27    initialize > backup
    2021/11/21 23:58:30    backup > master
    2021/11/21 23:58:37    master > initialize
    2021/11/21 23:58:52    initialize > backup
    2021/11/21 23:58:55    backup > master
    2021/11/22 00:02:32    master > initialize
    2021/11/22 00:03:07    initialize > backup
    2021/11/22 00:03:11    backup > master
    2021/11/22 00:06:17    master > initialize
  Statistics
    Become master: 9
    Advertise
      31 received, 5873 sent
    Priority zero
      0 received, 9 sent
    Errors
      1945 advertise interval errors, 0 authentication failures
      0 address list errors, 0 invalid authentication type
      0 authentication type mismatch, 0 length errors
      0 invalid type packets, 0 IP TTL errors
R1(config)# 

動作確認 (3) リンクダウンを伴わない障害対策

前述の設定例は、リンクダウン状態で切り替わる設定であり、リンクダウンを伴わないような対向装置障害では切り替わりません。このような障害に対応するには、ping監視と組み合わせる必要があります。

Cisco IOSなどではIP SLAと呼ばれる設定で容易に実装できますが、NEC IXは前述の設定例と同様にnetwork-monitorを使用しなければならず、やや実装のハードルが高めです。

R1, R2それぞれに対向機器を監視する設定を入れます。対向機器が監視NGとなれば、shutdown-vrrpのアクションが実行されます。

[R1:IX2015]
interface GigaEthernet0.0
  no shutdown 
!
no watch-group track_interface
no network-monitor track_interface enable
!
watch-group track_nexthop 10
  event 10 ip unreach-host 200.0.10.1 GigaEthernet0.0
  action 10 ip shutdown-vrrp 1
!
network-monitor track_nexthop enable
[R2:IX2015]
no watch-group track_interface
no network-monitor track_interface enable
!
watch-group track_nexthop 10
  event 10 ip unreach-host 200.0.20.1 GigaEthernet0.0
  action 10 ip shutdown-vrrp 1
!
network-monitor track_nexthop enable

この状態で、Internet側でリンクダウンを伴わない障害を再現してみましょう。VyOSのdisableコマンドでリンクダウンを伴わない障害を再現します。

この動作確認方法が可能なのは仮想環境のみです。物理的な環境でshutdownコマンドやdisableコマンドを使用すると、対向機器はリンクダウンを検出できます。物理環境でリンクダウンを伴わない障害を再現するのは工夫が必要です。物理環境でリンクダウンを伴わない障害を再現させたいならば「直接接続ではなく途中にハブと挟む」等の工夫をしましょう。

[Internet:VyOS1.4]
admin@vyos# set interfaces ethernet eth0 disable
[edit]
admin@vyos# commit
[edit]
admin@vyos# 

障害を検出し、Action欄が"executing"と表示される事を確認します。

[R1:IX2015]
R1(config)# show watch-group 
Watch-group status summary
Total 1, normal 1, stand 0
Group name                      Sequence Status Variance   Wait
track_nexthop                   10       normal 0          -   
R1(config)# 
R1(config)# 
R1(config)# show watch-group detail 
Watch-group 'track_nexthop' is enabled
  Sequence 10
    Status: stand
    Elapsed variance time: 0:00:06
    Profile variance counts: 1
    Profile restore counts: 0
    Suppress variance counts: 0
    Suppress restoration counts: 0
    Profile history
      Time                Event      Status
      2021/11/22 00:13:09 variance   stand  
    Event:
      Event 10 ip unreach-host 200.0.10.1 GigaEthernet0.0
        Status: stand
        Elapsed variance time: 0:00:06
        Event variance counts: 1
        Event restore counts: 0
        Probe success counts: 10
        Probe failure counts: 7
        Probe history
          Time                Result  Round trip
          2021/11/22 00:12:27 success       0.431 ms
          2021/11/22 00:12:32 success       0.365 ms
          2021/11/22 00:12:37 success       0.410 ms
          2021/11/22 00:12:44 failure        -
          2021/11/22 00:12:49 failure        -
          2021/11/22 00:12:54 failure        -
          2021/11/22 00:12:59 failure        -
          2021/11/22 00:13:04 failure        -
          2021/11/22 00:13:09 failure        -
          2021/11/22 00:13:14 failure        -
          round-trip (ms)  min/avg/max = 0.365/0.402/0.431
    Event history
      Sequence    Time                Event
      10          2021/11/22 00:13:09 variance
    Action:
      Action 10 ip shutdown-vrrp 1
        Status: executing
R1(config)#

R1のVRRPがmasterからinitializeに変わった事を確認します。

[R1:IX2015]
R1(config)# show vrrp 
Interface            VRID Pri Pre State      Master addr
GigaEthernet1.0         1 120 P   initialize 0.0.0.0          
R1(config)# 
R1(config)# 
R1(config)# show vrrp detail 
Virtual router group: 1
  Virtual router status
    State: initialize
    Virtual router IP address: 192.168.10.254
    Master IP address: 0.0.0.0
    MAC address: 00:00:5e:00:01:01
    Priority: 120
  History
    time                   state
    2021/11/21 23:58:37    master > initialize
    2021/11/21 23:58:52    initialize > backup
    2021/11/21 23:58:55    backup > master
    2021/11/22 00:02:32    master > initialize
    2021/11/22 00:03:07    initialize > backup
    2021/11/22 00:03:11    backup > master
    2021/11/22 00:06:17    master > initialize
    2021/11/22 00:11:33    initialize > backup
    2021/11/22 00:11:36    backup > master
    2021/11/22 00:13:09    master > initialize
  Statistics
    Become master: 10
    Advertise
      34 received, 5967 sent
    Priority zero
      0 received, 10 sent
    Errors
      1977 advertise interval errors, 0 authentication failures
      0 address list errors, 0 invalid authentication type
      0 authentication type mismatch, 0 length errors
      0 invalid type packets, 0 IP TTL errors
R1(config)# 
タイトルとURLをコピーしました