作業環境
- 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 のユーザ情報を使用します。
参考資料
