23
1. Giới thiệu BGP 1.1. BGP là gì BGP(Border Gateway Protocol) 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 AS (Autonomous system), 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 BGP hỗ trợ tìm đường liên vùng phi lớp (CIDR Classless Inter-Domain Routing) và dùng kỹ thuật kết hợp đường đi để giảm kích thước bảng tìm đường (ví dụ nếu một mạng chiếm 255 địa chỉ lớp C từ 203.162.0.0/24 - 203.162.254.0/24 thì chỉ dùng 1 địa chỉ 203.162.0.0/16 để định danh mạng 1.2. Một số tính chất của BGP -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 sử dụng giao thức TCP 179. -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 đườgn mà router gửi về xem có chính bản thân AS trong đó hay khôngm nếu có route sẽ biết được ngay là đã bị lặp và sẽ loại bỏ thông tin đó. -Trong giai đoạn đầu tiên thiết lập mối quan hệ BGP thì toàn bộ thông tin cập nhật sẽ được trao đổi và sau đó sẽ chuyển sang cơ chế trigger-update.

bao cao BGP

Embed Size (px)

DESCRIPTION

BGP

Citation preview

Page 1: bao cao BGP

1. Giới thiệu BGP

1.1. BGP là gìBGP(Border Gateway Protocol) 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 AS (Autonomous system), 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

BGP hỗ trợ tìm đường liên vùng phi lớp (CIDR Classless Inter-Domain Routing) và dùng kỹ thuật kết hợp đường đi để giảm kích thước bảng tìm đường (ví dụ nếu một mạng chiếm 255 địa chỉ lớp C từ 203.162.0.0/24 - 203.162.254.0/24 thì chỉ dùng 1 địa chỉ 203.162.0.0/16 để định danh mạng

1.2. Một số tính chất của BGP-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 sử dụng giao thức TCP 179.-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 đườgn mà router gửi về xem có chính bản thân AS trong đó hay khôngm nếu có route sẽ biết được ngay là đã bị lặp và sẽ loại bỏ thông tin đó.-Trong giai đoạn đầu tiên thiết lập mối quan hệ BGP thì toàn bộ thông tin cập nhật sẽ được trao đổi và sau đó sẽ chuyển sang cơ chế trigger-update.-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ể 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.

1.3. Sử dụng BGP trong định tuyến

a. Khi nào thì sử dụng BGP?

Page 2: bao cao BGP

Khi mạng của một công ty kết nối đến nhiều ISP hoặc các AS khác và đang dùng các kết nối này. Nhiều công ty dùng các kết nối khác nhau nhằm mục đích dự phòng.

BGP còn được dùng khi chính sách định tuyến của nhà cung cấp dịch vụ và của công ty khác nhau.

b. Khi nào thì không nên sử dụng BGP

Mạng của ISP và mạng của công ty có chung một chính sách định tuyến Mặc dù công ty của bạn có nhiều kết nối đến ISP, các kết nối này là dự phòng và

vì vậy không cần một kế hoạch để kích hoạt nhiều hơn một kết nối đến Internet. Tài nguyên mạng là có giới hạn, chẳng hạn như bộ nhớ và CPU của router. Băng thông giữa các AS là thấp và các phí tổn cho định tuyến sẽ ảnh hưởng đến

quá trình chuyển dữ liệu.

2. Các thuộc tính của BPG

Nhóm Mô tảWell-known mandatory Các thuộc tính này là bắt buộc và được công nhận

bởi tất cả các router BGPWell-known Discretionary 

Không yêu cầu các thuộc tính này tồn tại trong các cập nhật nhưng nếu chúng tồn tại, tất cả các router sẽ công nhận và sẽ có hành động tương ứng dựa trên thông tin được chứa bên trong thuộc tính này.

Optional Transitive Router có thể không công nhận các thuộc tính này nhưng nếu router nhận được thuộc tính này, nó sẽ đánh dấu và gửi đầy đủ cập nhật này đến router kế tiếp. Các thuộc tính sẽ không thay đổi khi đi qua router nếu thuộc tính này không được công nhận bởi router.

Optional Nontransitive Các thuộc tính này bị loại bỏ nếu cập nhật mang thuộc tính này đi vào router mà router không hiểu hoặc không công nhận thuộc tính. Các thuộc tính này sẽ không truyền tới các BGP.

Page 3: bao cao BGP

2.1. Thuộc tính ORIGIN

Thuộc tính ORIGIN chỉ ra kiểu tài nguyên của BGP trong bảng BGP routing. Có

ba cách giúp cho BGP có thể học tuyến, trong các thiết bị của cisco ba cách đó là :

Sử dụng câu lệnh network

Từ EBGP hàng xóm

Thông qua redistribution

Câu lệnh network được sử dụng để quảng bá tuyến trong bảng định tuyến đến các

BGP hàng xóm. Các tuyến học được thông qua câu lệnh network có thuộc tính

ORIGIN đặt là IGP và chỉ ra rằng tuyến đó là tuyến nằm trong cùng AS.

Có hai kiểu kết nối BGP. Kiểu thứ nhất là kiểu kết nối giữa cá router chạy BGP

Page 4: bao cao BGP

trong cùng 1 AS. Kiểu này được gọi là Internal BGP (IBGP). Kiểu kết nối thứ 2 là

kiểu kết nối giữa các autonomous-system khác nhau. Kiểu này được gọi là External

BGP (EBGP)

Hình 9 : Các tuyến IBGP và EBGP

Các tuyến được học từ EBGP hàng xóm có thuộc tính ORIGIN là EGP. Các

tuyến redistributed trong BGP có thuộc tính ORIGIN là incomplete. Các tuyến IGP

được ưu tiên thông qua các tuyến EGP và các tuyến EGP được ưu tiên thông các các

tuyến incomplete. Nói cách khác các tuyến EBGP được ưu tiên, sử dụng thông qua các

tuyến IBGP

2.2. Thuộc tính NEXT_HOP

Khi một router quảng bá một tuyến đến router EBGP hàng xóm, thuộc tính

NEXT_HOP được đặt là địa chỉ IP của giao diện kết nối đến hàng xóm đó. Đặc biệt

nếu router quảng bá một tuyến được học thông qua EBGP đến IBGP hàng xóm, thuộc

tính NEXT_HOP sẽ không được thay đổi.

Page 5: bao cao BGP

Hình 10 : Thuộc tính NEXT_HOP

Khi một router nhận một tuyến từ một BGP hàng xóm, thuộc tính đầu tiên nó

kiểu tra là NEXT_HOP. Nếu NEXT_HOP không đạt được ( không nằm trong bảng

định tuyến), tuyến đó sẽ bị từ chối. EBGP sử dụng kết nối vật lí trực tiếp trên các giao

diện vật lí vì thế NEXT_HOP sẽ được đặt trong bảng routing giống như giao diện kết

nối trực tiếp. Các IBGP hàng xóm không có kết nối trực tiếp. Trong ví dụ hình 10

router B chấp nhận tuyến từ router A vì NEXT_HOP là mạng kết nối trực tiếp với nó.

Router C sẽ chấp nhận tuyến từ router B nếu mạng NEXT_HOP có trong bảng định

tuyến của router C.

Khi BGP khai báo một mạng, router tự định rõ bản thân router đó như là NEXT_

HOP. Tuy nhiên, nếu router đó gửi thông điệp update cho một router hàng xóm khác

trong cùng một AS thì nó lại tiếp tục dùng router ngoài AS làm NEXT_HOP. Do đó ta

phải cấu hình cho các router còn lại trong AS biết được chính router ở biên cùng AS

với nó là router Next Hop chứ không phải là router khác AS.

Page 6: bao cao BGP

Hình 11: Hoạt động của router với thuộc tính NEXT_HOP

Khi một router nhận một tuyến từ một BGP hàng xóm, thuộc tính đầu tiên nó

kiểu tra là NEXT_HOP. Nếu NEXT_HOP không đạt được ( không nằm trong bảng

định tuyến), tuyến đó sẽ bị từ chối. EBGP sử dụng kết nối vật lí trực tiếp trên các giao

diện vật lí vì thế NEXT_HOP sẽ được đặt trong bảng routing giống như giao diện kết

nối trực tiếp. Các IBGP hàng xóm không có kết nối trực tiếp. Trong ví dụ hình 10

router B chấp nhận tuyến từ router A vì NEXT_HOP là mạng kết nối trực tiếp với nó.

Router C sẽ chấp nhận tuyến từ router B nếu mạng NEXT_HOP có trong bảng định

tuyến của router C.

Khi BGP khai báo một mạng, router tự định rõ bản thân router đó như là NEXT_

HOP. Tuy nhiên, nếu router đó gửi thông điệp update cho một router hàng xóm khác

trong cùng một AS thì nó lại tiếp tục dùng router ngoài AS làm NEXT_HOP. Do đó ta

phải cấu hình cho các router còn lại trong AS biết được chính router ở biên cùng AS

với nó là router Next Hop chứ không phải là router khác AS.

Xét ví dụ hoạt động của router với thuộc tính NEXT_HOP trong hình 11

Bước 1: Router A gửi cập nhật về mạng 192.33.33.0

Page 7: bao cao BGP

Bước 2: Router D nhận update và truyền. Tuy nhiên nếu router D thay đổi địa chỉ

nguồn thành địa chỉ của chính nó, sẽ có một sự nhầm lẫn xảy ra vì trong môi trường đa

truy cập, mọi router sẽ công bố nó là NEXT_HOP. Để tránh tình huống này, địa chỉ

nguồn của thông tin cập nhật tuyến không thay đổi.

Bước 3: Router B biết router A là NEXT_HOP của mạng 192.33.33.0

Do tính chất này mà bắt buộc các IBGP hàng xóm phải có tuyến đến mạng

NEXT_HOP trong bảng định tuyến

2.3. Thuộc tính Autonomous system path (AS_PATH)

Thuộc tính này được sử dụng cho việc chọn tuyến và chống loop trong BGP.

AS_PATH thuộc vào nhóm well-known mandatory, cần được quảng bá và hiểu bởi tất

cả các router hàng xóm. Mỗi nhà cung cấp dịch vụ đều được gán một số định danh

duy nhất autonomous system (AS) trong khoảng từ 1 đến 64511. Các số AS này đã

được đăng kí và gán tương tự như việc cung cấp các dải địa chỉ IP . Các nhà cung cấp

dịch vụ cũng có thể định nghĩa các vùng tự trị AS bằng cách sử dụng các số AS riêng

có phạm vi cho phép trong khoảng 64512 đến 65534. Tuy nhiên các số AS riêng này

không được quảng bá ra internet và chỉ được sử dụng trong vùng AS đã tạo ra nó. Các

AS riêng tương tự như địa chỉ IP riêng

Chúng ta xét một ví dụ dưới đây với các nhà cung cấp dịch vụ được gán các số

AS 1, 2, 3 và 4. Nhà cung cấp dịch vụ với AS bằng 1 quảng bá mạng và netmask của

mạng 156.26.32.0/24 đến nhà cung cấp dịch vụ 2 với AS là 2.

Hình thuộc tính AS_PATH

Page 8: bao cao BGP

Khi tuyến được quảng bá được nhận bởi AS 2, AS 2 biết mạng 156.26.32.0 nằm

trong AS 1 bởi vì chỉ có 1 số AS duy nhất nằm trong thuộc tính AS_PATH và được

đặt bằng 1. Khi AS 2 quảng bá tuyến 156.26.32.0/24 đến AS 3, AS 2 sẽ được bổ xung

và được đặt vào AS_PATH. Kết quả sau khi nhận được quảng bá từ AS 2 thuộc tính

AS_PATH sẽ có giá trị là 2 1 với dấu cách giữa các số AS. AS 3 cũng biết rằng mạng

được quảng bá nằm trong AS 1 (do số cuối trong thuộc tính AS_PATH được đặt bằng

1 ) và mạng đó được quảng bá thông qua AS 2. AS 3 bổ xung số AS của nó vào thuộc

tính AS_PATH và quảng bá tuyến đến AS 4. AS 4 nhận thuộc tính quảng bá với

AS_PATH là 3 2 1 cho mạng 156.26.32.0/24

Nếu tất cả cá thuộc tính khác của BGP là bằng nhau, router với AS_PATH ngắn

nhất sẽ được sử dụng làm tham số để lựa chọn tuyến. Trong ví dụ trên ta chỉ quảng bá

cho mạng 156.26.32.0/24 và mặc định nó sẽ có đường dẫn tối ưu đến đích. Nếu có

nhiều tuyến, thuộc tính AS_PATH sẽ được sử dụng để lựa chọn tuyến tốt nhất tới đích.

Dưới đây là một ví dụ. Trong hình 3, AS 4 nhận 2 sự quảng bá cho mạng

156.26.32.0/24. Quảng bá từ AS 3 có độ dài AS là 3 và từ AS 5 có độ dài là 2. Vì thế

AS 4 chỉ quan tâm đến tuyến thông qua AS 5 và lựa chọn nó là tuyến tốt nhất để đến

đích. Tuyến tốt nhất này sẽ được đặt trong bảng định tuyến.

Hình Lựa chọn tuyến thông qua thuộc tính AS_PATH

AS_PATH là danh sách các số AS được quảng bá . Tham số này tương tự việc

Page 9: bao cao BGP

đếm số hop trong RIP vì số AS cũng được sử dụng để quyết định tuyến tốt nhất đến

đích (tương tự như hop count).

Ngoài việc AS_PATH được sử dụng cho việc lựa chọn tuyến tốt nhất đến đích.

BGP còn sử dụng thuộc tính AS_PATH để chống loop.

Trong hình 4, AS 4 quảng bá tuyến tốt nhất cho mạng 156.26.32.0/24 đến AS 6.

AS 6 quảng bá tuyến này đến AS 1 với AS_PATH là 6 4 5 1 . Khi AS 1 nhận quảng bá

từ AS 6 tuyến này sẽ bị từ chối vì AS 1 đã nằm trong AS_PATH. Các BGP routers từ

chối bất kì sự quảng bá nào mà chứa đựng số AS của chúng.

Hình 4: BGP chống loop sử dụng thuộc tinh AS_PATH

2.4. Thuộc tính WEIGHT

Weight là thuộc tính không được chỉ định trong BGP . Nó là thuộc tính đặc biệt

được phát triển trên các thiết bị của cisco và là thuộc tính do cisco định nghĩa. Tham

số này cũng là một trong các thuộc tính được sử dụng để quyết định tuyến tốt nhất tới

Page 10: bao cao BGP

đích. Trong hình 5, AS 2 nhận 2 sự quảng bá cho mạng 156.26.32.0/24. Quảng bá từ

AS 3 có AS_PATH dài là 3 và quảng bá từ AS 1 có độ dài là 2. AS 2 sẽ lựa chọn

tuyến thông qua AS 1 vì qua đó AS_PATH sẽ là ngắn nhất.

Hình 5 : AS 2 lựa chọn đường đến 156.26.32.0/24 thông qua AS 1 vì nó có thuộc tính

AS_PATH tốt nhất

Tuy nhiên nếu muốn router trong AS 2 sử dụng tuyến thông qua AS 3 thay thế

cho AS 1 ta sử dụng thuộc tính weight. Weight là thuộc tính được biểu diễn bằng 16

bit và giá trị trong khoảng 0 đến 65535. Router được sử dụng thuộc tính Weight để chỉ

định tuyến tới đích. Việc lựa chọn này thường được sử dụng khi có nhiều đường dẫn

tốt nhất đến cùng 1 đích. Trọng số Weight sẽ được ưu tiên hơn

Page 11: bao cao BGP

Hinh 6 : Chọn tuyến thông qua thuộc tính weight

Thuộc tính weight chỉ có giá trị trên router đó và không quảng bá ra các router

hàng xóm chạy BGP. Các tuyến BGP có weight mặc định là 32768

2.5. Thuộc tính Local Preference (LOCAL_PREF)

LOCAL_PREF là thuộc tính tương tự như weight. Khi có nhiều hơn một tuyến

tới một đích, tuyến có thuộc tính LOCAL_PREF cao nhất (khi các weight bằng nhau)

sẽ được lựa chọn là tuyến tốt nhất. Mặc định LOCAL_PREF có giá trị 100 và giá trị

cao hơn sẽ được ưu tiên sử dụng là tham số quyết định tuyến tới đích (khi weight bằng

nhau). LOCAL_PREF là một số 32 bit có giá trị từ 0 – 4294967295.

Trong hình 7, Router A và Router B có 2 đường đến mạng 156.26.32.0/24.

Router A sử dụng giá trị LOCAL_PREF mặc định là 100. Router B được thiết lập giá

trị LOCAL_PREF là 200 vì thế Router B sẽ lựa chọn tuyến qua AS 3. Không giống

như thuộc tính weight LOCAL_PREF được quảng bá trong 1 AS. Router A nhận

quảng bá cho mạng 156.26.32.0/24 từ Router B với LOCAL_PREF là 200. Vì thế

Router A sử dụng tuyến thông qua AS 3 để đạt tới mạng 156.26.32.0/24

Page 12: bao cao BGP

Hình 7: Thuộc tính LOCAL_PREF

2.6. Thuộc tính Metric hay MULTI_EXIT_DISC (MED)

Thuộc tính Weight được sử dụng để quyết định tuyến từ một router.

LOCAL_PREF được sử dụng để lựa chọn tuyến rời khỏi 1 autonomous system. Thuộc

tính MULTI_EXIT_DISC (Multi-exit discriminator hay MED) được sử dụng để quyết

định tuyến giữa các AS. MED cũng là một số có giá trị 32 bit tuy nhiên thuộc tính này

có một điểm khác biệt với thuộc tính LOCAL_PREF đó là giá trị thấp hơn sẽ được ưu

tiên thay vì giá trị cao sẽ được ưu tiên để chọn tuyến như trong LOCAL_PREF.

Dưới đây là một ví dụ chỉ ra việc lựa chọn tuyến dùng MED. Trong Hình 8, AS 5

quảng bá mạng 156.26.32.0/24 và có 2 đường để tới được mạng 156.26.32.0/24 từ AS

Page 13: bao cao BGP

1. AS 5 muốn AS 1 sử dụng tuyến bên phải cho lưu lượng từ AS 1 đến AS 5. AS 5

thiết lập MED bên trái có giá trị cao hơn giá trị mặc định là 0 và quảng bá giá trị này

đến AS 1

Hình 8 : Sử dụng thuộc tính MED để chọn tuyến

Nếu tất cả các thuộc tính khác của BGP là bằng nhau. AS 1 sẽ lựa chọn tuyến

bên phải đến AS 5 vì nó có giá trị MED thấp hơn. Độ ưu tiên của các thuộc tính trong

BGP được quyết định lần lượt là WEIGHT, LOCAL_PREF,AS_PATH và cuối cùng

là MED.

Khi 3 tham số trên là bằng nhau MED sẽ được sử dụng để chọn tuyến tốt nhất

đến đích

2.7. Thuộc tính Community

Đây là một thuộc tính không bắt buộc. Thuộc tính này được dùng để cung cấp

chính sách cho một nhóm các router đi qua các AS. Do đó các router này có cùng một

tính chất và có chung chính sách. Nếu một router nhận được một thông điệp thông tin

Page 14: bao cao BGP

cập nhật định tuyến với thuộc tính Community được thiết lập, nó sẽ xử lý thông điệp

này một cách hợp lí. Nếu nó không hiểu thông điệp này thì sẽ gửi thuộc tính đó cho

router hàng xóm xử lý. (Tuy nhiên, nếu nó hiểu thì sẽ không bao giờ gửi thuộc tính đó

cho router hàng xóm trừ khi được chỉ định làm thêm điều gì đó)

2.8. Chọn đường đi trong BGP

BGP sẽ chọn đường đi tốt nhất từ danh sách các đường đi hợp lệ dựa vào thứ tự ưu tiên của các luật sau (ưu tiên từ trên xuống dưới):

Ưu tiên đường đi có trọng số Weight cao nhất. Đây là một thông số do Cisco đưa ra, nó chỉ mang tính local trong một router.

Ưu tiên đường đi có Local Preference cao nhất. Có giá trị mặc định là 100. Ưu tiên đường đi có nguồn gốc từ lệnh Network hoặc aggregate hoặc thông qua

quá trình Redistribute từ một IGP. Các đương đi có nguồn gốc từ lệnh Network hay redistribute có độ ưu tiên cao hơn từ lệnh aggregate.

Ưu tiên đường đi có AS path ngắn nhất. Ưu tiên đường đi có nguồn gốc thấp nhất. IGP < EGP < INCOMPLETE. Ưu tiên đường đi có giá trị MED nhỏ nhất. Mặc định bằng 0. Ưu tiên đường đi eBGP hơn so với iBGP. Ưu tiên đường đi có IGP thấp nhất đến BGP next-hop. Nếu có hai đường đi đến đích mà có tất cả các thuộc tính trên là giống nhau thì nó

sẽ ưu tiên đường đi được nhận trước (đường đi cũ nhất). Ưu tiên đường đi đến BGP router có router ID nhỏ nhất. Giá trị router ID là địa chỉ

IP cao nhất trên Router. Cũng có thể gán bằng lệnh bgp router-id. Ưu tiên chođường đi có số cluster là ít nhất. Ưu tiên đường đi đến từ những láng giềng có địa chỉ thấp nhất. Địa chỉ này là địa

chỉ được dùng trong lệnh neighbor.

3. Hoạt động của BGP

BGP cho phép truyền thông tin định tuyến giữa các AS khác nhau trên toàn thế giới. Hình dưới cho biết nhiều AS và chúng sử dụng BGP để chia sẻ thông tin định tuyến giữa các AS khác nhau. Sử dụng hai dạng BGP:

Internal BGP (iBGP)

External BGP (eBGP)

Tất cả BGP speaking device cùng trong một AS sẽ sử dụng iBPG để liên lạc với BGP speaking khác. Và đối với các BPG speaking trong cùng AS sẽ phải thiết lập peer với các BGP speaking khác. Điều đó có nghĩa là cúng ta phải cấu hình full mesh cho iBGP để

Page 15: bao cao BGP

hoạt động một cách hợp lý. eBGP được sử dụng giữa các BGP speaking device của các AS khác nhau.

Sau khi thiết lập xong kết nối peer, BGP speaking device sẽ sử dụng thông tin mà chúng có được từ những trao đổi để tạo một BGP graph. Sau đó bắt đầu quá trình trao đổi thông tin định tuyến. Ban đầu chúng sẽ trao đổi toàn bộ bảng thông tin định tuyến. sau đó sẽ trao đổi thông tin update từng phần giữa các peer với nhau và trao đổi bản tin KEEP ALIVE để duy trì kết nối.

3.1. Định dạng đầu vào của bản tin(Message Header Format)

BGP sẽ tiến hành xử lý bản tin chỉ khi toàn bộ bản tin được nhận. Nó yêu cầu mỗi bản tin có kích thước nhỏ nhất là 19 octet và lớn nhất là 4096 octet. Header của message bao gồm:

Marker: trường này có độ dài 16 byte được sử dụng để xác định sự mất đồng bộ giữa một tập BGP peer và chứng thực các bản tin BGP đến. Giá trị của trường này phụ thuộc vào loại bản tin. Nếu một OPEN message nó sẽ không chứa thông tin chứng thực và Marker có giá trị toàn bit 1.

Length trường này có độ dài 2 byte cho biết độ dài của bản tin. Type: trường này có độ dài 1 byte cho biết loại bản tin được sử dụng.

Cụ thể như sau:

Type value Message Type1 OPEN message2 UPDATE message3 NOTIFICATION message4 KEEPALIVE message

3.2. Bản tin OPEN

Bản tin open là loại bản tin đầu tiên được gửi sau khi phiên kết nối TCP được thiết lập. khi bản tin OPEN được chấp nhận, một bản tin KEEPALIVE xác nhận bản tin OPEN được gửi trả lại. Sau khi bản tin UPDATE từng phần, bản tin NOTIFICATION và KEEPALIVE sẽ được trao đổi giữa các BGP peer.

TypeLength

Marker

Page 16: bao cao BGP

Định dạng bản tin OPEN

Version: trường này có độ dài 1 byte và được sử dụng để xác định các phiên bản của các BGP speaker từ kết quả của quá trình đàm phán với neighbor. Cụ thể như sau: BGP speaker sẽ thử đàm phán với giá trị cao nhất mà cả hai cùng hỗ trợ. Nếu giá trị version number được xác định trong trường version mà BGP speaker khác không hỗ trợ, một bản tin lỗi sẽ được gửi về cho nới gửi và phiên kết nối TCP sẽ bị ngắt. Quá trình trên sẽ tiếp tục cho đến khi một giá trị version number chung được thiết lập

My Autonomuos System: trường này có độ dài 2 byte chứa AS number của BGP speaker gửi. trường này sẽ thông báo cho BGP speaker nhận biết được giá trị AS number của hàng xóm của nó. Và giá trị này được sử dụng để tạo BGP graph

Hold time: trường này có độ dài 2 byte, thông báo cho BGP speaker nhận giá trị để nghị hold time của BGP gửi. Mỗi lần một bản tin được nhận giá trị hold time được reset về 0.

BGP Indentifer: có độ dài 4 byte, dùng để xác định tính duy nhất cho mỗi BGP speaker. BGP indentifier chính là địa chỉ IP cao nhất của loopback interface. Nếu loopback không được cấu hình thì nó chính là địa chỉ IP cao nhất của bất kỳ interface nào của router.

Optional Parameters Length: có độ dài 1 byte, cho biết tổng độ dài của bản tin. Optional Parameters:Trường này có độ dài biến đổi và chứa đựng một danh sách các

optional parameter. Nếu nó có giá trị là 0 thì Optional không được thiết lập.

3.3. Bản tin UPDATE

Sau khi BGP trở thành peer chúng sẽ trao đổi bản tin UPDATE từng phần chứa thông tin định tuyến cho BGP. Bản tin này chứa cả những tuyến đường khả thi để sử dụng và những tuyến đường không khả thi để loại bỏ.

Định dạng bản tin UPDATE:

Optional Parameter

Optional Parameter Length

BGP Indentifier

Hold Time

My Autonomuos SystemVersion

Network Layer Reachability Information

Total Path Attributes Length

Withdrawn Routes

Unfeasible Routes Length

Path Atrributes

Page 17: bao cao BGP

Unfeasible Routes Length: có độ dài 2 byte chứa độ dài của trường Withdrawn Routes.

Withdrawn Routes: trường này có độ dài thay đổi, chứa danh sách các tiền tố địa chỉ IP sẽ bị loại bỏ.

Total Path Attributes Length: có độ dài 2 byte, chứa độ dài của trường Path Atrributes.

Path Atrributes: trường này có độ dài thay đổi, chứa một chuỗi các thuộc tính về path

Network Layer Reachability Information: trường này gồm hai phần:o Length: cho biết độ dài của IP address prefixo Prefix: chứ IP address prefix

3.4. Bản tin KEEPALIVEBản tin KEEPALIVE được sử dụng để đảm bảo rằng peer vẫn tồn tại. Bản tin này được sử dụng trong trường hợp restart giá trị hold time. Chu kỳ gửi bản tin KEEPALIVE bằng 1/3 giá trị hold time.

3.5. Bản tin NOTIFICATIONBất cứ khi nào có lỗi một xảy ra trong BGP session, BGP speaker sẽ phát đi bản tin NOTIFICATION và kết nối bị ngắt.

Định dạng bản tin NOTIFICATION:

DataError Sub-codeError Code