スイッチの操作

$Date: 2018/08/29 17:20:52 $


はじめに

L2MSのスレーブとして動作しているヤマハスイッチに対して、マスターから設定を行ったり動作状態を取得したりすることを「スイッチを操作する」と呼びます。

本文書では、ヤマハルーターをマスターとした際に、コマンドでスイッチを操作する方法やスイッチのコンフィグを保存/復元する方法について解説します。

SWX2300をマスターとした際の、スイッチの操作方法についてはSWX2300の技術資料を参照してください。


用語の定義

用語 説明
マスター(コントローラー) L2MSのスレーブとして動作している、ヤマハネットワーク機器の管理を行う機器
ネットワーク内のヤマハスイッチ、ヤマハ無線APを管理する
スレーブ L2MSのマスターによって管理されるヤマハスイッチ、およびヤマハ無線AP
マスターから設定の確認や変更を行うことができる

従来はL2MSのスレーブの管理を行う機器を「コントローラー」と呼称していましたが、機能を拡張していく中でより相応しい名称「マスター」に変更しました。


コマンドでスイッチを操作する

コマンドの概要

スイッチを操作するコマンドはswitch control function set、switch control function get、switch control function executeの3つです。それぞれのコマンドの役割は次の通りです。

switch control function set

スイッチが持つ機能に対して設定を行う場合に使用するもので「実行内容が保存されるコマンド」です。つまり、マスターからこのコマンドを実行した後show configでその内容が表示されます。使用例としては「ポートの通信速度を設定する」、「省電力機能の設定をする」などです。

switch control function get

このコマンドには大きく分けて2つの役割があります。

1つはスイッチの動作状態を取得する役割です。show statusで始まるコマンドに相当します。使用例としては「ポートのリンク状態を取得する」、「ポートで受信したパケット数を取得する」などです。

もう1つはスイッチの設定内容を取得する役割です。show configでも設定内容を表示することができますが、違う部分もあります。まず、switch control function setで設定した値をこのコマンドで取得することができます。この場合、取得できる値はshow configで表示される内容と同一です。それに加えてswitch control function setで設定していない項目の値も取得することができます。この場合、取得できる値は初期値となります。

switch control function execute

スイッチに対して特定の動作を実行させるコマンドです。switch control function setコマンドと似ていますが、違いは実行内容が保存されないという点です。使用例としては「スイッチを再起動する」、「スイッチのMACアドレステーブルをクリアする」などです。

コマンドの使用方法

コマンドの書式について

スイッチを操作するコマンドの書式は以下のようになっています。

switch control function set FUNCTION [INDEX] VALUE
no switch control function set FUNCTION [INDEX]
switch control function get FUNCTION [INDEX] [SWITCH]
switch control function execute FUNCTION [INDEX] [SWITCH]

FUNCTION
操作する機能の名称を指定します。機能の一覧および詳細はコマンドリファレンスに記載されています。
INDEX
このパラメータは機能に操作対象が複数存在する場合に指定します。例えばポートの通信速度を設定するport-speedという機能では、設定対象としてポート番号を指定する必要があります。
VALUE
機能に対する設定値を入力します。設定値が複数存在することはありません。switch control function setを実行できる機能に対してswitch control function getを実行するとこの値が表示されます。
SWITCH
操作するスイッチを指定します。このパラメータを省略する場合は事前にswitch selectコマンドを実行する必要があります。また、switch control function setno switch control function setについては必ずswitch selectコマンドを実行する必要があります。

no switch control function setコマンドを実行した場合は、show configの表示内容から削除されると同時に当該機能の設定値が初期値に戻ります。

コマンドの使用例

MACアドレスが00:a0:de:01:02:03、経路がlan1:3であるスイッチのポート3の通信速度を100BASE-TX全二重に設定する方法を解説します。使用する機能はport-speedです。なお、当機能に関する詳細はコマンドリファレンスを参照してください。

  1. 最初にswitch selectでスイッチを指定します。
    # switch select 00:a0:de:01:02:03
    switch(00:a0:de:01:02:03)#
    
  2. 何も設定されていない状態でport-speedをgetすると、初期値が表示されます。
    switch(00:a0:de:01:02:03)# switch control function get port-speed 3
    auto
    switch(00:a0:de:01:02:03)#
    
  3. ポート3の通信速度を100BASE-TX全二重に設定します。
    switch(00:a0:de:01:02:03)# switch control function set port-speed 3 100-fdx
    switch(00:a0:de:01:02:03)#
    
  4. show configでは次のように表示されます。
    switch select 00:a0:de:01:02:03
     switch control function set port-speed 3 100-fdx
    
  5. この状態でport-speedをgetすると100-fdxが表示されます。
    switch(00:a0:de:01:02:03)# switch control function get port-speed 3
    100-fdx
    switch(00:a0:de:01:02:03)#
    
  6. switch selectで経路を指定してgetした場合も同様です。
    switch(00:a0:de:01:02:03)# switch select lan1:3
    switch(lan1:3)# switch control function get port-speed 3
    100-fdx
    switch(lan1:3)#
    

設定の同期

同期の仕組み

スイッチがマスターの制御下にある時、マスターと配下のスイッチの設定内容は常に同期しています。

スイッチが接続されている状態でswitch control function setコマンドを実行すると、設定内容はマスターとスイッチの両方に保存されます。

また、スイッチが接続されていない状態でも当コマンドを実行することができます。この場合、設定内容はマスターにのみ保存されます。その後スイッチを接続すると、その内容が転送されます。なお、switch control function getswitch control function executeをスイッチが接続されていない状態で実行するとエラーになります。

同期はマスターからスイッチへの一方向であり、スイッチは常にマスターに設定されているconfigで動作します。

マスターにスイッチを接続した場合、最初にマスターとスイッチの設定内容が一致しているかどうかを調べます。一致していない場合は以下の処理が行われます。

例として事前にマスターに以下のconfigが設定されている場合を考えます。

switch select lan1:3
 switch control function set system-name sales              ... (a)
 switch control function set port-speed 2 100-fdx           ... (a)
 switch control function set port-speed 5 10-hdx            ... (a)
switch select lan2
 switch control function set system-name development        ... (b)
 switch control function set port-speed 4 100-hdx           ... (b)

lan1のポート3にスイッチを接続した場合、同期処理によって上記configの (a) の部分が転送されます。またlan2に接続した場合には (b) の部分が転送されます。このように経路指定で設定をした場合、どのようなMACアドレスを持つスイッチを接続しても、経路が一致していれば設定が転送されます。

マスターは配下のスイッチの設定内容を定期的に監視しており、マスターが持つconfigとの不整合を検出した場合に同期処理を行います。

同期処理には時間を要することがあります (数十秒〜数分)。同期処理中にスイッチは他の操作を受け付けることができません。コマンドを実行した場合、以下のような応答が表示されます。

エラー: スイッチは他の処理を行っています

この場合、コマンドはエラー扱いとなりマスターのconfigに保存されません。

同期処理の開始と終了はそれぞれ以下のSYSLOGで確認することができます。

[SWCTL] lan1:3(00:a0:de:01:02:03): sync start
[SWCTL] lan1:3(00:a0:de:01:02:03): sync done

経路指定で設定を行っている場合には、スイッチの接続ポートを変えただけで同期処理が開始されることに注意してください。

同一のスイッチに対する重複設定

MACアドレスと経路、それぞれの指定方法による設定が同一のスイッチを対象としてしまうことがあります。この場合は、MACアドレス指定による設定が優先されます。

例として、マスターに以下のconfigが設定されている場合を考えます。

switch select 00:a0:de:01:02:03
 switch control function set port-speed 2 100-fdx       ... (a)
 switch control function set port-speed 5 10-hdx        ... (b)
switch select lan1:3
 switch control function set port-speed 3 100-hdx       ... (c)
 switch control function set port-auto-crossover 4 off  ... (d)

lan1のポート3にMACアドレスが00:a0:de:01:02:03であるスイッチを接続した場合、転送される設定は (a)、(b) となります。この状態で (a)、(b) の設定を削除すると同期処理が開始され (c)、(d) の設定が転送されます。このとき (a)、(b) の設定値は初期値に戻ります。

次に (c)、(d) の設定のみがある状態でスイッチを接続した場合を考えます。

switch select lan1:3
 switch control function set port-speed 3 100-hdx       ... (c)
 switch control function set port-auto-crossover 4 off  ... (d)

lan1のポート3にMACアドレスが00:a0:de:01:02:03であるスイッチを接続すると (c)、(d) の設定が転送されます。

ここで (a) の設定を追加すると、MACアドレス指定による設定が優先されるので同期処理が開始され (a) の設定が転送されます。(c)、(d) の設定値は初期値に戻ります。

switch select 00:a0:de:01:02:03
 switch control function set port-speed 2 100-fdx       ... (a)
switch select lan1:3
 switch control function set port-speed 3 100-hdx       ... (c)
 switch control function set port-auto-crossover 4 off  ... (d)

同期処理が完了すると、次のコマンドを入力できます。引き続き (b) の設定を追加すると、その内容がスイッチに転送されます。

switch select 00:a0:de:01:02:03
 switch control function set port-speed 2 100-fdx       ... (a)
 switch control function set port-speed 5 10-hdx        ... (b)
switch select lan1:3
 switch control function set port-speed 3 100-hdx       ... (c)
 switch control function set port-auto-crossover 4 off  ... (d)

スイッチに適用されている設定 (switch select) は、show status switch controlコマンドで確認することができます。

誤った設定について

マスターにスイッチを接続しない状態で事前にswitch control function setコマンドを入力しておく場合、それが正しい設定なのか否かわからないことがあります。例えば、ポート10に対するport-speedの設定を入力したが、実際に接続したスイッチは8ポートであったというような場合です。

上記のように、スイッチを接続した結果設定の誤りが判明した場合、その設定はconfigから自動的に削除されます。ただしsaveは実行されないため、フラッシュROMには削除前のconfigが残っています。

他社スイッチが混在する構成での同期

他社スイッチの配下に複数のヤマハスイッチが接続されている場合の同期処理について説明します。

マスターには以下のconfigが設定されているものとします。以降の説明では当configをconfig (A)と記述します。

switch select lan1:3
 switch control function set port-speed 3 100-fdx
 switch control function set port-auto-crossover 4 off

以下のような構成で、他社スイッチの配下にヤマハスイッチAを接続すると、当該スイッチはconfig (A)で同期されます。

+------------------+
|     マスター     |
+--------+---------+
         | lan1 port 3
         |
+--------+---------+
|   他社スイッチ   |
+--------+---------+
         | port 2
         |
+--------+---------+
| ヤマハスイッチA  |
+------------------+

次に、他社スイッチの配下にヤマハスイッチBを追加で接続します。

+------------------+
|     マスター     |
+--------+---------+
         | lan1 port 3
         |
+--------+---------+ port 5
|   他社スイッチ   +------------+
+--------+---------+            |
         | port 2               |
         |                      |
+--------+---------+   +--------+---------+
| ヤマハスイッチA  |   | ヤマハスイッチB  |
+------------------+   +------------------+

この場合の動作は以下の通りです。

続けて、ヤマハスイッチAのLANケーブルを抜くと、ヤマハスイッチBはconfig (A)で同期されます。

+------------------+
|     マスター     |
+--------+---------+
         | lan1 port 3
         |
+--------+---------+ port 5
|   他社スイッチ   +------------+
+--------+---------+            |
                                |
                                |
                       +--------+---------+
                       | ヤマハスイッチB  |
                       +------------------+

設定の削除

switch control function defaultコマンドを使用するとスイッチの設定をまとめて削除することができます。以下のconfigを例として説明します。lan1のポート3にMACアドレスが00:a0:de:01:02:03であるスイッチが接続されているものとします。

switch select 00:a0:de:01:02:03
 switch control function set port-speed 2 100-fdx       ... (a)
 switch control function set port-speed 5 10-hdx        ... (b)
switch select lan1:3
 switch control function set port-speed 3 100-hdx       ... (c)
 switch control function set port-auto-crossover 4 off  ... (d)

switch control function defaultコマンドを実行した場合は、スイッチに適用される設定に変更がない場合でも必ず同期処理が行われます。

スイッチを接続していない状態で当コマンドを実行した場合、bothオプションを指定してもMACアドレスと経路の設定が同時に削除されることはありません。


スイッチのコンフィグを保存/復元する

マスターはスイッチのコンフィグを任意の名前のファイルとして保存したり、マスターに保存されているコンフィグファイルの内容でスイッチのコンフィグを復元することができます。

以下のマスター、およびスレーブでスイッチのコンフィグの保存/復元に対応しています。

  1. マスター
    機種 ファームウェア
    RTX830 Rev.15.02.03 以降
    NVR510 Rev.15.01.13 以降
    NVR700W Rev.15.00.14 以降
    RTX1210 Rev.14.01.28 以降
  2. スレーブ
    機種 ファームウェア
    SWX3200-52GT Rev.4.00.02 以降
    SWX3200-28GT
    SWX3100-10G Rev.4.01.02 以降
    SWX2310P-28GT Rev.2.02.02 以降
    SWX2310P-18G
    SWX2310P-10G
    SWX2300-24G Rev.2.00.14 以降
    SWX2300-16G
    SWX2300-8G

コンフィグの保存/復元の対象となるスイッチは、マスターにL2MSのスレーブとして認識されている必要があります。

注意事項

コンフィグを保存する

switch control config getコマンドで、スイッチのコンフィグをマスターに保存することができます。

SWITCHパラメータにMACアドレスもしくは経路を指定した場合は、指定したスイッチのコンフィグを保存します。SWITCHパラメータを省略した場合やallを指定した場合は、マスターが認識している全てのスイッチのコンフィグを保存します。INTERFACEパラメータを指定した場合は、指定のインターフェースにつながっているスイッチのコンフィグを保存します。

MACアドレス、および経路によるスイッチの指定については、こちらを参照ください。

以下にswitch control config getコマンドの入力例を示します。

コマンド入力例 説明
switch control config get all マスターが認識している全てのスイッチのコンフィグを保存する
switch control config get lan1 all マスターのLAN1のネットワークで認識されているスイッチのコンフィグを保存する
switch control config get 00:a0:de:01:02:03 MACアドレスが00:a0:de:01:02:03であるスイッチのコンフィグを保存する
switch control config get lan1:2 lan1:2に接続されているスイッチのコンフィグを保存する

また、schedule at コマンドとswitch control config getコマンドを組み合わせることによって、定期的にコンフィグを保存することもできます。

# schedule at 1 */* 12:00 * switch control config get all

コンフィグの保存場所について

スイッチから取得したコンフィグは、switch config directoryコマンドで指定したディレクトリに保存されます。デフォルトでは RTFS領域 のディレクトリ /sw_config ですが、外部メモリ(usb1:, sd1: など)も指定することができます。PATHパラメータに相対パスを指定した場合は、環境変数 PWD を基点としたパスと解釈されます。なお、指定のディレクトリがRTFS領域となる場合には、PATHパラメータにマルチバイト文字を使用することはできません。

指定のディレクトリが存在しない場合は、switch control config getコマンド実行時に作成されます。

コンフィグのファイル名について

スイッチから取得したコンフィグは、switch config filenameコマンドで指定したファイル名で保存されます。switch config filenameが設定されていない場合は、"対象スイッチのMACアドレス" + ".conf"を使用します。ただし、:(コロン) は _ (アンダースコアー)に置き換えられます。例えば、対象スイッチのMACアドレスが"00:a0:de:01:02:03"である場合は、ファイル名は"00_a0_de_01_02_03.conf"となります。

switch config filenameコマンドの設定は以下のように行います。

  1. switch selectコマンドでスイッチを指定します。
    # switch select 00:a0:de:01:02:03
    switch(00:a0:de:01:02:03)#
    		
  2. switch config filenameコマンドでファイル名を指定します。
    switch(00:a0:de:01:02:03)# switch config filename config.conf
    		
  3. show configコマンドでは以下のように表示されます。
    switch select 00:a0:de:01:02:03
      switch config filename config.conf
    		

ひとつのスイッチに対して、switch selectコマンドがMACアドレス指定と経路指定の両方で設定されている場合は、MACアドレス指定の設定が優先されます。例として、経路がlan1:4、MACアドレスが00:a0:de:01:02:03のスイッチの場合を示します。

以下のように経路指定の設定だけがある場合は、ファイル名はlan1_4.confを使用します。

switch select lan1:4
 switch config filename lan1_4.conf

以下のようにMACアドレス指定と経路指定の両方の設定がある場合は、MACアドレス指定の設定が優先され、ファイル名はconfig.confを使用します。

switch select lan1:4
 switch config filename lan1_4.conf
switch select 00:a0:de:01:02:03
 switch config filename config.conf

コンフィグを復元する

switch control config setコマンドで、マスターに保存されているコンフィグファイルの内容でスイッチのコンフィグを復元することができます。

コンフィグを復元するスイッチの指定方法、コンフィグの保存場所、コンフィグのファイル名についてはコンフィグを保存するときと同様です。

以下にswitch control config setコマンドの入力例を示します。

コマンド入力例 説明
switch control config set all マスターが認識している全てのスイッチのコンフィグを復元する
switch control config set lan1 all マスターのLAN1のネットワークで認識されているスイッチのコンフィグを復元する
switch control config set 00:a0:de:01:02:03 MACアドレスが00:a0:de:01:02:03であるスイッチのコンフィグを復元する
switch control config set lan1:2 lan1:2に接続されているスイッチのコンフィグを復元する

また、schedule at コマンドとswitch control config setコマンドを組み合わせて使用することもできます。

switch control config setコマンド実行後、スイッチのコンフィグの復元が完了すると、当該スイッチが再起動されます。


関連情報