การ Rollback Configuration บน Cisco IOS XR
มาทำความเข้าใจการ Rollback บน IOS XR ไปพร้อม ๆ กัน
— — — — — — — — — — — — — — —
สารบัญเนื้อหาทั้งหมด (My Contents)
— — — — — — — — — — — — — — —
— — — — — — — — — — — — — — — — — — — — — — — -
ฝากคอร์ส Python for Network Automation ผมด้วยครับ
— — — — — — — — — — — — — — — — — — — — — — — -
วันนี้เป็นวันแรก ๆ ของผมที่ได้มาจับ Cisco ASR 9000 เพราะก่อนหน้าที่ผมทำงานให้ network vendor เจ้าอื่นมาตลอด เนื่องด้วยต้องมีการ change configuration ก็เลยต้องศึกษาเรื่อง rollback ของมันสักหน่อยว่าทำยังไง
ก็แค่รัน IOS XRv ขึ้นมาใน lab แล้วเริ่มกันเลย…
การ Commit
เดี๋ยวผมจะลองใส่ description บน GigabitEthernet0/0/0/1 เป็น 11111
RP/0/0/CPU0:XRv(config)#int g0/0/0/1 description 11111
RP/0/0/CPU0:XRv(config)#show
Fri Nov 22 09:23:29.465 UTC
Building configuration...
!! IOS XR Configuration 6.1.3
interface GigabitEthernet0/0/0/1
description 11111
!
end
ลองเช็ค config บน GigabitEthernet0/0/0/1 จะเห็นว่ายังไม่มีอะไรเปลี่ยน
RP/0/0/CPU0:XRv(config)#do sh run int g0/0/0/1
Fri Nov 22 09:26:30.153 UTC
interface GigabitEthernet0/0/0/1
shutdown
!
ทำการ commit พร้อมใส่ comment ลงไปด้วย
RP/0/0/CPU0:XRv(config)#commit comment add desc on g0/0/0/1
Fri Nov 22 09:28:55.263 UTC
หลังจาก commit สังเกตว่า config ถูก apply บน router เรียบร้อย
RP/0/0/CPU0:XRv(config)#do sh run int g0/0/0/1
Fri Nov 22 09:29:43.500 UTC
interface GigabitEthernet0/0/0/1
description 11111
shutdown
!
ทีนี้เราลองมาดูว่า commit แต่ละครั้งของเรามีอะไรบ้าง
RP/0/0/CPU0:XRv#show configuration commit list
Fri Nov 22 09:32:57.266 UTC
SNo. Label/ID User Line Client Time Stamp
~~~~ ~~~~~~~~ ~~~~ ~~~~ ~~~~~~ ~~~~~~~~~~
1 1000000002 nopnithi con0_0_CPU0 CLI Fri Nov 22 09:28:55 2019
2 1000000001 nopnithi con0_0_CPU0 CLI Fri Nov 22 09:22:15 2019
ถ้าเพิ่มคำว่า detail เข้าไปแบบนี้ มันจะเห็นรายละเอียดมากขึ้น เช่น user ไหน commit, commit เมื่อไหร่, ทำอะไร(ตาม comment ที่ใส่ไป) และอื่น ๆ
RP/0/0/CPU0:XRv#show configuration commit list detail
Fri Nov 22 09:33:01.196 UTC1) CommitId: 1000000002 Label: NONE
UserId: nopnithi Line: con0_0_CPU0
Client: CLI Time: Fri Nov 22 09:28:55 2019
Comment: add desc on g0/0/0/12) CommitId: 1000000001 Label: NONE
UserId: nopnithi Line: con0_0_CPU0
Client: CLI Time: Fri Nov 22 09:22:15 2019
Comment: change hostname to XRv
สมมุติผมอยากดูว่า commit id: 1000000002 มันมี config อะไรบ้าง ตามที่เห็นก็คือผมใส่ description ลงไปบน GigabitEthernet0/0/0/1 นั่นเอง
RP/0/0/CPU0:XRv#show configuration commit changes 1000000002
Fri Nov 22 09:44:10.160 UTC
Building configuration...
!! IOS XR Configuration 6.1.3
interface GigabitEthernet0/0/0/1
description 11111
!
end
ลองดู commit id: 1000000001 บ้างซิว่าผมทำอะไร (ผมเปลี่ยน hostname เป็น XRv)
RP/0/0/CPU0:XRv#show configuration commit changes 1000000001
Fri Nov 22 09:49:07.930 UTC
Building configuration...
!! IOS XR Configuration 6.1.3
hostname XRv
end
ไอ้ show configuration commit changes XXX เนี่ย ตรง XXX นอกจากใส่ commit id ลงไป มันก็ยังมี keyword อื่นให้เล่นอีก คือ
- all
- last
- since
จริง ๆ มันก็ตามความหมายนั่นแหละครับ ไปลองเล่นดู…ผมคงไม่โชว์ทั้งหมดนะครับ
RP/0/0/CPU0:XRv#show configuration commit changes ?
all Display configurations committed for all commits
last Changes made in the most recent <n> commits
since Changes made since (and including) a specific commit
1000000002 Commit ID
1000000001 Commit ID
ตัวอย่างนะ ถ้าผมใส่เป็น last 2 คือโชว์ commit ล่าสุด 2 อัน ก็จะเห็นว่ามันมีทั้งเปลี่ยน hostname และเพิ่ม description บน interface
RP/0/0/CPU0:XRv#show configuration commit changes last 2
Fri Nov 22 09:51:57.688 UTC
Building configuration...
!! IOS XR Configuration 6.1.3
hostname XRv
interface GigabitEthernet0/0/0/1
description 11111
!
end
การ Rollback
ในการ rollback มันก็จะใช้การ commit แต่ละครั้งเนี่ยแหละเป็น rollback point อย่าง command ด้านล่างนี้ ถ้าผมใส่ commit id ลงไปมันก็จะ rollback ให้ทันทีเลย
RP/0/0/CPU0:XRv#rollback configuration ?
last Rollback last <n> commits made
to Rollback up to (and including) a specific commit
to-exclude Rollback up to (and excluding) a specific commit
1000000002 Commit ID
1000000001 Commit ID
ถ้ายังจำได้ commit id: 1000000002 มันก็คือตอนที่ผมเปลี่ยน description บน GigabitEthernet0/0/0/1 ใช่มั้ยครับ ลองโชว์ให้ดูอีกทีละกัน
RP/0/0/CPU0:XRv#show configuration commit changes 1000000002
Fri Nov 22 10:03:38.370 UTC
Building configuration...
!! IOS XR Configuration 6.1.3
interface GigabitEthernet0/0/0/1
description 11111
!
end
แต่ถ้าผมโชว์ command คล้าย ๆ ข้างบน แต่เปลี่ยนจาก commit เป็น rollback แทนหละ สังเกตบรรทัด “no description 11111” สิ มันก็คือ config เพื่อจะ rollback กลับนั่นเอง
RP/0/0/CPU0:XRv#show configuration rollback changes 1000000002
Fri Nov 22 10:05:43.862 UTC
Building configuration...
!! IOS XR Configuration 6.1.3
interface GigabitEthernet0/0/0/1
no description 11111
!
end
ทีนี้ผมจะเปลี่ยน description เพิ่มอีกสัก 2 interfaces
RP/0/0/CPU0:XRv(config)#int g0/0/0/2 description 22222
RP/0/0/CPU0:XRv(config)#commit comment add desc on g0/0/0/2
Fri Nov 22 10:22:46.872 UTC
RP/0/0/CPU0:XRv(config)#int g0/0/0/3 description 33333
RP/0/0/CPU0:XRv(config)#commit comment add desc on g0/0/0/3
Fri Nov 22 10:22:57.811 UTC
ลองเช็ค commit ดู
RP/0/0/CPU0:XRv#show configuration commit list detail
Fri Nov 22 10:23:18.519 UTC1) CommitId: 1000000004 Label: NONE
UserId: nopnithi Line: con0_0_CPU0
Client: CLI Time: Fri Nov 22 10:22:57 2019
Comment: add desc on g0/0/0/32) CommitId: 1000000003 Label: NONE
UserId: nopnithi Line: con0_0_CPU0
Client: CLI Time: Fri Nov 22 10:22:46 2019
Comment: add desc on g0/0/0/23) CommitId: 1000000002 Label: NONE
UserId: nopnithi Line: con0_0_CPU0
Client: CLI Time: Fri Nov 22 09:28:55 2019
Comment: add desc on g0/0/0/14) CommitId: 1000000001 Label: NONE
UserId: nopnithi Line: con0_0_CPU0
Client: CLI Time: Fri Nov 22 09:22:15 2019
Comment: change hostname to XRv
เดี๋ยวผมจะ rollback ตั้งแต่ 1000000003 เป็นต้นไป หมายความว่า config ของผมจะเหลือแค่ hostname XRv กับ description บน GigabitEthernet0/0/0/1 แค่นั้น
RP/0/0/CPU0:XRv#show configuration rollback changes to 1000000003
Fri Nov 22 10:27:57.140 UTC
Building configuration...
!! IOS XR Configuration 6.1.3
interface GigabitEthernet0/0/0/2
no description 22222
!
interface GigabitEthernet0/0/0/3
no description 33333
!
end
เมื่อเช็คว่าเป็นไปตามที่ต้องการแล้วก็จัดไป…rollback โลด
RP/0/0/CPU0:XRv#rollback configuration to 1000000003
Fri Nov 22 10:28:38.628 UTCLoading Rollback Changes.
Loaded Rollback Changes in 1 sec
Committing.
4 items committed in 1 sec (3)items/sec
Updating.
Updated Commit database in 1 sec
Configuration successfully rolled back to '1000000003'.
ลองเช็ค configuration ดู
RP/0/0/CPU0:XRv#show running-config
Fri Nov 22 10:29:14.935 UTC
Building configuration...
!! IOS XR Configuration 6.1.3
!! Last configuration change at Fri Nov 22 10:28:39 2019 by nopnithi
!
hostname XRv
interface MgmtEth0/0/CPU0/0
shutdown
!
interface GigabitEthernet0/0/0/0
shutdown
!
interface GigabitEthernet0/0/0/1
description 11111
shutdown
!
interface GigabitEthernet0/0/0/2
shutdown
!
interface GigabitEthernet0/0/0/3
shutdown
!
interface GigabitEthernet0/0/0/4
shutdown
!
--More--
สรุป
- ถ้าจะ rollback ให้ใช้ command นี้
=> rollback configuration XXXXX - แต่ก่อนจะ rollback แนะนำให้ใช้ command เหล่านี้เช็คดูก่อน
=> show configuration commit changes XXX
=> show configuration rollback changes XXX - ไปลองเล่น keyword อย่าง all, last, since, to, to-exclude ให้ดี มีประโยชน์มาก
— — — — — — — — — — — — — — —
สารบัญเนื้อหาทั้งหมด (My Contents)
— — — — — — — — — — — — — — —