EdgeMAX - 管理配置文件

簡介


讀者將會了解到如何創建並保存更改到正在使用的配置文件。


操作步驟


1.通常情況下您可以使用 save 命令來保存活動的的配置文件到硬盤(config/config.boot);然而你也可以將正在使用的配置文件保存為不同的文件或者保存到遠程伺服器。

2.輸入 save 並按下 ? 鍵。

ubnt@RTR# save
Possible completions:
 Save to system config file
 Save to file on local machine
 scp://:@/ Save to file on remote machine
 ftp://:@/ Save to file on remote machine
 tftp:/// Save to file on remote machine
 [edit]
 ubnt@RTR#
 save
 tftp://10.1.0.15/rtr-config.boot
 Saving configuration to
 ‘tftp://10.1.0.15rtr-config.boot’...
 ############################################### 100.0% Done
 [edit]

3.在某個應用場景中,在管理員從 IPsec 隧道變更到 OpenVPN 的中途,管理員不得不將 EdgeRouter 切換回之前的 IPsec 隧道的配置文件。

(1) 在進行更改前,管理員已經備份了一份配置文件,帶有 IPsec 隧道的配置:

ubnt@RTR# save config.boot-ipsec
Saving configuration to ‘/config/config.boot-ipsec’...
Done
[edit]

注意:這是一個備份。如果 EdgeRouter 被重啟,還是會從默認的文件 “/config/config.boot” 啟動。

(2)在管理員刪除 IPsec 配置並配置 OpenVPN 隧道後,情況有變,需要再次配置 IPsec 通道。因此,管理員恢復 EdgeRouter 到之前的帶有 IPsec 隧道的配置文件。

ubnt@RTR# load config.boot-ipsec
Loading configuration from
‘/config/config.boot-ipsec’...
Load complete. Use ‘commit’ to make changes active.
[edit]
ubnt@RTR# commit
[edit]
ubnt@RTR# save; exit
Saving configuration to ‘/config/config.boot’...
Done
exit
ubnt@RTR:~$

(3) 要在每次 commit 之後自動創建一個遠程備份,使用 commit-archive 配置選項,輸入 location,然後按下 ? 鍵。

ubnt@RTR# set system config-management commit-archive location
Possible completions: Uniform Resource Identifier
Detailed information:
“scp://:@/ ”
“ftp://:@/”
“tftp:///”
ubnt@RTR# set system config-management commit-archive location tftp://10.1.0.15/RTR
[edit]
ubnt@RTR# commit
Archiving config... tftp://10.1.0.15/RTR OK
[edit]

(4) 在遠程 tftp 伺服器,一個帶有主機名和日期的備份在每次 commit 時自動保存。

admin2@server://tftpboot/RTR$ ls -l
total 8
-rw------- 1 nobody nogroup 908 Aug 17 17:19
config.boot-RTR.20120817_171932
-rw------- 1 nobody nogroup 874 Aug 17 17:20
config.boot-RTR.20120818_002046

4.你還可以在本地磁盤上為配置文件保存一個指定的版本號。使用 commit-revisions 配置選項。

ubnt@RTR# set system config-management commit-revisions 50
[edit]
ubnt@RTR# commit
[edit]
Here is an example that uses the commit-revisions command:
ubnt@RTR# set system login user joe authentication plaintext-password secret
[edit]
ubnt@RTR# commit
[edit]
ubnt@RTR# save; exit
Saving configuration to ‘/config/config.boot’...
Done
exit
 
ubnt@RTR:~$ show system commit
0 2012-08-17 18:32:13 by ubnt via cli commit
1 2012-08-17 18:31:52 by ubnt via cli commit
2 2012-08-17 18:31:51 by root via init commit

(1) 注意下面的命令需要配置選項 commit-revisions 事先已經設定。

show system commit diff      commit-confirm
show system commit file      confirm
show system commit       rollback
commit comment  

(2) 要顯示版本 0 中的更改,使用 show system commit diff 命令。

ubnt@RTR:~$ show system commit diff 0
[edit system login]
+user joe {
+ authentication {
+    encrypted-password
     $1$CWVzYggs$NyJXxC3S572rfm6pY8ZMO.
+    plaintext-password ““
+ }
+ level admin
+}

(3) 要顯示版本 0 的整個配置文件,使用 show system commit file 命令。

ubnt@RTR:~$ show system commit file 0

(4) 要將備註添加到 commit,使用 comment 命令。

ubnt@RTR# set system login user joe level operator
[edit]
ubnt@RTR# commit comment “change joe from admin to op”
[edit]
ubnt@RTR# save; exit
Saving configuration to ‘/config/config.boot’...
Done
exit

(5) 現在你可以在使用 show system commit 時看到備註資訊了。

ubnt@RTR:~$ show system commit
0 2012-08-17 18:44:41 by ubnt via cli change joe from admin to op
1 2012-08-17 18:34:01 by ubnt via cli commit
2 2012-08-17 18:32:13 by ubnt via cli commit
3 2012-08-17 18:31:52 by ubnt via cli commit
4 2012-08-17 18:31:51 by root via init commit

5.當你在一個遠程路由器上工作時,某些更改(例如防火牆或者 NAT 規則)可能會導致用戶失去遠程訪問路由器的權限並且只能通過物理訪問路由器來重啟。要避免這個問題,在應用有風險的更改時,先使用 commit-confirm 命令。然後使用 confirm 命令來保存你的更改。

ubnt@RTR:~$ configure
[edit]
ubnt@RTR# set firewall name WAN_IN rule 50 action drop
[edit]
ubnt@RTR# set firewall name WAN_IN rule 50 destination address 172.16.0.0/16
[edit]
ubnt@RTR# commit-confirm
commit confirm will be automatically reboot in 10 minutes unless confirmed
Proceed? [confirm][y]
[edit]

6.在你確認更改應該被保存後,使用 confirm 命令。

ubnt@RTR# confirm
[edit]

7.你還可以指定一個等待的分鐘數,但你必須記得還要使用 confirm 命令。否則,如果你忘記 confirm,你會發現 EdgeRouter 重啟後仍然是之前的配置。

ubnt@RTR# commit-confirm 1
commit confirm will be automatically reboot in 1 minutes unless confirmed
Proceed? [confirm][y]
[edit]
ubnt@RTR#
Broadcast message from root@RTR (Mon Aug 20 14:00:06 2012):
The system is going down for reboot NOW!
INIT: Switching to runlevel: 6
INIT: Stopping routing services...zebra...done.
Removing all Quagga Routes.
[SNIP]

8.要回滾到一個之前的 commit,使用 show system commit 以及 rollback 命令。

ubnt@RTR:~$ show system commit
0 2012-08-21 14:46:41 by admin_5 via cli fix bgp policy maps
1 2012-08-21 14:45:59 by admin_5 via cli commit
2 2012-08-21 14:45:33 by admin_5 via cli fix port forwarding
3 2012-08-21 14:45:15 by admin_5 via cli fix firewall
4 2012-08-21 14:44:29 by ubnt via cli commit
5 2012-08-21 14:21:15 by ubnt via cli add port forward for port 2222 to build-server
6 2012-08-21 14:20:24 by ubnt via cli add dmz interface to eth2
7 2012-08-21 14:19:53 by ubnt via cli add ipsec tunnel to office_exchange
8 2012-08-21 14:07:18 by ubnt via cli add firewall for WAN_IN
9 2012-08-21 14:06:37 by ubnt via cli add user first_last
10   2012-08-21 14:04:47 by ubnt via cli commit
11   2012-08-21 14:04:46 by root via init commit

9.在查看系統 commit 歷史之後,你決定放棄最後4個 admin_5做的 commit。回滾系統配置到 commit 4:

ubnt@RTR# rollback 4
Proceed with reboot? [confirm] [y]
Broadcast message from root@RTR (ttyS0) (Mon Aug 21 15:09:12 2012):
The system is going down for reboot NOW!