Giao thức định tuyến BGP (Border Gateway Protocol)
Trang 1LỜI CẢM ƠN
Trước hết tôi xin bày tỏ lòng biết ơn chân thành đến Th.s Trần Quang Đạt,người đã tận tình hướng dẫn, giúp đỡ và tạo điều kiện thuận lợi cho tôi trong thời gianthực hiện đề tài Xin gửi lời cảm ơn chân thành, lòng biết ơn sâu sắc tới các thầy cô, bốmẹ và tất cả các bạn trong khoa Điện tử viễn thông - ĐH Công Nghệ đã tận tình giúpđỡ, động viên và tạo điều kiện để tôi thực hiện tốt đề tài này.
Mặc dù đã hết sức cố gắng xong chắc chắn không tránh khỏi những thiếu sót.Em rất mong nhận được sự thông cảm và chỉ bảo tận tình của quý thầy cô, các anh chịvà tất cả các bạn.
Hà Nội, tháng 5 năm 2008
Trang 2MỤC LỤC
LỜI CẢM ƠN 1
CÁC THUẬT NGỮ TIẾNG ANH 3
Lời giới thiệu 4
CÁC THUỘC TÍNH VÀ THUẬT NGỮ SỬ DỤNG TRONG BGP 7
2.1 Định nghĩa Autonomous System (AS) 8
2.2 Thuộc tính Autonomous system path (AS_PATH) 9
2.3 Thuộc tính WEIGHT 11
2.4 Thuộc tính Local Preference (LOCAL_PREF) 13
2.5 Thuộc tính Metric hay MULTI_EXIT_DISC (MED) 14
3.1 Hoạt động của EBGP 18
3.1.1 Khảo sát hoạt động của EBGP 18
3.1.2 Cấu trúc thông báo của BGP 19
3.2 Quảng bá tuyến trong BGP 25
3.2.1 Quảng bá tuyến sử dụng câu lệnh Network 26
3.2.2 Quảng bá tuyến sử dụng redistribute 33
3.3 Hoạt động của IBGP 37
3.3.1 Khảo sát hoạt động của IBGP 37
3.3.2 Giao diện loopback trong IBGP 48
3.3.3 Route-Reflector (RR) 52
3.3.4 Phân cấp định tuyến trong các AS (Confederations) 57
3.4 Giải thuật định tuyến trong BGP 60
Trang 3CÁC THUẬT NGỮ TIẾNG ANH
AGGREGATE Quá trình tóm tắt tuyến
AUTONOMOUS SYSTEM Vùng tự trịBORDER GATEWAY PROTOCOL Giao thức BGP
CONFEDERATION Sự phân chia AS nhằm giảm số tuyến
ROUTE_REFLECTOR Phản xạ tuyến nhằm làm giảm số tuyến trong BGP
ROUTE_REFLECTOR_CLIENT Router có một phiên TCP với một router khác hoạt động như một route-reflector-server
ROUTE_REFLECTOR_CLUSTER Một cluster là một nhóm bao gồm reflector và clients
Trang 4Lời giới thiệu
Chúng ta đang sống trong thế kỉ 21, kỉ nguyên của khoa học kĩ thuật và côngnghệ hiện đại Vào thời điểm này, ngành công nghiệp công nghệ thông tin và chiếcmáy vi tính nắm giữ một vai trò không thể thiếu trong mọi lĩnh vực hoạt động của conngười Một chiếc máy tính để bàn hoạt động độc lập là không đủ, con người muốn liênkết các máy tính lại với nhau thành mạng máy tính để tận dụng sức mạnh xử lí, traođổi thông tin và chia sẻ tài nguyên Khi mạng máy tính tăng lên cả về quy mô và sốlượng, con người lại muốn liên kết các mạng máy tính này lại với nhau Làm thế nàođể liên kết các máy tính lại với nhau ? Làm thế nào để thông tin có thể được trao đổigiữa các mạng máy tính cách nhau hàng trăm cấy số ? Một bài toán cần được giải đểtrả lời những câu hỏi trên, đó là bài toán định tuyến.
“Định tuyến” hiểu đơn giản là “tìm đường đi” Trong truyền thông máy tính địnhtuyến nghĩa là chỉ ra đường đi để thông tin có thể di chuyển từ nguồn đến đích theocách tốt nhất Không thể phủ nhận tầm quan trọng của định tuyến trong truyền thôngmáy tính Không có định tuyến, các máy tính không thể trao đổi thông tin với cácmạng khác.
Thiết bị thực hiện chức năng định tuyến trên mạng chủ yếu là các Router Để cóthể thực hiện chức năng định tuyến, các Router phải trao đổi thông tin về tuyến vớinhau để xây dựng nên các tuyến đường Tập hợp các qui tắc trao đổi thông tin địnhtuyến giữa các thiết bị định tuyến với nhau gọi là giao thức định tuyến.
Đối tượng nghiên cứu của đề tài này là giao thức định tuyến BGP (BorderGateway Protocol) – giao thức được sử dụng hết sức rộng rãi trên mạng Internet hiệnnay Mục đích của đề tài là tìm hiểu hoạt động của giao thức định tuyến BGP và cáchthức triển khai giao thức định tuyến BGP trên các Router
Do những hạn chế về mặt thời gian và thiết bị, một số nội dung liên quan khôngđược đưa vào đề tài như: Sự hoạt động và triển khai BGP trên IPv6 Mặc dù đã hết sứccố gắng xong đề tài không tránh khỏi những thiếu sót vì vậy rất mong nhận được ýkiến đóng góp, sự chỉ bảo tận tình của các thầy cô và tất cả các bạn.
Trang 5Như đã nói ở trên BGP là một giao thức khá phức tạp được dùng nhiều trênInternet và trong các công ty đa quốc gia Mục đích chính của BGP là kết nối cácmạng rất lớn hoặc các Autonomous-System 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 là giao thức không chỉ tìmra một tuyến đi về một mạng nào đó mà còn cho phép người quản trị tìm ra các AS củacác mạng Các giao thức như EIGRP, RIP, OSPF và ISIS sẽ tìm ra tuyến mà ngườiquản trị cần
1.2 Sử dụng BGP trong định tuyến
Lựa chọn giao thức định tuyến phù hợp cho một mạng là việc quan trọng và đónggóp vào sự ổn định của hệ thống Khi quyết định sử dụng BGP cho việc định tuyếnngười quản trị cần giải đáp được một số câu hỏi hết sức cần thiết
Trang 6Câu hỏi đầu tiên cần được các nhà quản trị đặt ra là: Sử dụng BGP cho việc địnhtuyến khi nào ?
Một hệ thống mạng đơn giản là một hệ thống mạng dễ dàng quản lý và bảo trì.Mặc dù BGP là giao thức phức tạp tuy nhiên các trường hợp dưới đây được khuyếncáo cho việc sử dụng giao thức BGP để định tuyến :
- Một AS cho phép chuyển tiếp gói tin qua nó để đến các AS khác- Một AS có nhiều kết nối đến AS khác
- Lưu lượng thông tin vào ra trên AS đó cần được xử lí
Các khuyến cáo trên được rút ra từ các đặc tính mà BGP sử dụng để định tuyến.Các đặc tính đó sẽ được trình bày kĩ ở chương sau.
Để tránh việc sử dụng không hiệu quả giao thức định tuyến BGP câu hỏi thứ haimà các nhà quản trị cần quan tâm là: Không nên sử dụng BGP cho việc định tuyến khinào ? BGP là một giao thức khá phức tạp và được sử dụng trên internet và trong cáccông ty lớn Vì lí dó đó BGP được khuyến cáo là không nên sử dụng khi tồn tại mộttrong các điều kiện dưới đây :
- Chỉ có một kết nối đơn đến Internet hoặc đến AS khác
- Chính sách định tuyến và lựa chọn tuyến không liên quan gì đến AS củangười sử dụng
- Tài nguyên mạng là có giới hạn: tài nguyên về bộ nhớ và khả năng xử lí củaCPU trên router.
- Quản trị mạng thiếu kinh nghiệm, hiểu biết đối với giao thức BGP trong việcchọn, lọc tuyến
- 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 Giải pháp để xử lí vấn đề khi không sử dụng BGP đểđịnh tuyến là sử dụng tuyến tĩnh (static route)
Việc trả lời tốt hai câu hỏi trên sẽ góp phần giúp cho các nhà quản trị lựa chọn vàsử dụng hiệu quả giao thức BGP trong việc định tuyến cho hệ thống mạng của mình
Trang 7CHƯƠNG 2
CÁC THUỘC TÍNH VÀ THUẬT NGỮ SỬ DỤNG TRONG BGP
Các giao thức định tuyến IGPs quảng bá một mạng với các tham số định tuyến:metric,cost Mỗi giao thức IGPs có một tham số để lựa chọn tuyến đường tới đích khácnhau (RIP sử dụng đếm số hop, OSPF sử dụng tham số cost = 100000000/BW…).Nếu có nhiều đường dẫn đến đích với metric hoặc cost khác nhau thì đường dẫn vớimetric hoặc cost thấp nhất phải được lựa chọn BGP không phải là giao thức ngoại lệvà cũng cần các tham số để lựa chọn tuyến tốt nhất đến đích Các tham số trong BGPđược gọi là thuộc tính (Attributes).
BGP định tuyến bằng cách sử dụng các thuộc tính Việc sử dụng các thuộc tínhám chỉ đến việc sử dụng các biến trong quá trình chọn lựa đường đi trong BGP Cácthuộc tính của BGP không chỉ là danh sách các biến mà qua đó tuyến được chọn lựa.Một vài thông tin được mang trong các thông điệp cập nhật là quan trọng hơn cácthông tin khác Một số thông tin khác là rất quan trọng cho hoạt động của BGP, vì vậycác thông tin này phải được mang đến tất cả các router BGP trong mạng Quá trìnhđịnh tuyến dựa trên những thuộc tính và các giá trị của nó Các thuộc tính được chiathành 4 nhóm: nhóm well-known mandatory , well-known discretionary, optionaltransitive và optional nontrasitive Các thuộc tính đó được mô tả kĩ trong bảngdưới đây :
Optional Transitive
Router có thể không công nhận các thuộc tính này nhưngnế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ínhnày đi vào router mà router không hiểu hoặc không côngnhận thuộc tính Các thuộc tính này sẽ không truyền tới cácBGP
Trang 8Bốn nhóm trên mô tả một cách tổng quát các thuộc tính của BGP Ứng với mỗi nhómđó ta sẽ đi sâu nghiên cứu các đặc tính cụ thể của từng loại thuộc tính trong nhóm
AS_PATH Well-knownmandatory
Danh sách các AS mà tuyến được quảng báthông qua nó
WEIGHT Cisco definedattribute
Được sử dụng để định tuyến trong BGP
LOCAL_PREF Well-knowndiscretionary
Được sử dụng để chọn tuyến, thường đượcsử dụng trong một AS
MULTI_EXIT_DISC Optionalnontransitive
Được sử dụng để chọn tuyến, thường đượcsử dụng giữa các AS
ORIGIN Well-knownmandatory
Chỉ ra các tuyến BGP được học như thế nàoIGP— Từ câu lệnh Network
EGP— Từ EBGP hàng xómIncomplete— Từ redistributionNEXT_HOP Well-known
EBGP— Địa chỉ của giao diện được sửdụng để truyền thông với hàng xóm bênkhác
IBGP— EBGP next hop được gửi và khôngthay đổi khi tới các IBGP hàng xóm.
Community Optional transitive Một số được sử dụng cho việc áp một chínhsách đến một nhóm các tuyến.
2.1 Định nghĩa Autonomous System (AS)
Là một tập hợp các mạng có cùng chính sách định tuyến và thường thuộc quyềnquản lý, khai thác của một chủ thể Mỗi nhà cung cấp dịch vụ internet (ISP) có thể coi
là một AS Việc kết nối giữa các AS này thường được sử dụng BGP
Trang 9Hình 1: Kết nối giữa các AS
2.2 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ấtcả các router hàng xóm Mỗi nhà cung cấp dịch vụ đều được gán một số định danhduy 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ấpdị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êngcó phạm vi cho phép trong khoảng 64512 đến 65534 Tuy nhiên các số AS riêng nàykhông được quảng bá ra internet và chỉ được sử dụng trong vùng AS đã tạo ra nó CácAS 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ủamạng 156.26.32.0/24 đến nhà cung cấp dịch vụ 2 với AS là 2
Hình 2: thuộc tính AS_PATH
Trang 10Khi tuyến được quảng bá được nhận bởi AS 2, AS 2 biết mạng 156.26.32.0 nằmtrong 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ổ xungvà được đặt vào AS_PATH Kết quả sau khi nhận được quảng bá từ AS 2 thuộc tínhAS_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ằng1 ) và mạng đó được quảng bá thông qua AS 2 AS 3 bổ xung số AS của nó vào thuộctính AS_PATH và quảng bá tuyến đến AS 4 AS 4 nhận thuộc tính quảng bá vớiAS_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ắnnhấ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ạng156.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 3: 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đế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.
Trang 11Trong 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.3 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 Thamsố 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đí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ọntuyến thông qua AS 1 vì qua đó AS_PATH sẽ là ngắn nhất
Trang 12Hì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ínhAS_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 16bit 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ẫntốt nhất đến cùng 1 đích Trọng số Weight sẽ được ưu tiên hơn
Hinh 6 : Chọn tuyến thông qua thuộc tính weight
Trang 13Thuộc tính weight chỉ có giá trị trên router đó và không quảng bá ra các routerhàng xóm chạy BGP Các tuyến BGP có weight mặc định là 32768
2.4 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ếntớ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ằngnhau) 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ốngnhư thuộc tính weight LOCAL_PREF được quảng bá trong 1 AS Router A nhậnquả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
Hình 7: Thuộc tính LOCAL_PREF
Trang 142.5 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ộctí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àycó 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 ưutiê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 5quảng bá mạng 156.26.32.0/24 và có 2 đường để tới được mạng 156.26.32.0/24 từ AS1 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 5thiế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ếnbê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 trongBGP được quyết định lần lượt là WEIGHT, LOCAL_PREF,AS_PATH và cuối cùnglà 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
Trang 152.6 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 networkTừ EBGP hàng xómThô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ácBGP hàng xóm Các tuyến học được thông qua câu lệnh network có thuộc tínhORIGIN đặ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 BGPtrong 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à ExternalBGP (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áctuyế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áctuyến incomplete Nói cách khác các tuyến EBGP được ưu tiên, sử dụng thông qua cáctuyến IBGP
2.7 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ínhNEXT_HOP được đặt là địa chỉ IP của giao diện kết nối đến hàng xóm đó Đặc biệtnếu router quảng bá một tuyến được học thông qua EBGP đến IBGP hàng xóm, thuộctính NEXT_HOP sẽ không được thay đổi
Trang 16Hì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 giaodiện vật lí vì thế NEXT_HOP sẽ được đặt trong bảng routing giống như giao diện kếtnố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 10router 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 địnhtuyế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áctrong cùng một AS thì nó lại tiếp tục dùng router ngoài AS làm NEXT_HOP Do đó taphả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 ASvới nó là router Next Hop chứ không phải là router khác AS.
Hình 11: Hoạt động của router với thuộc tính NEXT_HOP
Trang 17Xét ví dụ hoạt động của router với thuộc tính NEXT_HOP trong hình 11Bước 1: Router A gửi cập nhật về mạng 192.33.33.0
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 đatruy 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ạngNEXT_HOP trong bảng định tuyến
2.8 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ấpchí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ộttí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 tincậ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ệpnà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 đó chorouter 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ì đó).
Trang 18CHƯƠNG 3
HOẠT ĐỘNG CỦA BGP3.1 Hoạt động của EBGP
3.1.1 Khảo sát hoạt động của EBGP
Các router BGP ( EBGP ) là hàng xóm của nhau có kết nối trực tiếp Chúng ta cóthể thiết lập cấu hình giữa các router A và B và kiểm tra sự hoạt động giữa các routerđó Xét sự hoạt động của 2 router dưới đây :
Hình 12: Cấu hình hoạt động EBGP
Trước tiên chúng ta sẽ thiết lập các giao diện loopback trên các router Giống nhưtrong OSPF địa chỉ IP được gán trên giao diện loopback được sử dụng như là ID củacác router chạy BGP
Router A
interface Loopback0
ip address 172.16.15.254 255.255.255.255Router B
interface Loopback0
ip address 172.16.16.254 255.255.255.255
Các câu lệnh trên giúp thiết lập địa chỉ IP trên giao diện loopback Bước tiếp theo làbước quan trọng và cho phép khởi tạo một quá trình BGP trên các router.
Trang 19Router Arouter bgp 1
neighbor 172.16.15.162 remote-as 2Router B
router bgp 2
neighbor 172.16.15.161 remote-as 1
Các câu lệnh router bgp as-number cho phép thực thi một tiến trình BGP trên
router Chỉ một số AS có thể được gán tới nhà cung cấp dịch vụ, vì thế chỉ một tiến
trình BGP được thiết lập trên một router Câu lệnh neighbor neighbor-ip-address cho
phép BGP hoạt động trên giao diện đó Giao diện chạy BGP được quyết định bởi bảngIP routing Bảng này quyết định giao diện được sử dụng để có thể đạt tới được địa chỉIP của hàng xóm Với EBGP các hàng xóm có kết nối trực tiếp với nhau vì thế giaodiện được sử dụng chỉ có một kết nối trực tiếp đến hàng xóm của nó
3.1.2 Cấu trúc thông báo của BGP
Các giao thức RIP, IGRP, EIGRP và OSPF sử dụng câu lệnh network để thựchiện cấu hình cho phép định tuyến, quảng bá mạng, netmask Ngoài ra nó còn chophép các giao thức IGPs khám phá, nhận biết các router hàng xóm Tuy nhiên vớiEBGP do đã chỉ rõ các router hàng xóm nên không cần phải có bước tìm, nhận biếthàng xóm như ở các giao thức IGPs nữa Vì thế có thể thiết lập một mối quan hệ hàngxóm mà không cần quảng bá bất kì tuyến nào Khi EBGP được cho phép chạy trênmột giao diện, các router sẽ cố gắng thực hiện một tiến trình thiết lập mối quan hệ theocác bước dưới đây :
Idle State: Ở trạng thái này router sẽ khởi tạo một kết nối TCP với BGP hàngxóm
Connect State : Giai đoạn này router khởi tạo sẽ chờ cho kết nối TCP đượcthực hiện với router BGP hàng xóm Nếu một kết nối TCP được thực hiện , router sẽgửi một thông báo OPEN và chuyển sang trạng thái OpenSent Nếu hết thời gian chờrouter vẫn không thiết lập được kết nối nó sẽ chuyển tiếp sang trạng thái Active
Active State: Ở giai đoạn này router vẫn chờ cho một kết nối được thực hiệnvới router hàng xóm Nếu kết nối được thực hiện nó sẽ chuyển sang trạng thái Connect
Trang 20 OpenSent State : Ở giai đoạn này router sẽ chờ một thông báo OPEN từ BGPhàng xóm Nếu xảy ra lỗi nó sẽ chuyển sang chế độ Idle State Nếu một thông báoOPEN được nhận từ router BGP hàng xóm thì nó sẽ chuyển sang trạng tháiOpenConfirm.
OpenConfirm State: Giai đoạn này router chờ một thông báo KEEPALIVE từBGP hàng xóm Khi một KEEPALIVE được nhận nó sẽ chuyển sang trạng tháiEstablished
Established State: Giai đoạn này các router sẽ trao đổi thông tin định tuyếnvới nhau
Định dạng chung phần tiêu đề của thông báo BGP bao gồm các trường thông tinsau : trường đánh dấu 16 byte, trường độ dài 2 byte và trường kiểu 1 byte.
Hình 13: Định dạng chung phần tiêu đề của thông báoBGP
Tùy từng kiểu thông báo mà có thể có hoặc không có phần dữ liệu sau phần tiêuđề Ví dụ thông báo KEEPALIVE không chứa dữ liệu mà chỉ chứa phần tiêu đề
- Trường đánh dấu (Marker field): Trường này có độ dài 16 byte được sử dụngcho mục đích chứng thực các thông báo BGP đến hoặc để dò tìm sự mất đồng bộ giữa2 hàng xóm Trường này có thể có 1 hoặc 2 dạng :
+ Nếu kiểu thông báo của BGP là OPEN hoặc OPEN không sử dụng chứngthực thì trường đánh dấu này phải được đặt tất cả bằng 1
+ Ngược lại trường này sẽ được đặt dựa vào việc tính toán các kĩ thuật sửdụng để chứng thực
Trang 21- Trường độ dài length (length field): Trường này có độ dài 2 byte chỉ ra tổng độdài của thông báo BGP bao gồm cả phần tiêu đề Vì thế trong BGP độ dài tối thiểu của1 thông báo là 19 byte (16 + 2 + 1) và tối đa không lớn hơn 4096 byte.
- Trường kiểu : Trường này có độ dài một byte cho phép biểu diễn các kiểu thôngbáo trong giao thức BGP Các kiểu thông báo đó là OPEN, UPDATE, KEEPALIVE,NOTIFICATION Các thông báo cụ thể trong các giai đoạn như sau :
Trong giai đoạn Connection, một router BGP gửi một thông báo OPEN đếnrouter hàng xóm Thông báo OPEN định danh router đó với hàng xóm Ngoài ra thôngbáo OPEN còn giúp cho các router thực hiện quá trao đổi các tham số dưới đây :
- Số phiên bản (version number): Phiên bản BGP hiện tại là 4- Số AS (AS number)
- Hold time :thời gian một BGP router sẽ chờ trước khi khai báo rằng hàngxóm mất liên kết
- BGP router ID
- Opt parm len: Trường này chỉ ra độ dài của trường Optional parameters
- Trường Optional parameters: Trường này chỉ ra danh sách các tham số đượcsử dụng để các hàng xóm thỏa thuận phiên BGP với nhau
Hình 14: Thông báo OPEN
Sau khi BGP router gửi một thông báo OPEN tới hàng xóm của nó, router sẽchuyển sang trạng thái OpenSent và chờ nhận một thông báo OPEN từ hàng xóm Khi
Trang 22router nhận được thông báo OPEN từ hàng xóm Router sẽ chuyển tiếp sang trạng tháiOpenConfirm State, và chờ một thông báo KEEPALIVE Mặc định KEEPALIVEđược gửi 60s và được sử dụng để xác nhận trạng thái của router Sau khi nhận đượcKEEPALIVE router sẽ chuyển sang trạng thái Established và trao đổi KEEPALIVE,UPDATE và thông báo NOTIFICATION.
Một thông báo NOTIFICATION được sử dụng khi có lỗi xuất hiện khiến chophiên BGP đó kết thúc Trong quá trình thực hiện BGP có thể có nhiều lỗi xảy ra
Thông báo NOTIFICATION có định dạng như sau:
Hình 15 : Thông báo NOTIFICATION Trong đó các trường được mô tả trong bảng dưới đây :
Các mã lỗi của BGP
1—Message header error 1—Connection Not Synchronized 2—Bad Message Length
3—Bad Message Type
2—OPEN message error 1—Unsupported Version Number2—Bad Peer AS
Trang 233—UPDATE message error 1—Malformed Attribute List
2—Unrecognized Well-Known Attribute3—Missing Well-Known Attribute4—Attribute Flags Error
5—Attribute Length Error6—Invalid Origin Attribute7—AS Routing Loop
8—Invalid NEXT_HOP Attribute9—Optional Attribute Error10—Invalid Network Field11—Malformed AS_PATH
4—Hold Timer expired N/A5—Finite State Machine N/A6—Cease (for fatal errors N/A
Một thông báo UPDATE quảng bá mạng đang có Thông báo UPDATE sẽ quảngbá:
- Các thông tin liên quan đến mạng đích: địa chỉ, netmask - Các thuộc tính BGP
- Các tuyến không có khả năng thực hiện định tuyến và bị loại bỏ trong bảngrouting
Thông báo UPDATE có cấu trúc như sau :
Trang 24Hinh 16: Thông báo UPDATE
Khi các EBGP hàng xóm đạt được trạng thái Established quá trình trao đổi thôngtin định tuyến sẽ được thực hiện Khi đó ta sẽ thấy được trạng thái của router có dạngnhư sau :
Trang 253.2 Quảng bá tuyến trong BGP
Các EBGP hàng xóm khi đạt được trạng thái Estabished cũng có thể khôngquảng bá tuyến Điều này hơi khác so với các giao thức IGPs khi việc quảng bá vànhận diện hàng xóm có mối liên hệ ràng buộc lẫn nhau và đều sử dụng câu lệnhnetwork Với giao thức BGP chạy trên các thiết bị của Cisco có ba cách để địa chỉmạng có thể được quảng bá vào trong bảng định tuyến BGP (BGP routing table).
Ba phương thức được sử dụng là :- Câu lệnh Network
- Qua sự phân phối tuyến (Route redistribution)- Từ một BGP hàng xóm
Hình 17 minh họa các phương thức được sử dụng để quảng bá tuyến BGP
Hình 17 : Các phương thức quảng bá tuyến trong BGP
Tiếp theo chúng ta sẽ đi nghiên cứu cụ thể từng phương thức được sử dụng đểquảng bá các tuyến BGP
Trang 263.2.1 Quảng bá tuyến sử dụng câu lệnh Network
Đây là phương thức đầu tiên để một tuyến có thể được quảng bá vào trongbảng định tuyến BGP Câu lệnh Network được sử dụng để chuyển các tuyến từ bảngđịnh tuyến (routing table) tới bảng định tuyến BGP giống như là các tuyến chạy BGP.Các tuyến trong bảng routing table được học từ các giao thức định tuyến nội như RIP,IGRP, EIGRP, OSPF hoặc IS-IS Hay các tuyến tĩnh, các tuyến có kết nối trực tiếp.Dưới đây là bảng định tuyến chỉ có các tuyến kết nối trực tiếp của router A
P - periodic downloaded static route
Gateway of last resort is not set
172.16.0.0/16 is variably subnetted, 4 subnets, 3 masksC 172.16.15.160/30 is directly connected,
C 172.16.15.128/27 is directly connected, Ethernet0/0
C 172.16.15.254/32 is directly connected, Loopback0
C 172.16.15.64/27 is directly connected, Ethernet0/1
Trang 27Sự hoạt động của câu lệnh Network phụ thuộc vào việc tự tóm tắt tuyến trong các
tiến trình BGP Mặc định quá trình tự tóm tắt (autosummariztion) tuyến được cho phép
hoạt động vì thế ta phải khảo sát trường hợp này Định dạng của câu lệnh network nhưsau:
network prefix mask subnet-mask
Tham số subnet-mask là tham số lựa chọn Nếu subnet-mask không đượ sử dụng
BGP sẽ giả thiết sử dụng tham số đó với các chế độ mặc định tùy thuộc lớp mạng Với
việc mặc định quá trình tự tóm tắt được hoạt động Câu lệnh network được sử dụng đểquảng bá các tuyến với tham số subnet-mask mặc định trong bảng định tuyến BGP Vì
thế cần phải có ít nhất một tuyến với tuyến subnet dạng classful trong bảng định tuyến.Bảng định tuyến trên router A chứa subnets 172.16.0.0/16 do vậy để quảng bá tuyếnnày có thể sử dụng câu lệnh :
valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 172.16.0.0 0.0.0.0 0 32768 i
Trong ví dụ trên next hop là 0.0.0.0 và thuộc tính AS path là trống chỉ ra rằngmạng 172.16.0.0 bắt nguồn trên router A Ta cũng có thể thấy MED là 0 và thuộc tínhWeight có giá trị mặc định là 32768 Sau khi một tuyến hợp lệ được đặt trong bảng
Trang 28định tuyến BGP , tuyến đó sẽ được quảng bá tới router B Kết quả trong bảng địnhtuyến BGP là :
B#show ip bgp
BGP table version is 4, local router ID is 172.16.16.254Status codes: s suppressed, d damped, h history, *
valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 172.16.0.0 172.16.15.161 0 0 1 i
Mạng 172.16.0.0 được quảng bá thành công tới router B Thuộc tínhNEXT_HOP được đặt bằng giao diện được sử dụng để quảng bá tuyến đển router B.Thuộc tính AS_PATH được đặt bằng 1, MED và Weight có giá trị bằng 0 Sau đó mộttuyến BGP hợp lệ sẽ được chuyển tới bảng định tuyến trên router B.
Trang 29172.16.0.0/16 is variably subnetted, 4 subnets, 3 masksC 172.16.16.164/30 is directly connected,
C 172.16.15.160/30 is directly connected, Serial0/0
C 172.16.16.254/32 is directly connected, Loopback0
B 172.16.0.0/16 [20/0] via 172.16.15.161, 00:09:41Từ bảng định tuyến ta có thể nhận thấy administrative distance (AD) của EBGPlà 20 và cost hoặc metric của tuyến BGP là 0 BGP không sử dụng cost để tính toánđường đi ngắn nhất mà sử dụng các thuộc tính BGP như: Weight, LOCAL_PREF,AS_PATH, MED và ORIGIN để thay thế.
Mặc định trên các thiết bị của hãng Cisco cho phép tự tóm tắt tuyến Tuy nhiêncisco khuyến nghị rằng nên hủy bỏ chế độ này khi sử dụng BGP Việc hủy bỏ này
được thực hiện bằng cách sử dụng câu lệnh: no auto-summary trong cấu hình BGP.
Trên 2 router A và B ta có thể cấu hình như sau :
Router Arouter bgp 1
network 172.16.0.0
neighbor 172.16.15.162 remote-as 2 no auto-summary
Router Brouter bgp 2
neighbor 172.16.15.161 remote-as 1 no auto-summary
Sau khi hủy bỏ chế độ tự động tóm tắt tuyến một vấn đề được đặt ra Đó là tuyến172.16.0.0/16 có được quảng bá hay không ? Nếu khảo sát bảng BGP của hai router A
Trang 30và B cùng với bảng định tuyến của chúng thì ta nhận thấy rằng tuyến trên không đượcquảng bá
A#show ip bgp!no outputB#show ip bgp!no output
C 172.16.16.254/32 is directly connected, Loopback0
Sở dĩ tuyến 172.16.0.0/16 không được quảng bá khi tự động tóm tắt tuyến được
hủy bỏ là do nó làm thay đổi cách hoạt động của câu lệnh network Qúa trình hủy bỏ tự
tóm tắt tuyến sẽ tạo ra một quy tắc mới khiến cho địa chỉ mạng và mask sử dụng trong
câu lệnh network phải chính xác so với trong bảng định tuyến Câu lệnh network
172.16.0.0 sẽ kéo theo việc router tìm trong bảng định tuyến của nó một địa chỉ phùhợp Tuy nhiên chỉ có các mạng con của tuyến 172.16.0.0 trong bảng định tuyến trênrouter A mà không có tuyến 172.16.0.0 đã chỉ định Vì thế xảy ra trường hợp khôngquảng bá tuyến trên.
Các tuyến nằm tồn tại trong bảng định tuyến của router A A#show ip route | include directly connectedC 172.16.15.160/30 is directly connected, Serial0/0
C 172.16.15.128/27 is directly connected, Ethernet0/0
Trang 31C 172.16.15.254/32 is directly connected, Loopback0
C 172.16.15.64/27 is directly connected, Ethernet0/1
Vì thế để các tuyến được quảng bá khi đã hủy bỏ chế độ tự động tóm tắt tuyến ta phải chỉ rõ cả địa chỉ mạng và mask sao cho phù hợp với bảng định tuyến Khi đó tuyến mới được quảng bá
Router Arouter bgp 1
network 172.16.15.64 mask 255.255.255.224 network 172.16.15.128 mask 255.255.255.224 network 172.16.15.160 mask 255.255.255.252 network 172.16.15.254 mask 255.255.255.255
neighbor 172.16.15.162 remote-as 2 no auto-summary
Các tuyến được quảng bá có thể thấy rõ khi quan sát các bảng routing table trênrouter B và BGP table trên các router A, B
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 172.16.15.64/27 0.0.0.0 0 32768 i
Trang 32*> 172.16.15.128/27 0.0.0.0 0 32768 i
*> 172.16.15.160/30 0.0.0.0 0 32768 i
*> 172.16.15.254/32 0.0.0.0 0 32768 I
Dưới đây là bảng BGP của router BB#show ip bgp
BGP table version is 9, local router ID is 172.16.16.254Status codes: s suppressed, d damped, h history, *
valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 172.16.15.64/27 172.16.15.161 0 0 1 i
*> 172.16.15.128/27 172.16.15.161 0 0 1 i
*> 172.16.15.160/30 172.16.15.161 0 0 1 i
*> 172.16.15.254/32 172.16.15.161 0 0 1 i
Bảng định tuyến của router B sẽ cho ta thấy được các tuyến đã được quảng bá từrouter A
B 172.16.15.128/27 [20/0] via 172.16.15.161, 00:02:36
Trang 33B 172.16.15.254/32 [20/0] via 172.16.15.161, 00:02:36
C 172.16.16.254/32 is directly connected, Loopback0
B 172.16.15.64/27 [20/0] via 172.16.15.161, 00:02:36
3.2.2 Quảng bá tuyến sử dụng redistribute
Đây là phương thức thứ hai để quảng bá tuyến từ bảng định tuyến vào bảng địnhtuyến BGP Phương thức này cho phép quảng bá các tuyến kết nối trực tiếp trên routervào bảng định tuyến BGP Tính chất tự động tóm tắt tuyến tương tự như trong phần sử
dụng câu lệnh network tức là nếu không hủy bỏ chế độ này các tuyến sẽ được tóm tắt
thành các tuyến có địa chỉ và mask mặc định.
Việc phân phối, quảng bá quan việc redistribute này được thực hiện qua câu lệnh
valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Trang 34Network Next Hop Metric LocPrf WeightPath
*> 172.16.15.64/27 0.0.0.0 0 32768 ?
*> 172.16.15.128/27 0.0.0.0 0 32768 ?
*> 172.16.15.160/30 0.0.0.0 0 32768 ?
*> 172.16.15.254/32 0.0.0.0 0 32768 ?
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 172.16.15.64/27 172.16.15.161 0 0 1 ?
*> 172.16.15.128/27 172.16.15.161 0 0 1 ?
*> 172.16.15.160/30 172.16.15.161 0 0 1 ?
*> 172.16.15.254/32 172.16.15.161 0 0 1 ?
B#show ip route
172.16.0.0/16 is variably subnetted, 6 subnets, 3 masks
C 172.16.16.164/30 is directly connected, Serial0/1
Trang 35C 172.16.15.160/30 is directly connected, Serial0/0
B 172.16.15.128/27 [20/0] via 172.16.15.161, 00:01:44
B 172.16.15.254/32 [20/0] via 172.16.15.161, 00:01:44
C 172.16.16.254/32 is directly connected, Loopback0
B 172.16.15.64/27 [20/0] via 172.16.15.161, 00:01:44
Ta chú ý rằng khi sử dụng phương thức này các tuyến redistribute có thuộc tínhORIGIN được đặt dấu ? trong bảng BGP của các router
3.2.3 Sử dụng EBGP để quảng bá tuyến
Phương thức cuối cùng để quảng bá tuyến BGP vào bảng BGP là tự BGPchính nó Xét topo mạng dưới đây
Hình 18 : Qúa trình sử dụng EBGP để quảng bá tuyến