はじめに
今回はCiscoルータの設定ファイルを、TFTPを使用して安全にバックアップする方法のメモになります。
Windows 11上でTFTPサーバを起動し、ルータからファイルを転送する具体的な手順を紹介。
さらに、pingによる接続確認、Windowsファイアウォール設定、ACLの活用方法など、トラブルを防ぐためのポイントも詳しく解説しています。
Ciscoネットワーク管理者に必要なスキルを、丁寧にまとめてみました。
TFTPD64をダウンロード
今回は、Windows11のPCにTFTPサーバとして、TFTPD64をインストールしたいと思います。
次の公式サイトにアクセスし、「Quick download: latest release, standard edition」リンクをクリックすると、インストーラがダウンロードされますので、ダブルクリックして起動させます。
https://pjo2.github.io/tftpd64
インストール手順(インストーラ版の場合)
それでは、ダウンロードしたインストーラを起動し、インストールしていきます。
ダウンロードしたファイルを実行
ダウンロードしたインストーラ(例:tftpd64-setup-x.xx.exe)をダブルクリックし起動します。
インストールウィザードを進める
使用許諾契約に同意し、インストール先フォルダを指定します(デフォルトでOK)。
「I Agree」をクリックします。
また、必要なコンポーネントを選択(TFTPサーバ機能のみで十分)します。
「Next」をクリックします。
「Install」をクリックします。
「Close」をクリックします。
インストール完了
インストールが完了すると、TFTPD64が起動しますので、Base Directory(つまり、ファイルの保存先指定)の設定に移りたいと思います。
「Settings」をクリックします。
「TFTP」タブが選択されていることを確認し、「Browse」をクリックします。
フォルダを指定後、「Base Directory」欄にそのフォルダのPathが表示されていることを確認し、「OK」をクリックします。
「Current Directory」欄が、先ほどBase Directoryで指定したフォルダになっていることを確認します。
ルータからファイルが転送されたら「Tftp Server」タブの画面にファイルが表示されますので、すぐに成功したか失敗したかがわかると思います。
ルータから転送したにも関わらず、画面にファイル名が表示されない場合は失敗している可能性が高いです。
下記の画像のように表示されていれば、TFTPによるファイル転送は成功です。
初期設定
まずは、ルータから送られてきたファイルを保存するディレクトリを指定します。
TFTPルートディレクトリの指定
TFTPD64を起動し、「Settings」メニューを開きます。
「Base Directory」欄でTFTPサーバのルートフォルダを指定します(例:C:\TFTP-Root)。
Windowsファイアウォールの設定
TFTPD64が動作するためには、UDPポート69が開放されている必要があります。また、あらかじめRouterから開発用PC(TFTPサーバ)にpingが届くことも確認しておきましょう。
万が一、ルータからバックアップ先となる開発用PCへPingが届かない場合は、Windowsファイアウォールの受信ルールに、icmpV4を追加する必要があります。
Windows11で「Windowsセキュリティ」を開く方法
開く方法はいくつかありますが、以下の手順はそのうちの一つです。
- スタートボタンをクリックし、「設定」を選択します。
- 左メニューから「プライバシーとセキュリティ」を選択します。
- 「Windows セキュリティ」をクリックします。
- 「ファイアウォールとネットワーク保護」をクリックします。
- 「詳細設定」を選択します。
あとは、「受信の規則」に今回用のTFTPとping(icmpV4)を許可する設定を登録します。
ポートを開放
「受信の規則」を選択し、「新しい規則」を作成します。
「カスタム」を選択し、「次へ」ボタンをクリックします。
- 規則の種類:「ポート」を選択します。
- プロトコルおよびポート:「UDP」を選択します。
- 特定のローカルポート:「69」を入力します。
- 操作:「接続を許可する」を選択します。
- 名前:任意の名前を入力します(例:TFTP)
ACL設定の手順
今回使用するTFTP(69番ポート)とicmpを許可するアクセスリストを作り、インターフェースのout方向に適用しておきましょう。
以下は私の環境での例になります。
PD-Router2# conf t
PD-Router2(config)# access-list 100 permit icmp any host 192.168.2.107
PD-Router2(config)# access-list 100 permit udp any host 192.168.2.107 eq 69
PD-Router2(config)# access-list 100 permit udp host 192.168.2.107 eq 69 any
アクセスリスト100を作成し、ルータから開発用PCへの許可設定を登録しています。
念のため、内容を再確認。
PD-Router2#show access-lists 100
Extended IP access list 100
10 permit icmp any host 192.168.2.107
20 permit udp any host 192.168.2.107 eq tftp
30 permit udp host 192.168.2.107 eq tftp any
PD-Router2#
インターフェースに適用
上記で作成したアクセスリスト100を、該当するインターフェースに適用します。
PD-Router2#conf t
PD-Router2(config)#interface GigabitEthernet 8
PD-Router2(config-if)#ip access-group 100 out
PD-Router2(config-if)#exit
PD-Router2(config)#
ACL設定の確認
ACLの内容を確認します。
PD-Router2#show access-lists 100
Extended IP access list 100
10 permit icmp any host 192.168.2.107
20 permit udp any host 192.168.2.107 eq tftp
30 permit udp host 192.168.2.107 eq tftp any
PD-Router2#
また、ACLのインターフェース適用状況を確認します。
PD-Router2#show running-config | include ip access-group
ip access-group 100 out
PD-Router2#
通信確認
ルータから開発用PCへ、pingが通ることを確認します。
PD-Router2#ping 192.168.2.107
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.2.107, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/3/4 ms
PD-Router2#
「!!!!!」が表示されているように、問題なくpingが通っているようです。
・開発用PC側でファイアウォールが適切に設定されているかを確認します。
・インターフェースのout方向に適用したACLが正しいかを確認します。
Ciscoルータからのバックアップ送信
各設定が整ったと思いますので、ルータから開発用PCへTFTPによるバックアップ送信をしましょう。
TFTPサーバを起動
開発用PC(Windows11)のTFTPD64を起動し、「Base Directory」を再確認します。
CiscoルータでTFTP送信コマンドを実行
ルータの特権EXECモードで、以下のコマンドを実行します。
PD-Router2#copy running-config tftp
Address or name of remote host []? 192.168.2.107
Destination filename [pd-router2-confg]?
!!
2439 bytes copied in 0.280 secs (8711 bytes/sec)
PD-Router2#
BaseDirectoryに指定したフォルダを確認
無事、ルータから送信したconfigファイルが届いているかを、TFTPD64のGUI画面で確認します。
もしくは、エクスプローラーを起動して、転送されたファイルを確認します。
ファイルが存在していれば、無事転送完了です。
お疲れさまでした。
まとめ
ルータのconfigをバックアップする方法はいくつかありますが、今回はルータからTFTPプロトコルを使用した転送方法について記載しました。
実際試してみて、Windowsファイアウォールの受信の規則で少し躓きました。同じセグメントだからプライベートネットワークの許可だけで大丈夫だと思っていたんですけどね。
ご参考になれば幸いです。
コメント