BGP Communities là gì?
Trong các phần trước, bạn đã học một cách để điều khiển hướng đi của lưu lượng outbound (traffic đi ra) bằng cách tác động lên các route nhận được. Nhưng một câu hỏi quan trọng hơn trong thực tế là:
Làm thế nào để điều khiển lưu lượng inbound (traffic đi vào)?
Ví dụ trong bài lab này, nếu outbound traffic ưu tiên đi qua ISP2, thì hợp lý là inbound traffic cũng nên đi qua ISP2.
Có nhiều cách để làm điều đó:
🔹 Communities
BGP Communities là một cơ chế trong BGP cho phép administrator gắn thêm metadata (nhãn) vào các route.
Các nhãn này (community values) giúp:
🔹 Định dạng Community
Trong đó:
Ngoài ra còn có:
🔹 Use Cases chính của BGP Communities
🔹 Cách cấu hình Communities
Trong thực tế:
🔹 Scenario thực tế với ISP
ISP thường cho phép khách hàng dùng community để điều khiển cách ISP xử lý route.
Trong bài lab:
ISP1 định nghĩa:
🔹 Cấu hình trên ISP1
ip community-list 1 permit 64512:102
ip community-list 2 permit 64512:104
ip community-list 3 permit 64512:106
route-map PREPEND-AS permit 10
match community 1
set as-path prepend 64512 64512
route-map PREPEND-AS permit 20
match community 2
set as-path prepend 64512 64512 64512 64512
route-map PREPEND-AS permit 30
match community 3
set as-path prepend 64512 64512 64512 64512 64512 64512
route-map PREPEND-AS permit 40
router bgp 64512
address-family ipv4
neighbor 172.16.31.2 route-map PREPEND-AS out
exit-address-family
🔹 Phân tích chuyên sâu (CCIE level)
1. Community-list
ip community-list 1 permit 64512:102
→ Match các route có community tương ứng
2. Route-map logic
Ví dụ:
route-map PREPEND-AS permit 10
match community 1
set as-path prepend 64512 64512
→ Nếu route có community 64512:102
→ ISP sẽ prepend thêm 2 lần ASN 64512
➡️ Làm path dài hơn → kém hấp dẫn hơn
3. Sequence cuối (permit 40)
route-map PREPEND-AS permit 40
⚠️ Đây là điểm cực kỳ quan trọng:
👉 Nếu không có dòng này:
4. Apply outbound
neighbor 172.16.31.2 route-map PREPEND-AS out
→ ISP1 áp dụng policy khi advertise route ra ngoài
🔹 Insight quan trọng (thực chiến)
🔥 Community = “Remote Control” của ISP
Thay vì bạn:
👉 Bạn chỉ cần:
set community 64512:104
→ ISP tự hiểu và xử lý
🔥 So sánh: Community vs AS-Path Prepend
👉 Community mạnh hơn vì:
🔥 Use case thực tế
Bạn muốn:
👉 Trên ISP1:
set community 64512:106
→ ISP1 prepend nhiều lần
→ Internet sẽ prefer ISP2
🔹 Kết luận (góc nhìn kiến trúc)
BGP Communities là một trong những công cụ quan trọng nhất để:
👉 Nếu Local Preference là “vũ khí nội bộ”
👉 Thì Community chính là “ngôn ngữ giao tiếp với ISP”
Trong các phần trước, bạn đã học một cách để điều khiển hướng đi của lưu lượng outbound (traffic đi ra) bằng cách tác động lên các route nhận được. Nhưng một câu hỏi quan trọng hơn trong thực tế là:
Làm thế nào để điều khiển lưu lượng inbound (traffic đi vào)?
Ví dụ trong bài lab này, nếu outbound traffic ưu tiên đi qua ISP2, thì hợp lý là inbound traffic cũng nên đi qua ISP2.
Có nhiều cách để làm điều đó:
- AS Path Prepending (làm cho đường đi kém hấp dẫn)
- Hoặc sử dụng BGP Communities
🔹 Communities
BGP Communities là một cơ chế trong BGP cho phép administrator gắn thêm metadata (nhãn) vào các route.
Các nhãn này (community values) giúp:
- Xây dựng routing policy linh hoạt
- Điều khiển hành vi routing trong cả internal và external network
🔹 Định dạng Community
- Standard community: 32-bit (4 byte)
- Format phổ biến: ASN:Value
Ví dụ: 64512:102
Trong đó:
- Phần đầu (64512): thường là ASN của tổ chức
- Phần sau (102): giá trị do admin định nghĩa
Ngoài ra còn có:
- Extended Communities (64-bit)
- Large Communities (96-bit)
🔹 Use Cases chính của BGP Communities
- Traffic Engineering
- Điều khiển đường đi của traffic
- Ảnh hưởng đến path selection
- Policy Implementation
- Xây dựng các rule routing phức tạp
- Route Filtering
- Accept / reject route dựa vào community
- Simplify cấu hình
- Group nhiều route lại bằng tag thay vì match từng prefix
🔹 Cách cấu hình Communities
Trong thực tế:
- Communities được cấu hình trong route-map
- Sau đó apply vào neighbor BGP
🔹 Scenario thực tế với ISP
ISP thường cho phép khách hàng dùng community để điều khiển cách ISP xử lý route.
Trong bài lab:
ISP1 định nghĩa:
- 64512:102 → prepend AS 2 lần
- 64512:104 → prepend AS 4 lần
- 64512:106 → prepend AS 6 lần
🔹 Cấu hình trên ISP1
ip community-list 1 permit 64512:102
ip community-list 2 permit 64512:104
ip community-list 3 permit 64512:106
route-map PREPEND-AS permit 10
match community 1
set as-path prepend 64512 64512
route-map PREPEND-AS permit 20
match community 2
set as-path prepend 64512 64512 64512 64512
route-map PREPEND-AS permit 30
match community 3
set as-path prepend 64512 64512 64512 64512 64512 64512
route-map PREPEND-AS permit 40
router bgp 64512
address-family ipv4
neighbor 172.16.31.2 route-map PREPEND-AS out
exit-address-family
🔹 Phân tích chuyên sâu (CCIE level)
1. Community-list
ip community-list 1 permit 64512:102
→ Match các route có community tương ứng
2. Route-map logic
Ví dụ:
route-map PREPEND-AS permit 10
match community 1
set as-path prepend 64512 64512
→ Nếu route có community 64512:102
→ ISP sẽ prepend thêm 2 lần ASN 64512
➡️ Làm path dài hơn → kém hấp dẫn hơn
3. Sequence cuối (permit 40)
route-map PREPEND-AS permit 40
⚠️ Đây là điểm cực kỳ quan trọng:
- Không có match → match ALL
- Action: permit
👉 Nếu không có dòng này:
- Các route không có community → bị DROP
4. Apply outbound
neighbor 172.16.31.2 route-map PREPEND-AS out
→ ISP1 áp dụng policy khi advertise route ra ngoài
🔹 Insight quan trọng (thực chiến)
🔥 Community = “Remote Control” của ISP
Thay vì bạn:
- Cấu hình phức tạp trên ISP
- Hoặc yêu cầu ISP thay đổi policy
👉 Bạn chỉ cần:
set community 64512:104
→ ISP tự hiểu và xử lý
🔥 So sánh: Community vs AS-Path Prepend
| Prepend trực tiếp | Bạn | Thấp |
| Community | ISP xử lý | Rất cao |
- ISP có thể áp policy phức tạp
- Có thể áp dụng trên toàn hệ thống ISP
🔥 Use case thực tế
Bạn muốn:
- ISP1 = backup
- ISP2 = primary
👉 Trên ISP1:
set community 64512:106
→ ISP1 prepend nhiều lần
→ Internet sẽ prefer ISP2
🔹 Kết luận (góc nhìn kiến trúc)
BGP Communities là một trong những công cụ quan trọng nhất để:
- Điều khiển inbound traffic (bài toán khó nhất của BGP)
- Xây dựng policy routing ở scale ISP
- Tách biệt control-plane logic giữa customer và provider
👉 Nếu Local Preference là “vũ khí nội bộ”
👉 Thì Community chính là “ngôn ngữ giao tiếp với ISP”