🌐 VI ▾
🔑 Đăng nhậpMở ứng dụng
Blog › Hướng dẫn

So sánh cấu hình router trước và sau tác động: 5 bước

So sánh cấu hình router trước và sau tác động là bước nhanh nhất để biết ca làm đêm đã đổi đúng những gì, không thừa không thiếu, và có sẵn lệnh rollback nếu cần quay lại.

ThienNV ·

Sau mỗi ca tác động, câu hỏi đầu tiên luôn là: cấu hình đã thay đổi đúng như CR chưa? Cách chắc chắn nhất là so sánh cấu hình router (hoặc switch) giữa bản lấy trước giờ tác động và bản lấy ngay sau khi xong. Nếu so bằng mắt hoặc bằng công cụ diff dòng thông thường, bạn sẽ chìm trong hàng trăm dòng khác nhau vô nghĩa: mốc thời gian, bộ đếm, thứ tự khối bị đảo. Bài này đưa ra quy trình 5 bước mà đội vận hành có thể áp dụng ngay.

Bước 1. Lấy bản cấu hình trước và sau, cùng một lệnh

Hai bản phải được lấy bằng cùng một lệnh, cùng tùy chọn, nếu không phần khác nhau sẽ toàn là do định dạng. Nhớ tắt phân trang trước khi xuất để không bị cắt mất dòng.

HãngTắt phân trangXuất cấu hình
Cisco IOS / IOS-XE / NX-OSterminal length 0show running-config
Huawei VRPscreen-length 0 temporarydisplay current-configuration
Juniper Junosset cli screen-length 0show configuration | display set | no-more
Nokia SR OS (classic)environment no moreadmin display-config
Nokia SR OS (MD-CLI)environment more falseadmin show configuration
ZTE ZXR10terminal length 0show running-config

Đặt tên file theo mẫu <tên-node>_truoc_<ngày>.txt và <tên-node>_sau_<ngày>.txt để sau này tra lại dễ. Bảng lệnh đầy đủ cho nhiều hãng có trong bài lệnh xuất cấu hình router, switch theo từng hãng.

Bước 2. Bỏ các dòng nhiễu

Có những dòng lần nào xuất cũng khác dù cấu hình không đổi. Nếu không lọc, chúng che mất thay đổi thật:

Description của cổng là trường hợp tùy: nếu CR có đổi description thì giữ lại, còn không thì có thể bỏ qua để bảng so gọn hơn.

Bước 3. So theo khối, không so theo dòng

Cấu hình router có cấu trúc khối: interface, vlan, router bgp, router ospf, vrf… Công cụ diff dòng (như diff hay so sánh văn bản thông thường) chỉ thấy dòng thêm/bớt, không biết dòng đó thuộc cổng nào. Khi thiết bị in lại khối theo thứ tự khác, diff dòng báo sai hàng loạt.

So theo khối nghĩa là ghép từng khối của bản trước với khối cùng tên ở bản sau, rồi mới so phần bên trong. Kết quả đọc được ngay dạng: interface GigabitEthernet0/0/1: thêm dòng service-policy output QOS-OUT. Đây cũng là cách để đối chiếu từng dòng với nội dung CR đã duyệt.

Một số hệ điều hành có sẵn lệnh so sánh trên thiết bị, nên tận dụng khi được:

Nhưng lệnh trên thiết bị chỉ so được với bản chính thiết bị đó lưu. Khi cần so hàng chục node, hay so với bản sao lưu từ tuần trước, vẫn phải lấy file về so ở ngoài.

Bước 4. Sinh lệnh áp dụng và lệnh rollback

Từ bảng khác nhau theo khối, có thể sinh hai bộ lệnh:

Lệnh rollback sinh tự động chỉ là bản nháp. Một số thay đổi không đảo ngược được bằng cách thêm no (ví dụ đổi IP trên cổng đang dùng để quản lý, đổi AS number). Luôn đọc lại và thử trên lab nếu có. Với Junos, commit confirmed kèm số phút là lưới an toàn tốt: nếu mất kết nối và không xác nhận lại, thiết bị tự quay về bản cũ.

Bước 5. Lưu hồ sơ cùng CR

Đính kèm vào hồ sơ CR ba thứ: file trước, file sau và bảng so sánh (HTML hoặc Excel). Lần sau có sự cố, chỉ cần mở lại để biết chính xác ca nào đã đổi dòng nào. Nhiều đội còn lưu bản sau làm "bản chuẩn" để lần tác động kế tiếp so với nó, phát hiện thay đổi ngoài CR (cấu hình ai đó sửa tay).

Lỗi hay gặp khi so sánh cấu hình

Công cụ So sánh cấu hình mạng (trước / sau) làm sẵn bước 2 đến bước 4: so theo khối interface/vlan/router, bỏ dòng thời gian và description, gợi ý lệnh áp dụng và lệnh rollback, xuất HTML hai cột để đính kèm CR. Muốn soạn cả hồ sơ CR thì xem Soạn CR tác động mạng, và soát định tuyến nhiều router sau tác động thì dùng Soát định tuyến BGP/OSPF/VRF.

Câu hỏi thường gặp

Tại sao so sánh cấu hình bằng diff thông thường lại báo quá nhiều khác biệt?

Vì diff so theo dòng nên tính cả dòng thời gian, mật khẩu băm lại và các khối bị in theo thứ tự khác. So theo khối (interface, vlan, router…) và bỏ dòng nhiễu trước sẽ chỉ còn thay đổi thật.

Juniper so sánh cấu hình với bản trước thế nào?

Trong chế độ cấu hình gõ show | compare để xem thay đổi chưa commit, hoặc show | compare rollback 1 để so với bản đã commit trước đó.

Lệnh rollback sinh tự động có chạy thẳng được không?

Nên coi là bản nháp. Một số thay đổi như đổi IP quản lý hay AS number không quay lại được chỉ bằng no/undo. Hãy đọc lại, thử trên lab nếu có, và với Junos dùng commit confirmed làm lưới an toàn.