Chào anh em đồng nghiệp và các bạn đam mê networking! 👋
Hôm nay, mình muốn chia sẻ một "chiêu" khá hay trong thế giới BGP, đó là AS Path Prepending. Nghe có vẻ hơi "khoai" đúng không? Nhưng thực ra nó là một cách "nhờ vả" các router chọn đường đi mạng theo ý mình đó! Cùng mình khám phá xem nó hoạt động thế nào nhé!
1. "Nói Chuyện" Một Chút về BGP và "Chiêu" Prepending:
2. Tình Huống "Thực Tế Ảo" và Sơ Đồ Mạng "Nhà Mình":
Để dễ hình dung, mình tạo một tình huống nhỏ với 3 router trong "mạng nhà mình" nhé:
Cả nhà R1 và nhà R3 đều muốn "gửi hàng" (dữ liệu mạng 1.1.1.0/24) đến nhà R2. Chúng ta sẽ thử "nhờ" R1 "làm chậm" mình lại một chút để R2 "thích" nhận hàng từ R3 hơn.
Sơ đồ mạng "tối giản" (dành cho dễ hiểu):
"Hàng" cần gửi: mạng 1.1.1.0/24 (từ R1 và R3).
3. "Bắt Tay" vào Cấu Hình trên "Em" Cisco IOS:
Bước 1: "Chào hỏi" địa chỉ IP và "lập sổ địa chỉ" (loopback) cho các nhà:
Chúng ta sẽ dùng Route Map để "thêm bước chân" vào con đường mà R1 quảng bá đến R2.
4. "Xem Phim" Kết Quả và Giải Thích "Hậu Trường":
Sau khi "phù phép" xong, khi nhà R2 "nghe ngóng" về đường đi đến mạng 1.1.1.0/24, sẽ thấy:
Thế là, BGP sẽ "ưu ái" chọn con đường "ngắn" hơn, tức là qua nhà R3 để đến mạng 1.1.1.0/24.
5. Vài "Lưu Ý Nhỏ" Khi "Vọc" Prepending:
Lời Kết "Tâm Tình":
Vậy là chúng ta vừa "mổ xẻ" xong kỹ thuật AS Path Prepending. Hy vọng qua cách diễn đạt "hóm hỉnh" này, anh em sẽ thấy BGP không còn quá "khó nhằn" nữa. Nếu có bất kỳ thắc mắc hay "cao kiến" nào, đừng ngại chia sẻ bên dưới nhé! Cùng nhau "vọc vạch" cho mạng lưới nhà mình ngày càng "xịn sò" hơn! 😉
Để hiểu rõ hơn về từng bước cấu hình và xem hình ảnh minh họa chi tiết, mời các bạn tham khảo file hướng dẫn đính kèm bên dưới nhé!
Cấu hình AS Path Prepending trong BGP.pdf
Hôm nay, mình muốn chia sẻ một "chiêu" khá hay trong thế giới BGP, đó là AS Path Prepending. Nghe có vẻ hơi "khoai" đúng không? Nhưng thực ra nó là một cách "nhờ vả" các router chọn đường đi mạng theo ý mình đó! Cùng mình khám phá xem nó hoạt động thế nào nhé!
1. "Nói Chuyện" Một Chút về BGP và "Chiêu" Prepending:
- BGP (Border Gateway Protocol): Chắc hẳn anh em làm mạng không còn lạ gì "anh bạn" này rồi. BGP giống như "ông tơ bà nguyệt" của Internet, giúp các "vùng mạng" (hay còn gọi là Hệ thống Tự trị - AS) tìm đến nhau và "bắt tay" để dữ liệu có thể "vi vu" khắp nơi.
- AS Path Prepending: Đây là một "bí kíp" giúp chúng ta "tác động" vào quyết định chọn đường đi của BGP. Bằng cách "kéo dài" cái "lịch sử" các vùng mạng mà một gói tin đi qua, chúng ta có thể làm cho một số con đường trở nên "kém hấp dẫn" hơn trong mắt router.
2. Tình Huống "Thực Tế Ảo" và Sơ Đồ Mạng "Nhà Mình":
Để dễ hình dung, mình tạo một tình huống nhỏ với 3 router trong "mạng nhà mình" nhé:
- R1 (nhà AS số 1): "Hàng xóm" của R2.
- R2 (nhà AS số 2): Có "quan hệ" với cả R1 và R3.
- R3 (nhà AS số 1): Cũng là "hàng xóm" của R2.
Cả nhà R1 và nhà R3 đều muốn "gửi hàng" (dữ liệu mạng 1.1.1.0/24) đến nhà R2. Chúng ta sẽ thử "nhờ" R1 "làm chậm" mình lại một chút để R2 "thích" nhận hàng từ R3 hơn.
Sơ đồ mạng "tối giản" (dành cho dễ hiểu):
"Hàng" cần gửi: mạng 1.1.1.0/24 (từ R1 và R3).
3. "Bắt Tay" vào Cấu Hình trên "Em" Cisco IOS:
Bước 1: "Chào hỏi" địa chỉ IP và "lập sổ địa chỉ" (loopback) cho các nhà:
- Nhà R1:
Code:R1(config)#interface loopback0 R1(config-if)#ip address 1.1.1.1 255.255.255.0 R1(config)#interface g0/0 R1(config-if)#ip address 192.168.12.1 255.255.255.0 R1(config-if)#no shutdown
- Nhà R3:
Code:R3(config)#interface loopback0 R3(config-if)#ip address 1.1.1.1 255.255.255.0 R3(config)#interface g0/0 R3(config-if)#ip address 192.168.23.3 255.255.255.0 R3(config-if)#no shutdown
- Nhà R2:
Code:R2(config)#interface g0/0 R2(config-if)#ip address 192.168.12.2 255.255.255.0 R2(config-if)#no shutdown R2(config)#interface g0/1 R2(config-if)#ip address 192.168.23.2 255.255.255.0 R2(config-if)#no shutdown
- Nhà R1 (AS 1):
Code: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)#network 1.1.1.0 mask 255.255.255.0
- Nhà R3 (AS 1):
Code:R3(config)#router bgp 1 R3(config-router)#bgp router-id 3.3.3.3 R3(config-router)#neighbor 192.168.23.2 remote-as 2 R3(config-router)#network 1.1.1.0 mask 255.255.255.0
- Nhà R2 (AS 2):
Code:R2(config)#router bgp 2 R2(config-router)#neighbor 192.168.12.1 remote-as 1 R2(config-router)#neighbor 192.168.23.3 remote-as 1
Chúng ta sẽ dùng Route Map để "thêm bước chân" vào con đường mà R1 quảng bá đến R2.
Code:
R1(config)#route-map PREPEND permit 10 R1(config-route-map)#set as-path prepend 1 1 1 1 1 R1(config-route-map)#exit R1(config)#router bgp 1 R1(config-router)#neighbor 192.168.12.2 route-map PREPEND out
Sau khi "phù phép" xong, khi nhà R2 "nghe ngóng" về đường đi đến mạng 1.1.1.0/24, sẽ thấy:
- Đường đi từ nhà R1 có vẻ "xa xôi" hơn với "dấu chân": 1 1 1 1 1 1.
- Đường đi từ nhà R3 thì "gần gũi" hơn với "dấu chân": 1.
Thế là, BGP sẽ "ưu ái" chọn con đường "ngắn" hơn, tức là qua nhà R3 để đến mạng 1.1.1.0/24.
5. Vài "Lưu Ý Nhỏ" Khi "Vọc" Prepending:
- Đừng "vẽ vời" quá nhiều "dấu chân", dễ làm "lạc" đường đó anh em! Vài lần lặp là đủ "tác dụng" rồi.
- Sau khi "chỉnh sửa" đường đi, nhớ "theo dõi" xem "xe cộ" chạy đúng hướng mình muốn không nhé!
- "Thử nghiệm" kỹ trong "sân chơi riêng" (lab) trước khi "áp dụng" vào "đường thật" nha!
Lời Kết "Tâm Tình":
Vậy là chúng ta vừa "mổ xẻ" xong kỹ thuật AS Path Prepending. Hy vọng qua cách diễn đạt "hóm hỉnh" này, anh em sẽ thấy BGP không còn quá "khó nhằn" nữa. Nếu có bất kỳ thắc mắc hay "cao kiến" nào, đừng ngại chia sẻ bên dưới nhé! Cùng nhau "vọc vạch" cho mạng lưới nhà mình ngày càng "xịn sò" hơn! 😉
Để hiểu rõ hơn về từng bước cấu hình và xem hình ảnh minh họa chi tiết, mời các bạn tham khảo file hướng dẫn đính kèm bên dưới nhé!
Cấu hình AS Path Prepending trong BGP.pdf
✍️Nguyễn Hùng Vĩ | PKT - VnPro