Giao thức định tuyến BGP (Border Gateway Protocol)

Một phần của tài liệu Phân tích hiệu năng hoạt động định tuyến trong mạng MPLS và ứng dụng vào thực tế (Trang 59 - 66)

4.2.4.1 Khái niệm cơ bản về BGP

Định nghĩa:

BGP là một giao thức định tuyến phức tạp, được dùng nhiều trên Internet và trong các công ty đa quốc gia. Giao thức này được thiết kếđể kết nối các vùng tự trị

(Autonomous system - AS), không kết nối các subnets với 1 AS. Một AS là một nhóm các router cùng chia sẻ một chính sách và hoạt động trong cùng một miền nhất định. Mỗi AS được định danh bởi một số và được cung cấp bởi một nhà cung cấp AS hoặc bởi các ISPs. Con số này được chia ra làm 2 loại: Public có giá trị từ 1

đến 64511, privite có giá trị từ 64512 đến 65535. Các công ty lớn có thể dùng BGP như là một kết nối giữa các mạng ở các quốc gia khác nhau.

Đặc điểm:

- BGP là một giao thức định tuyến dạng path-vector và việc chọn đường đi tốt nhất thông thường dựa vào một tập hợp các thuộc tính (attribute).

- Nhiệm vụ của BGP là đảm bảo thông tin liên lạc trao đổi thông tin định tuyến giữa các AS.

- BGP chỉ ra chính xác danh sách toàn bộđường dẫn đến đích.

- Chống vòng lặp rất hiệu quả nhờ vào cơ chế xem xét các tuyến đường mà router gửi về xem có chính bản thân AS trong đó hay không nếu có route sẽ biết được ngay là đã bị lặp và sẽ loại bỏ thông tin đó.

- Một điểm khác biệt rõ thấy nhất của BGP so với các giao thức định tuyến loại IGP (như OSPF,RIP, EIGRP, IGRP,…) đó là nó không quan tâm đến các subnet cụ thể

Chương 4: Mô hình mng MPLS thc tế

trong một công ty, cơ quan,…mà nó quan tâm đến việc chuyển tải đầy đủ thông tin

đến 1 AS khác với các chính sách định tuyến (policy) cần thiết.

- BGP có thể sử dụng giữa các router trong cùng 1 AS và khác AS. Khi BGP được dùng trong cùng 1 AS thì được gọi là IBGP, còn dùng để kết nối các AS khác nhau thì gọi là EBGP (như trong hình 4.10).

4.2.4.2 Hoạt động của BGP:

Cập nhật bảng định tuyến:

Chức năng của BGP là để trao đổi định tuyến giữa các AS khác nhau và đảm bảo chọn lựa tuyến thông suốt không bị loop. Do BGP sử dụng giao thức TCP nên nó thừa kế tính tin cậy và kết nối có hướng của TCP. BGP xây dựng một biểu đồ

hình cây các AS dựa trên thông tin giữa các BGP neighbor để đảm bảo lựa chọn tuyến không loop. Kết nối giữa hai AS bất kỳđược thể hiện bởi đường Path.

Thiết lập mối quan hệ BGP neighbor:

Để chạy giao thức BGP thì đầu tiên các router phải thiết lập mối quan hệ

neighbor hay peer (có nghĩa là kết nối TCP phải được đảm bảo). Sau khi đã thiết lập

được mối quan hệ này, các router neighbor sẽ trao đổi thông tin bằng nhiều bản tin

để mở và xác nhận các thông số kết nối. Tiếp theo chúng sẽ trao đổi các thông tin về các tuyến đường BGP. Sau khi việc trao đổi thông tin này được hoàn tất thì các cập nhật thành phần (incremental update) sẽ được gửi đi khi có sự cố trong mạng chứ không truyền toàn bộ bảng định tuyến. Nếu như không có thông tin định tuyến nào được trao đổi thì sau thời gian keepalive (mặc định là 60s) các router chạy BGP sẽ tựđộng ngắt kết nối.

4.2.4.3 Các thuộc tính quan trọng:

Thuộc tính AS_PATH:

Có ý nghĩa trong việc xác định tìm đường đi tốt nhất, có hai chức năng: AS_PATH càng ngắn càng ưu tiên (chú ý: trong BGP thì đường đi được xác định theo kiểu AS – by – AS chứ không phải Hop – by - Hop như các giao thức định tuyến IGP) và ngăn ngừa loop (khi một route đã từng qua router thì nó sẽ không

Chương 4: Mô hình mng MPLS thc tế

Thuộc tính Origin:

Là thuộc tính dùng để xác định nguồn gốc của các tuyến routing được học trong bảng định tuyến. Có các khả năng sau:

-i: học từ các giao thức định tuyến IGP (được học bằng lệnh Network). -e: học từ giao thức EGP (ởđây cũng là BGP).

-?: không biết nguồn gốc của tuyến (được học bằng lệnh redistribute…).

Thuộc tính Next – Hop:

Thuộc tính này có tác dụng tương tự như giá trị next-hop trong IGP, tuy nhiên có một số khác biệt trong cách chọn next-hop giữa IGP và BGP. Đối với IGP thì để đến được đích (một mạng nào đó) thì next-hop là địa chỉ IP của router được router quảng bá route. Đối với BGP thì được chia ra làm hai loại:

-Đối với EBGP: thì next-hop là địa chỉ IP của router láng giềng quảng bá route. -Đối với IBGP: route được quảng bá trong cùng AS thì next-hop là địa chỉ IP của router láng giềng quảng bá route. Với route được quảng bá vào AS từ EBGP thì next-hop từ EBGP không được thay đổi vào trong IBGP, next-hop là địa chỉ IP của EBGP láng giềng mà nó học được.

Ví dụ:

Trong hình 4.9, router R1 sẽ quảng bá mạng 131.16.0.0/16 trong EBGP đến router R2 với next-hop là địa chỉ 10.10.10.1. Sau đó router R2 quảng bá mạng này

đến router R3 thì next-hop vẫn giữ nguyên là 10.10.10.1

Chương 4: Mô hình mng MPLS thc tế

Thuộc tính Next-hop trong môi trường Multiaccess:

Sẽ là không tối ưu nếu như vẫn giữ nguyên việc chọn next-hop là địa chỉ

nguồn khi quảng bá một route ra khỏi AS trong môi trường Multiaccess. Bởi vì điều này sẽ dẫn đến việc các gói tin bị gửi đến vài router trước khi có thể tìm ra được nguồn gốc xuất phát thực sự. Vì vậy, trong BGP có một luật là trong môi trường Multiaccess thì next-hop được giữ nguyên.

Ví dụ:

Trong hình 4.10 dưới đây, R4 là BGP neighbor với R3 mà không phải là neighbor của R2. Khi router R2 quảng bá mạng 131.16.0.0 đến router 4 trong EBGP thì nó được gửi đi với next-hop là 10.10.10.2 chứ không phải là 10.10.10.3. Ta thấy rằng nếu như mạng 131.16.0.0 được gửi đến router R4 với next-hop là 10.10.10.3 thì các gói tin sẽ đi qua router R3 sau đó mới được chuyển đến router R4, giả sử số

lượng router trong môi trường Multiaccess này là lớn thì nó sẽ gửi vòng quanh tất cả các hop đó. Với next-hop là 10.10.10.2 thì có thể thấy rằng đây là đường đi tốt nhất từ mạng 131.16.0.0 đến router R4.

Hình 4.10Minh họa thuộc tính next-hop trong môi trường Multiaccess

Thuộc tính Local Preference:

Chương 4: Mô hình mng MPLS thc tế

1 AS. Nó được biểu diễn bằng một con số và được so sánh để tìm đường đi (trong nhiều đường đi của 1 AS) đến đích (2 hoặc nhiều AS khác). Đường nào có giá trị

Local Preference cao hơn sẽ được chọn. Thuộc tính này chỉ có ý nghĩa trong phạm vi 1 AS và không bao giờ gửi ra khỏi AS đó, vì vậy tất cả các router có cùng một quyết định chung đểđến một route bên ngoài.

Ví dụ:

Khách hàng A đã mua kết nối đến hai nhà cung cấp dịch vụ ISP 1 và ISP 2. Một vấn đề xảy ra trong trường hợp này là khách hàng A sẽ đi đường nào ra ngoài internet. Nếu người quản trị muốn ra ngoài internet thông qua nhà cung cấp dịch vụ

ISP 1 thì R3 gán giá trị Local Preference (LP) là 300 và R4 gán cho route đến ISP2 một giá trị thấp hơn là 200. Bởi vì cả hai router R3 và R4 đều chuyển đổi thông tin

định tuyến cập nhật bằng IBGP nên chúng đều đồng ý rằng điểm ra khỏi AS bằng

đường qua ISP1 bởi vì giá trị LP ở router đi ra khỏi AS là cao hơn.

Hình 4.11Minh họa về thuộc tính Local Preference

Thuộc tính Weight:

Thuộc tính này tương tự như Local Preference ởđiểm là nó sẽưu tiên sử dụng route có giá trị weight cao hơn. Tuy nhiên điểm khác biệt đó là nó chỉ có ý nghĩa trong nội bộ 1 router chứ trong gửi thông tin cho những router bên cạnh. Có nghĩa là mô hình áp dụng cho thuộc tính này là một router đi ra ngoài internet được nối với 2

Chương 4: Mô hình mng MPLS thc tế

hay nhiều nhà cung cấp dịch vụ (khác với mô hình sử dụng thuộc tính Local Preference là 2 hay nhiều router trong cùng AS được nối với 2 hay nhiều nhà cung cấp dịch vụ).

Thông số này có tác động mạnh hơn bất kỳ thuộc tính nào, vì vậy nó rất quan trọng trong việc xác định route nào được ưu tiên. Nó là thuộc tính không bắt buộc.

Ví dụ:

Một Khách hàng A đã mua hai đường kết nối ra ngoài internet bởi hai nhà cung cấp dịch vụ là ISP1 và ISP2 thông qua router R3. Nếu người quản trị của khách hàng A muốn mạng của mình ra ngoài Internet thông qua dịch vụ của nhà cung cấp ISP1 thì đặt trọng số Weight trên Interface kết nối với ISP1 là 150 và trên Interface còn lại có con số cao hơn là 200. Lúc này, nếu mạng ổn định thì mọi gói tin ra ngoài internet đến R3 đều đi qua nhà cung cấp dịch vụ ISP1.

Hình 4.12 Minh họa thuộc tính Weight

Thuộc tính Multi_Exit_Disc (MED):

Thuộc tính này được trao đổi giữa các AS, có ý nghĩa dùng để 1 AS khác chọn đường đi đến một đích (một mạng) nào đó trong 1 AS đang tham chiếu. Một mô hình đơn giản để hiểu về thuộc tính này là: một AS có nhiều đường đến 1 nhà cung cấp dịch vụ (1 AS khác) và giá trị này được dùng để nhà cung cấp dịch vụ tìm

Chương 4: Mô hình mng MPLS thc tế

Đường nào có MED thấp hơn sẽ được chọn (có lẽ lý do này mà MED cũng thường

được gọi là metric). Ví dụ:

Trong hình 4.13 ta thấy rằng nhà cung cấp dịch vụ ISP nhận cập nhật định tuyến mạng 128.1.0.0/16 từ 3 nguồn khác nhau. Đó là R2 có MED là 50, R3 có MED là 150 và R4 có MED là 200. Lúc này ISP sẽ so sánh hai giá trị MED từ

khách hàng A và sẽ ưu tiên chọn R3 vì nó quảng bá MED nhỏ hơn. Nếu như lệnh bgp always-compare-med metric được sử dụng trên R1 thì nó sẽ tiếp tục so sánh các giá trị MED. Lúc này nó sẽ chọn R2 đểđến mạng 128.1.0.0/16 bởi nó có MED nhỏ

hơn so với MED của R3.

Hình 4.13Minh họa về thuộc tính Multi_Exit_Disc (MED)

4.2.4.4 Thuật toán tìm đường đi tốt nhất trong BGP:

• Chọn đường đi tường minh trong bảng trước(so với đường đi mặc định).

• Chọn đường đi có trọng số cao nhất (weight) (chỉ với router của Cisco).

• Chọn đường đi có độưu tiên cục bộ cao nhất (local preference).

• Chọn đường đi do chính người quản trị mạng cài đặt trên router (static route, có thuộc tính origin là INCOMPLETE).

• Chọn đường đi đi qua ít AS nhất (AS path ngắn nhất).

Chương 4: Mô hình mng MPLS thc tế

• Chọn đường đi có mức độ ưu tiên gần/xa thấp nhất MED (Multi exit discriminator).

• Chọn đường đi ra bên ngoài trước (external path).

• Chọn đường đi có độđo IGP đến hop tiếp theo thấp nhất (IGP metric to the next hop).

• Chọn đường đi tồn tại trong bảng lâu nhất (oldest one).

• Chọn đường đi đến router tiếp theo có BGP ID thấp nhất.

Một phần của tài liệu Phân tích hiệu năng hoạt động định tuyến trong mạng MPLS và ứng dụng vào thực tế (Trang 59 - 66)