$Date: 2011/04/04 22:10:13 $
スイッチ制御機能に対応したヤマハスイッチに対して、設定を行ったり動作状態を取得したりすることを「スイッチを操作する」と呼びます。
本文書では、コマンドでスイッチを操作する方法について解説します。
スイッチを操作するコマンドはswitch control function set、switch control function get、switch control function executeの3つです。それぞれのコマンドの役割は次の通りです。
スイッチが持つ機能に対して設定を行う場合に使用するもので「実行内容が保存されるコマンド」です。つまり、ルーターからこのコマンドを実行した後show configでその内容が表示されます。使用例としては「ポートの通信速度を設定する」、「省電力機能の設定をする」などです。
このコマンドには大きく分けて2つの役割があります。
1つはスイッチの動作状態を取得する役割です。show statusで始まるコマンドに相当します。使用例としては「ポートのリンク状態を取得する」、「ポートで受信したパケット数を取得する」などです。
もう1つはスイッチの設定内容を取得する役割です。show configでも設定内容を表示することができますが、違う部分もあります。まず、switch control function setで設定した値をこのコマンドで取得することができます。この場合、取得できる値はshow configで表示される内容と同一です。それに加えてswitch control function setで設定していない項目の値も取得することができます。この場合、取得できる値は初期値となります。
スイッチに対して特定の動作を実行させるコマンドです。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]
no switch control function setコマンドを実行した場合は、show configの表示内容から削除されると同時に当該機能の設定値が初期値に戻ります。
MACアドレスが00:a0:de:01:02:03、経路がlan1:3であるスイッチのポート3の通信速度を100BASE-TX全二重に設定する方法を解説します。使用する機能はport-speedです。なお、当機能に関する詳細はコマンドリファレンスを参照してください。
# switch select 00:a0:de:01:02:03 switch(00:a0:de:01:02:03)#
switch(00:a0:de:01:02:03)# switch control function get port-speed 3 auto switch(00:a0:de:01:02:03)#
switch(00:a0:de:01:02:03)# switch control function set port-speed 3 100-fdx switch(00:a0:de:01:02:03)#
switch select 00:a0:de:01:02:03 switch control function set port-speed 3 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)#
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 get、switch 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 lan1:3
# switch control function default 00:a0:de:01:02:03
# switch control function default lan1:3
switch control function defaultコマンドを実行した場合は、スイッチに適用される設定に変更がない場合でも必ず同期処理が行われます。
スイッチを接続していない状態で当コマンドを実行した場合、bothオプションを指定してもMACアドレスと経路の設定が同時に削除されることはありません。