Mô hình thực hiện
Các bước cấu hình trên Router
Trên R1
R1(config) # interface e0/0
R1(config-if) ip address 192.168.12.1 255.255.255.0
R1(config-if) #no shutdown
R1(config-if) #exit
R1(config) #exit
R1#wr
+ Cấu hình giao diện Loopback 0
R1(config) #interface loopback 0
R1(config-if) ip address 1.1.1.1 255.255.255.255
R1(config-if) #exit
R1(config) #exit
R1#wr
+ Cấu hình BGP
R1#conf t
R1(config)#router bgp 1
R1(config-router)#bgp router-id 1.1.1.1
R1(config-router)#neighbor 192.168.12.2 remote-as 2
R1(config-router)#neighbor 192.168.12.2 update-source e0/0
R1(config-router)#exit
R1(config)#exit
R1#wr
- Trên R2
R2(config) # interface e0/0
R2(config-if) ip address 192.168.12.2 255.255.255.0
R2(config-if) #no shutdown
R2(config-if) #exit
R2(config) #exit
R2#wr
+ Cấu hình BGP
R2#conf t
R2(config)#router bgp 2
R2(config-router)#neighbor 192.168.12.1 remote-as 1
R2(config-router)#neighbor 192.168.12.1 update-source e0/0
R2(config-router)#exit
R2(config)#exit
R2#wr
- Kiểm tra trạng thái phiên trên R1 và R2 bằng lệnh " show ip bgp summary"
Tiếp theo VnPro sẽ bắt gói OPEN MESSAGE của R1 đến R2
Chúng ta sẽ chạy lệnh wireshark -i vunl0_1_0
Sau đó ta sẽ lọc trên thanh filter bằng lệnh tcp.port == 179 để lọc gói mà chúng ta cần
(Lệnh tcp.port == 179 dùng để lọc các gói tin liên quan đến giao thức BGP, vì cổng TCP 179 là cổng mặc định của BGP.)
Và sau đó chọn type OPEN MESSAGE để xem thông tin cần đến
Nếu như vẫn chưa thấy gói cần bắt thì bạn hãy nhập clear ip bgp * trên R1 thì sẽ tìm được gói tin bạn cần
(Giải thích : lệnh clear ip bgp *
+ Nó sẽ đặt lại (reset) tất cả các phiên (session) BGP trên router với các neighbor của nó.
+ Tất cả các kết nối BGP sẽ bị ngắt và sau đó được thiết lập lại từ đầu.
+ Bảng định tuyến BGP sẽ được làm mới, tức là router sẽ xóa thông tin định tuyến hiện tại và yêu cầu cập nhật lại từ các neighbor.)
Dưới đây là những phần chúng ta cần quan sát
Ở phía trên, bạn có thể thấy gói tin BGP OPEN được gửi từ router R1 đến router R2. Gói tin này chứa các trường thông tin quan trọng bao gồm:
Tiếp theo chúng ta sẽ tạo 1 thông điệp BGP UPDATE được gửi từ router R1:
( Router R1 (AS 1) sẽ quảng bá địa chỉ 1.1.1.1/32 qua BGP để các router khác biết và có thể sử dụng địa chỉ này trong định tuyến hoặc thiết lập phiên BGP.)
R1#conf t
R1(config)#router bgp 1
R1(config)#network 1.1.1.1 mask 255.255.255.255
Sau đó chúng ta tìm type UPDATE BGP để xem gói
Đây là gói tin BGP UPDATE Message từ R1 gửi đi. Gói tin này không có tuyến đường bị rút (withdrawn routes), nhưng có một số thuộc tính BGP:
Tiếp theo hãy xóa lệnh network của giao diện loopback trên R1 để chúng ta có thể thấy thông tin withdrawn routes trong gói tin UPDATE Message.
Trên R1 VnPro sẽ cấu hình
R2#conf t
R2(config)#interface loopback 0
R2(config-if)# shutdown
Đây là kết quả nhận được
Khi các neighbor BGP không có tuyến đường nào để quảng bá hoặc rút, để đảm bảo phía bên kia vẫn “sống” (still there), BGP sử dụng các gói tin KEEPALIVE định kỳ. Mặc định, BGP gửi gói tin KEEPALIVE dài 19 byte mỗi 60 giây. Nếu một neighbor BGP không nhận được 3 gói KEEPALIVE liên tiếp (3 x 60 = 180 giây, bằng giá trị Hold Time), nó sẽ xóa các tuyến đường từ neighbor đó.
Dưới đây là gói tin KEEPALIVE đã được bắt.
Border Gateway Protocol - KEEPLIVE Message
Marker: ffffffffffffffffffffffffffffffff
Length: 19
Type: KEEPALIVE Message (4)
Để VnPro cho bạn xem một ví dụ về một thông báo (notification message), chúng ta sẽ làm một điều gì đó mà BGP không thích
VnPro sẽ cấu hình trên R2 như sau
(Các lệnh này được sử dụng để xóa cấu hình BGP hiện tại (với AS 2) và sau đó cấu hình lại một neighbor BGP mới (với địa chỉ IP 192.168.12.1) thuộc về một AS khác (AS 1) trong một tiến trình BGP mới (với AS 22) trên router R2.)
R2#conf t
R2(config)#router bgp 22
R2(config-router)#neighbor 192.168.12.1 remote-as 1
Bằng cách thay đổi số hiệu AS trên một trong các router, chúng ta sẽ có một sự không khớp. Đây là bản ghi Wireshark:
"R1 đang gửi cho R2 một thông báo (notification message) với một lỗi nghiêm trọng là "lỗi thông điệp OPEN (open message error)" và mã lỗi phụ (subtype) là "AS ngang hàng không hợp lệ (bad peer AS)".
Bản ghi Wireshark này cho thấy router đang nhận được một thông điệp BGP Notification từ một peer. Thông điệp này chỉ ra rằng đã xảy ra lỗi trong quá trình thiết lập phiên BGP (liên quan đến thông điệp OPEN), cụ thể là AS number của peer (22) không khớp với AS number được cấu hình cho neighbor này trên router nhận. Điều này phù hợp với kịch bản đã được mô tả trước đó về việc thay đổi AS number trên một trong các router gây ra sự không khớp.
Người thực hiện : Phòng kỹ thuật - Phan Văn Phú | VnPro
Các bước cấu hình trên Router
Trên R1
R1(config) # interface e0/0
R1(config-if) ip address 192.168.12.1 255.255.255.0
R1(config-if) #no shutdown
R1(config-if) #exit
R1(config) #exit
R1#wr
+ Cấu hình giao diện Loopback 0
R1(config) #interface loopback 0
R1(config-if) ip address 1.1.1.1 255.255.255.255
R1(config-if) #exit
R1(config) #exit
R1#wr
+ Cấu hình BGP
R1#conf t
R1(config)#router bgp 1
R1(config-router)#bgp router-id 1.1.1.1
R1(config-router)#neighbor 192.168.12.2 remote-as 2
R1(config-router)#neighbor 192.168.12.2 update-source e0/0
R1(config-router)#exit
R1(config)#exit
R1#wr
- Trên R2
R2(config) # interface e0/0
R2(config-if) ip address 192.168.12.2 255.255.255.0
R2(config-if) #no shutdown
R2(config-if) #exit
R2(config) #exit
R2#wr
+ Cấu hình BGP
R2#conf t
R2(config)#router bgp 2
R2(config-router)#neighbor 192.168.12.1 remote-as 1
R2(config-router)#neighbor 192.168.12.1 update-source e0/0
R2(config-router)#exit
R2(config)#exit
R2#wr
- Kiểm tra trạng thái phiên trên R1 và R2 bằng lệnh " show ip bgp summary"
Tiếp theo VnPro sẽ bắt gói OPEN MESSAGE của R1 đến R2
Chúng ta sẽ chạy lệnh wireshark -i vunl0_1_0
Sau đó ta sẽ lọc trên thanh filter bằng lệnh tcp.port == 179 để lọc gói mà chúng ta cần
(Lệnh tcp.port == 179 dùng để lọc các gói tin liên quan đến giao thức BGP, vì cổng TCP 179 là cổng mặc định của BGP.)
Và sau đó chọn type OPEN MESSAGE để xem thông tin cần đến
Nếu như vẫn chưa thấy gói cần bắt thì bạn hãy nhập clear ip bgp * trên R1 thì sẽ tìm được gói tin bạn cần
(Giải thích : lệnh clear ip bgp *
+ Nó sẽ đặt lại (reset) tất cả các phiên (session) BGP trên router với các neighbor của nó.
+ Tất cả các kết nối BGP sẽ bị ngắt và sau đó được thiết lập lại từ đầu.
+ Bảng định tuyến BGP sẽ được làm mới, tức là router sẽ xóa thông tin định tuyến hiện tại và yêu cầu cập nhật lại từ các neighbor.)
Dưới đây là những phần chúng ta cần quan sát
Ở phía trên, bạn có thể thấy gói tin BGP OPEN được gửi từ router R1 đến router R2. Gói tin này chứa các trường thông tin quan trọng bao gồm:
- Phiên bản BGP (BGP Version): thường là version 4 – đây là phiên bản được sử dụng phổ biến nhất hiện nay.
- Số hệ tự trị (AS number): định danh của Autonomous System mà router đang thuộc về, ví dụ AS 1 hoặc AS 2.
- Thời gian giữ (Hold Time): là khoảng thời gian (tính bằng giây) mà một router sẽ chờ đợi trước khi xem peer BGP là không còn hoạt động nếu không nhận được thông điệp keepalive.
- BGP Identifier: địa chỉ IP dạng 32-bit duy nhất dùng để định danh router BGP, thường là địa chỉ loopback.
- Các tham số tùy chọn (Optional Parameters):
- MP-BGP (Multiprotocol BGP): hỗ trợ BGP mang thông tin định tuyến cho nhiều giao thức lớp mạng khác nhau như IPv6, VPNv4,...
- Route Refresh: cho phép router có thể yêu cầu peer gửi lại toàn bộ bảng định tuyến mà không cần phải reset phiên BGP.
Tiếp theo chúng ta sẽ tạo 1 thông điệp BGP UPDATE được gửi từ router R1:
( Router R1 (AS 1) sẽ quảng bá địa chỉ 1.1.1.1/32 qua BGP để các router khác biết và có thể sử dụng địa chỉ này trong định tuyến hoặc thiết lập phiên BGP.)
R1#conf t
R1(config)#router bgp 1
R1(config)#network 1.1.1.1 mask 255.255.255.255
Sau đó chúng ta tìm type UPDATE BGP để xem gói
Đây là gói tin BGP UPDATE Message từ R1 gửi đi. Gói tin này không có tuyến đường bị rút (withdrawn routes), nhưng có một số thuộc tính BGP:
- ORIGIN: Thuộc tính nguồn gốc của tuyến đường.
- AS_PATH: Thuộc tính đường đi AS, là thuộc tính transitive (bắt buộc truyền qua các router).
- MULTI_EXIT_DISC (MED): Thuộc tính phân biệt lối ra đa đường, là thuộc tính optional (tùy chọn).
- NLRI (Network Layer Reachability Information): Thông tin khả năng tiếp cận tầng mạng, chứa tiền tố (prefix) mà R1 quảng bá, ví dụ: 1.1.1.1/32.
Tiếp theo hãy xóa lệnh network của giao diện loopback trên R1 để chúng ta có thể thấy thông tin withdrawn routes trong gói tin UPDATE Message.
Trên R1 VnPro sẽ cấu hình
R2#conf t
R2(config)#interface loopback 0
R2(config-if)# shutdown
Đây là kết quả nhận được
Khi các neighbor BGP không có tuyến đường nào để quảng bá hoặc rút, để đảm bảo phía bên kia vẫn “sống” (still there), BGP sử dụng các gói tin KEEPALIVE định kỳ. Mặc định, BGP gửi gói tin KEEPALIVE dài 19 byte mỗi 60 giây. Nếu một neighbor BGP không nhận được 3 gói KEEPALIVE liên tiếp (3 x 60 = 180 giây, bằng giá trị Hold Time), nó sẽ xóa các tuyến đường từ neighbor đó.
Dưới đây là gói tin KEEPALIVE đã được bắt.
Border Gateway Protocol - KEEPLIVE Message
Marker: ffffffffffffffffffffffffffffffff
Length: 19
Type: KEEPALIVE Message (4)
Để VnPro cho bạn xem một ví dụ về một thông báo (notification message), chúng ta sẽ làm một điều gì đó mà BGP không thích
VnPro sẽ cấu hình trên R2 như sau
(Các lệnh này được sử dụng để xóa cấu hình BGP hiện tại (với AS 2) và sau đó cấu hình lại một neighbor BGP mới (với địa chỉ IP 192.168.12.1) thuộc về một AS khác (AS 1) trong một tiến trình BGP mới (với AS 22) trên router R2.)
R2#conf t
R2(config)#router bgp 22
R2(config-router)#neighbor 192.168.12.1 remote-as 1
Bằng cách thay đổi số hiệu AS trên một trong các router, chúng ta sẽ có một sự không khớp. Đây là bản ghi Wireshark:
"R1 đang gửi cho R2 một thông báo (notification message) với một lỗi nghiêm trọng là "lỗi thông điệp OPEN (open message error)" và mã lỗi phụ (subtype) là "AS ngang hàng không hợp lệ (bad peer AS)".
Bản ghi Wireshark này cho thấy router đang nhận được một thông điệp BGP Notification từ một peer. Thông điệp này chỉ ra rằng đã xảy ra lỗi trong quá trình thiết lập phiên BGP (liên quan đến thông điệp OPEN), cụ thể là AS number của peer (22) không khớp với AS number được cấu hình cho neighbor này trên router nhận. Điều này phù hợp với kịch bản đã được mô tả trước đó về việc thay đổi AS number trên một trong các router gây ra sự không khớp.
Người thực hiện : Phòng kỹ thuật - Phan Văn Phú | VnPro