tftp の練習
本エントリについて
Dynagen、Dynamips、tftpd を使って、コンフィグのバックアップを練習します。
Dynagen、Dynamips の利用環境はすでに整っているものとします。
参考
環境について
r1 のコンフィグを tftpd server にバックアップします。
[tftpd server] .1 === (10.2.0.0/24) === .254 f0/0[r1]
tftpd サーバインストール
tftpd サーバとして、tftpd-hpa を利用します。
単体試験のため tftpd-hpa もインストールします。
sudo apt install -y tftpd-hpa tftp-hpa
動作確認
関連パッケージをインストールしたら /srv/tftp 配下にテスト用ファイル helloworld を配置して tftp で get してみます。
$ echo helloworld | sudo tee -a /srv/tftp/helloworld
helloworld
$ tftp 10.2.0.1 -c get helloworld
$ ls helloworld
helloworld
次に、tftp でファイル helloworld.1 を put してみます。
最初に /srv/tftp 配下に空のファイルを作成する必要があります。
$ sudo touch /srv/tftp/helloworld.1
$ sudo chmod 766 /srv/tftp/helloworld.1
$ mv helloworld helloworld.1
$ cat << END | tftp 10.2.0.1
> put helloworld.1
> END
$ cat /srv/tftp/helloworld.1
helloworld
コンフィグバックアップ
バックアップを実行する前に /srv/tftp 配下に空のファイルを作成します。
$ sudo touch /srv/tftp/r1-config
$ sudo chmod 766 /srv/tftp/r1-config
空ファイルを作成したら、コンフィグをバックアップします。
r1#ping 10.2.0.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.2.0.1, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 4/6/8 ms
r1#copy start tftp://10.2.0.1/r1-config
Address or name of remote host [10.2.0.1]?
Destination filename [r1-config]?
!!
776 bytes copied in 0.044 secs (17636 bytes/sec)
ファイルが更新されたことを確認します。
バックアップしたファイルが上書きされないように、コピーを作成しておきます。
$ ls -l /srv/tftp/r1-config{,.000}
$ sudo cp -pi /srv/tftp/r1-config{,.000}
$ ls -l /srv/tftp/r1-config{,.000}
コンフィグ戻しの検証
変更前の設定を保存しておきます。
r1#terminal length 0
r1#show run | redirect flash:config-before
r1#show flash:
-#- --length-- -----date/time------ path
1 837 Mar 01 2002 00:17:06 config-before
61440 bytes available (2048 bytes used)
動作の確認のため設定を変更
- 必要な情報を削除します。
r1(config)#router ospf 1
r1(config-router)#no network 10.2.1.0 0.0.0.255 area 0
- 誤った設定を入れます。
r1(config)#int fa0/1
r1(config-if)#shut
- 不要な情報を追加します。
r1(config)#enable password cisco
確認のため変更後の設定を保存しておきます。
r1#show run | redirect flash:config-edit
r1#show flash:
-#- --length-- -----date/time------ path
1 837 Mar 01 2002 00:17:06 config-before
2 834 Mar 01 2002 00:21:40 config-edit
59392 bytes available (4096 bytes used)
差分を確認すると以下のようになります。
r1#show archive config differences flash:config-before flash:config-edit
Contextual Config Diffs:
+Current configuration : 773 bytes
+enable password cisco
interface FastEthernet0/1
+shutdown
-Current configuration : 776 bytes
router ospf 1
-network 10.2.1.0 0.0.0.255 area 0
- enable password の行が追加されている
- shutdown の行が追加されている
- network の行が削除されている
コンフィグの戻しを実行
ここで、前項でバックアップしたコンフィグを戻してみます。
r1#copy tftp://10.2.0.1/r1-config run
Destination filename [running-config]?
Accessing tftp://10.2.0.1/r1-config...
Loading r1-config from 10.2.0.1 (via FastEthernet0/0): !
[OK - 776 bytes]
776 bytes copied in 9.284 secs (84 bytes/sec)
*Mar 1 00:23:38.923: %SYS-5-CONFIG_I: Configured from tftp://10.2.0.1/r1-config by console
確認のためコンフィグ戻しを実行した時点の設定を保存しておきます。
r1#show run | redirect flash:config-after
r1#
r1#show flash:
-#- --length-- -----date/time------ path
1 837 Mar 01 2002 00:17:06 config-before
2 834 Mar 01 2002 00:21:40 config-edit
3 869 Mar 01 2002 00:24:16 config-after
57344 bytes available (6144 bytes used)
結果を確認
変更を行う前のコンフィグと比較すると、同じ内容に戻っていません。
r1#show archive config differences flash:config-before flash:config-after
Contextual Config Diffs:
+Current configuration : 808 bytes
+enable password cisco
interface FastEthernet0/1
+shutdown
-Current configuration : 776 bytes
- enable password の行が追加されている
- shutdown の行が追加されている
running-config に対するコピーは、マージの形になります。
商用の複雑な設定が入っている機器の場合は、非常に面倒なものとなります。
下記によると トラブルの元
実環境においては使用しない
とのことです。
後片付け
確認が終わったら不要なファイルを削除します。
r1#delete flash:config-before
Delete filename [config-before]?
Delete flash:config-before? [confirm]
r1#delete flash:config-edit
Delete filename [config-edit]?
Delete flash:config-edit? [confirm]
r1#delete flash:config-after
Delete filename [config-after]?
Delete flash:config-after? [confirm]
r1#show flash
No files on device
63488 bytes available (0 bytes used)
(番外編) Cisco デバイスを tftp サーバとして利用する
tftp クライアントに対して特定のファイルだけ get させるような形のtftp サーバとして機能させることができます。
r1#conf t
r1(config)#tftp-server flash:config-after
tftp クライアントで get することができます。
$ tftp 10.2.0.254 -c get config-after
$ ls config-after
config-after
まとめ
設定を戻す時は copy tftp: run
を使うと、設定がマージされて複雑になるため、
ターミナル画面にコンフィグを貼り付けて入力することで戻すのがよさそうです。
Discussion