【Cisco Nexus】TFTP の代わりに SCP を使用【ファイル転送】

スイッチ

作業環境

  • Nexsus 9300v
    • NXOS: version 9.3(10)

Nexus の TFTP は遅い

Nexus の NXOS のバージョンアップを行う際など、大きいサイズのファイルを Nexus に転送する必要がある場合があります。

Cisco ルータやスイッチに IOS ファイルを転送する際は FTP または TFTP を使用することが多いと思います。Nexus で例えば TFTP で NXOS ファイルを転送しようとすると、転送速度が遅いことに気づきます。NXOS ファイルはサイズが GB 単位のため、TFTP では非常に時間がかかってしまいます。

SCP でファイル転送を行う

Nexus では SCP クライアントを使用することができ、また SCP は FTP/TFTP よりも速度が速かったため、Nexus への NXOS ファイル転送では SCP を使用することを推奨します。

例えば、SCP を使用して SCP サーバ(192.168.75.1)から Nexus の bootflash にファイル(nxos.9.3.10.bin)をコピーするコマンドは以下です。

  • # copy scp://192.168.75.1/nxos.9.3.10.bin bootflash:
    • SCP サーバのルートフォルダに nxos.9.3.10.bin が存在する場合
  • # copy scp://<ユーザ名>@192.168.75.1/nxos.9.3.10.bin bootflash:
    • コマンドの中でユーザ名を指定する場合は上記のように指定
Nexus9300v# copy scp://192.168.75.1/nxos.9.3.10.bin bootflash:
Enter vrf (If no input, current vrf 'default' is considered):
Enter username: hogeuser
The authenticity of host '192.168.75.1 (192.168.75.1)' can't be established.
ECDSA key fingerprint is SHA256:NU9kTKXGHYXu9A2z1xbxNnAjEQhegCLzg3e+Z7rUcI4.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.75.1' (ECDSA) to the list of known hosts.
Inbound-ReKey for 192.168.75.1:22
hogeuser@192.168.75.1's password:
nxos.9.3.10.bin                                2%   53MB   3.5MB/s   08:48 ETA

コマンド実行後、認証用の SCP ユーザとパスワードを入力します。
SCP サーバに初回接続時は上のように警告が出ますが yes で続行します。

use-kstac オプションを使う

SCP でコピーする際に use-kstac オプションを使うと転送速度がより速くなる場合があります。

Nexus9300v# copy scp://192.168.75.1/nxos.9.3.10.bin bootflash: use-kstac

使用ポートは management ポートを推奨

management ポートを使用せずに switch のポートからファイル転送を実行する場合、自発着通信については CoPP による policing 対象となります。

Nexus 9000/3000 シリーズ: Nexus のファイル転送速度の改善策

上記の通り、スイッチポートからの自発着通信はポリシング対象となっているので、management ポートを使用することを推奨します。実際、Nexus 9000v で試したところスイッチポートからの SCP 転送(特にダウンロード)では極端に速度が遅かったです。

Nexus 9000v の場合は以下の mgmt0 インターフェースが management ポートに該当します。

interface mgmt0
  vrf member management

上記 mgmt0 はデフォルトで VRF が management になっているので、copy コマンドを実行する際に VRF として management を指定します。

switch(config)# copy scp://192.168.75.1//nxos.9.3.10.bin bootflash: vrf management

◆実行例:

switch(config)# copy scp://hogeuser@192.168.75.1/nxos.9.3.10.bin bootflash: vrf management
Inbound-ReKey for 192.168.75.1:22
hogeuser@192.168.75.1's password:
nxos.9.3.10.bin                           3%   64MB   4.4MB/s   06:53 ETA

use-kstac オプションを使うと以下のように転送速度が一気に速くなりました。

switch(config)# copy scp://hogeuser@192.168.75.1/nxos.9.3.10.bin bootflash: vrf management use-kstack
Inbound-ReKey for 192.168.75.1:22
hogeuser@192.168.75.1's password:
nxos.9.3.10.bin                          12%  231MB  27.1MB/s   01:00 ETA

Windows 10 を SCP サーバとして使用

SCP でファイルを転送するためには SCP サーバを準備する必要があります。

Windows 10 には標準のアプリ一覧からインストールできる OpenSSH サーバがあり、これをインストールして SCP サーバとして使用することができます。

OpenSSH サーバをインストールする手順

設定画面の「アプリと機能」画面で「オプション機能」をクリックします。

オプション機能」画面で「機能の追加」をクリックします。

以下の画面の検索欄に「ssh」と入力すると OpenSSH サーバーが検索されるため、チェックを入れてインストールをクリックします。

OpenSSH サーバーのインストールが開始されます。

以下のようにインストール済みと表示されたらインストール完了です。

OpenSSH サーバサービスの起動

OpenSSH サーバをインストール直後はサービスが停止しているため、サービスを開始します。開始するサービス名は「OpenSSH SSH Server」です。

サービスを開始したら、Windows 10 を SCP サーバとして使用できます。

SCP サーバのルートフォルダ

SCP サーバのルートフォルダは C: ドライブ直下になります。例えば Nexus で以下のように SCP サーバ(192.168.75.1)内のファイルを指定した場合、C: ドライブ直下にある nxos.9.3.10.bin を指定したことになります。

  • # copy scp://192.168.75.1/nxos.9.3.10.bin bootflash:

認証用の SCP ユーザ情報としては Windows のユーザ情報を使用します。

参考資料

Nexus 9000/3000 シリーズ: Nexus のファイル転送速度の改善策
  はじめにNexusからshowtech-supportやtac-pacファイルを外部に転送したり、NexusへNX-OSイメージファイルを転送する際、数百MBのファイルを転送する必要がありますが、ファイル転送環境によっては非常に時間がかかる場合があります。単純に回線速度が遅い場合はどうしようもありませんが、それ以外...

タイトルとURLをコピーしました