LỜ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 gian thự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. Lê Vũ Thắng
1
MỤ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 CHƯƠNG 1...................................................................................................................5 GIỚI THIỆU TỔNG QUAN QUAN VỀ GIAO THỨC BGP.................................................... 5 1.1 Giới thiệu. .............................................................................. ...................................................................... ................ ........... ...55 1.2 Sử dụng BGP trong định tuyến............................................................................5 CHƯƠNG 2...................................................................................................................7 CÁC THUỘC TÍNH VÀ THUẬT NGỮ SỬ DỤNG TRONG BGP.............................7 2.1 Định nghĩa Autonomous Autonomous System (AS) .......................................................... .............................................................. ....88 2.2 Thuộc tính Autonomous Autonomous system path (AS_PATH)..................................... (AS_PATH).............................................. .........99 2.3 Thuộc tính WEIGHT.........................................................................................11 2.4 Thuộc tính Local Local Preference (LOCAL_PREF).......................................... (LOCAL_PREF).................................................. ........13 13 2.5 Thuộc tính Metric Metric hay MULTI_EXIT_DISC MULTI_EXIT_DISC (MED)........................................ (MED)................................ ........14 14 2.6 Thuộc tính ORIGIN...........................................................................................15 2.7 Thuộc tính NEXT_HOP..................................................................................... NEXT_HOP.....................................................................................15 15 2.8 Thuộc tính Community......................................................................................17 CHƯƠNG 3.................................................................................................................18 HOẠT ĐỘNG CỦA BGP............................................................................................ BGP............................................................................................ 18 3.1 Hoạt động của EBGP .............................................................................. ...................................................................................... ........ 18 3.1.1 Khảo sát hoạt động của EBGP...................................................... EBGP.............................................................. ............. .....18 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 Network................................................. 26 3.2.2 Quảng bá tuyến sử dụng redistribute......................................................... redistribute...........................................................33 ..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............................................ IBGP.................................................... .............. ......48 48 3.3.3 Route-Reflector (RR)..................................................................................52 3.3.4 Phân cấp định tuyến tuyến trong các AS (Confederations).......................... (Confederations)................................. .......57 57 3.4 Giải thuật định định tuyến trong BGP...................................................................... BGP..........................................................................59 59 3.5 Sự tóm tắt tuyến trong BGP...............................................................................61 3.6 Quản lí lưu lượng trong BGP ............................................................................66 KẾT LUẬN.................................................................................................................69 TÀI LIỆU THAM KHẢO............................................................................................ KHẢO............................................................................................71 71
2
CÁC THUẬT NGỮ TIẾNG ANH AGGREGATE AS_PATH ATTRIBUTE
Quá trình tóm tắt tuyến Thuộc tính AS_PATH Thuộc tính
AUTONOMOUS SYSTEM BORDER GATEWAY PROTOCOL
Vùng tự trị Giao thức BGP
COMMUNITY CONFEDERATION
Thuộc tính COMMUNITY Sự phân chia AS nhằm giảm số tuyến
EBGP
Giao thức BGP chạy giữa các AS
EGPs
Các giao thức sử dụng giữa các AS
IBGP
Giao thức BGP chạy trên một AS
IGPs
Các giao thức sử dụng trong một AS
LOCAL_PREF
Thuộc tính LOCAL_PREF
MED NEXT_HOP NEXT_HOP
Thuộc tính MED Thuộc tính tính NEXT_HOP NEXT_HOP
ORIGIN
Thuộc tính ORIGIN
OSPF
Giao thức định tuyến OSPF
RIP
Giao thức định tuyến RIP
ROUTE_REFLECTOR
Phản xạ tuyến nhằm làm giảm số tuyến trong BGP Router có một phiên TCP với một router khác hoạt động như một routereflector-server Một cluster là một nhóm bao gồm routereflector và clients Thuộc tính WEIGHT
ROUTE_REFLECTOR_CLIENT
ROUTE_REFLECTOR_CLUSTER WEIGHT
3
Lờ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ông nghệ 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ếc má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 con ngườ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ên kế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 đổi giữ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 định tuyến nghĩa là chỉ ra đường đi để thông tin có thể di chuyển từ nguồn đến đích theo cá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ông má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ác mạ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ới nhau để 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 định tuyế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 (Border Gateway Protocol) – giao thức được sử dụng hết sức rộng rãi trên mạng Internet hiện nay. 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ách thứ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ức cố 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.
4
CHƯƠNG 1 GIỚI THIỆU TỔNG QUAN VỀ GIAO THỨC BGP 1.1 Giới thiệu. BGP, viết tắt của từ tiếng Anh Border Gateway Protocol, là giao thức định tuyến nòng cốt trên Internet. Internet. Nó hoạt động dựa trên việc cập nhật một bảng chứa các địa chỉ mạng và cho biết mối liên kết giữa các hệ tự trị. BGP là giao thức vector đường đi (path vector). Khác với các giao thức định tuyến khác như RIP (vector độ dài), OSPF (trạng thái liên kết), BGP định tuyến bằng một tập các chính sách và luật. Phiên bản BGP hiện nay là phiên bản 4, dựa trên RFC 4271. 4271. BGP hỗ trợ định tuyến liên vùng phi lớp (CIDR Classless Inter-Domain Routing) và dùng kỹ thuật kết hợp tuyến để giảm kích thước bảng định tuyến (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). Ngoài việc sử dụng BGP giữa các AS, BGP cũng có thể được sử dụng trong các mạng riêng quy mô lớn do OSPF không đáp ứng được. Một lý do khác là dùng BGP để hỗ trợ kết nối đến nhiều nhà cung cấp dịch vụ. Đa số người sử dụng Internet thường không sử dụng BGP một cách trực tiếp. Chỉ có các nhà cung cấp dịch vụ Internet sử dụng BGP để trao đổi đường đi. BGP là một trong những giao thức quan trọng nhất đảm bảo tính kết nối của Internet. Như đã nói ở trên BGP là một giao thức khá phức tạp được dùng nhiều trên Internet 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ác mạ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ìm ra 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ủa các mạng. Các giao thức như EIGRP, RIP, OSPF và ISIS sẽ tìm ra tuyến mà người quả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à đóng góp vào sự ổn định của hệ thống. Khi quyết định sử dụng BGP cho việc định tuyến ngườ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
5
Câu hỏi đầu tiên cần được được các nhà quản trị đặt ra là: Sử dụng BGP cho việc định tuyế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ến cá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ứ hai mà 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 khi nào ? BGP là một giao thức thức khá phức tạp và được sử dụng dụng trên internet internet và trong các cô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ột trong 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 Chính sách định tuyến tuyến và lựa chọn chọn tuyến không không liên liên quan gì đến AS của người sử dụng - Tài nguyên mạng mạng là có giới hạn: tài tài nguyên về bộ nhớ nhớ và khả năng xử lí của CPU 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ệc chọ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
6
CHƯƠ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ác nhau (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ới metric 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). (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ác thuộ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ác thô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ậy cá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 chia thành 4 nhóm: nhóm well-known mandatory , well-known discretionary, optional transitive và optional nontrasitive. Các thuộc tính đó được mô tả kĩ trong bảng dưới đây : Nhóm
MÔ TẢ Các thuộc tính này là bắt buộc và được công nhận bởi tất cả Well-known mandatory các router BGP 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 Well-known Discretionary 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 tính này. 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 Optional Transitive đầ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. 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 Optional Nontransitive nhận thuộc tính. Các thuộc tính này sẽ không truyền tới các BGP.
7
Bố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 . Attribute Name
Attribute Type
Description
AS_PATH
Well-known mandatory Cisco defined attribute Well-known discretionary Optional nontransitive Well-known mandatory
Danh sách các AS mà tuyến được quảng bá thông qua nó Được sử dụng để định tuyến trong BGP
WEIGHT LOCAL_PREF
Được sử dụng để chọn tuyến, thường được sử dụng trong một AS MULTI_EXIT_DISC Được sử dụng để chọn tuyến, thường được sử dụng giữa các AS ORIGIN Chỉ ra các tuyến BGP được học như thế nào IGP — Từ câu lệnh lệnh Network Network EGP — Từ EBGP hàng hàng xóm Incomplete — Từ redistribution redistribution EBGP — Địa chỉ của giao diện được sử NEXT_HOP NEXT_HOP Well-known Well-known mandatory dụng để truyền thông với hàng xóm bên khác IBGP — EBGP next hop được gửi và không thay đổi khi tới các IBGP hàng xóm. Com Commu muni nitty Optio tional tran transsiti itive Một Một số số đư được sử sử dụ dụng ch cho vi việc áp mộ một ch chính sá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ền quản lý, khai thác của một chủ chủ thể. Mỗi nhà cung cấp dịch vụ internet 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
8
Hình 1: Kết nối giữa các AS 2.2 Thuộc tính Autonomous 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 well-known mandatory, cần được quảng bá và hiểu bởi tất cả các router router hàng xóm. xóm. Mỗi nhà cung cấp cấp dịch vụ đều được được gán một số định đị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 2: thuộc tính AS_PATH
9
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 nhất nằm trong thuộc tính tính AS_PATH và được đặt bằng 1. Khi AS 2 quảng bá tuyến 156.26.32.0/24 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. 156.26.32.0/24. Quảng bá 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 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.
10
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.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. 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 đí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.
11
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 trong khoảng 0 đến 65535. 65535. Router được được sử dụng thuộc 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
Hinh 6 : Chọn tuyến thông qua thuộc tính weight
12
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.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ế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 LOCAL_PREF là 200 vì thế Router B sẽ lựa chọn chọn tuyến qua AS 3. 3. Không giố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
Hình 7: Thuộc tính LOCAL_PREF
13
2.5 Thuộc tính Metric hay MULTI_EXIT_DISC (MED) Thuộc tính Weig eight được sử dụn ụngg để quyết định ịnh tuy tuyến từ một rou router. er. 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_DISC (Multi-exit discriminator 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 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 156.26.32.0/24 và có 2 đường để tới được mạng 156.26.32.0/24 từ AS 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
14
2.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 giúp cho BGP có có thể học tuyến, tuyến, trong trong các thiết bị bị của cisco 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 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 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.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ính NEXT_HOP 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.
15
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.
Hình 11: Hoạt động của router với thuộc tính NEXT_HOP
16
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 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 NEXT_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ấ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 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ì đó).
17
CHƯƠNG 3 HOẠT ĐỘNG CỦA BGP 3.1 Hoạt động của EBGP 3.1.1 Khảo 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ủa các router chạy BGP Router A interface Loopback0 ip address 172.16.15.254 255.255.255.255 255.255.255.255 Router B interface Loopback0 ip address 172.16.16.254 255.255.255.255 255.255.255.255
thiết lập địa chỉ IP trên giao diện loopback. loopback. Bước tiếp theo là Các câu lệnh trên giúp thiết bước quan trọng và cho phép khởi khởi tạo một quá trình BGP trên các router.
18
Router A router bgp 1 neighbor 172.16.15.162 remote-as 2 Router 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 tới nhà cung cấp dịch vụ, 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 trên giao diện đó. Giao Giao diện chạy BGP được quyết quyết định bởi bảng bảng IP 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ế giao diệ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ực hiện cấu hình cho phép định tuyến, quảng bá mạng, netmask. Ngoài ra nó còn cho phé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ới EBGP 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ết hà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àng xó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ên mộ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ệ theo cá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àng
xóm Connect State : Giai đoạn này router khởi tạo sẽ chờ cho kết nối TCP được thự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 báo OPEN và chuyển sang trạng trạng thái OpenSent. OpenSent. Nếu hết thời gian 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ện vớ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 •
19
OpenSent State : Ở giai đoạn này router sẽ chờ một thông báo OPEN từ BGP hà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áo OPEN được nhận từ router BGP hàng xóm thì nó sẽ chuyển sang trạng thái OpenConfirm. •
OpenConfirm OpenConfirm State: Giai đoạn này router chờ một thông báo KEEPALIVE KEEPALIVE từ BGP hàng xóm. Khi một KEEPALIVE được nhận nó sẽ chuyển sang trạng thái Established. •
•
Established State: Giai đoạn này các router sẽ trao đổi thông tin định tuyến
vớ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 tin sau : 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ụng cho 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ữa 2 hàng xóm. Trường này có thể có 1 hoặc 2 dạng : + Nếu kiểu thông thông báo của BGP là OPEN hoặc hoặc OPEN không sử dụng dụng chứng thực thì trường đánh dấu này phải được đặt tất cả bằng 1 + Ngược Ngược lại trường trường này sẽ được đặt dựa vào việc tính tính toán các kĩ thuật sử dụng để chứng thực
20
- 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ủa 1 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ông báo trong giao thức BGP. Các kiểu thông báo đó là OPEN, UPDATE, KEEPALIVE, KEEPALIVE, NOTIFICATION. NOTIFICATION. Các thông thông báo cụ thể thể trong các 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 đến router hàng xóm. Thông báo OPEN định danh router đó với hàng xóm. Ngoài ra thông báo OPEN còn còn giúp cho cho các router router thực hiện quá trao đổi các các tham số dưới 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àng xóm mất liên kết -
- BGP router ID - Opt parm len: len: Trườn Trườngg này chỉ ra ra độ dài dài của của trường trường Optional Optional paramete parameters rs - Trườn Trườngg Option Optional al parame parameter ters: s: Trườn Trườngg này chỉ ra danh danh sách các các tham số được được sử 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
21
router nhận được thông báo OPEN từ hàng xóm Router sẽ chuyển tiếp sang trạng thái OpenConfirm 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 được KEEPALIVE 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 cho phiên BGP đó đó kết thúc. thúc. Trong quá quá trình thực thực hiện BGP có thể có nhiều 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
Error Code 1—Message header error
Error Subcode 1—Connection Not Synchronized 2—Bad Message Length 3—Bad Message Type
2—OPEN message error
1—Unsupported Version Number 2—Bad Peer AS 3—Bad BGP Identifier 4—Unsupported 4—Unsupported Optional Parameter 5—Authentication 5—Authentication Failure 6—Unacceptable 6—Unacceptable Hold Timer 7—Unsupported 7—Unsupported Capability
22
3—UPDATE message er error
1—Malfor formed Attribute Li List 2—Unrecognized Well-Known Attribute 3—Missing Well-Known Attribute 4—Attribute 4—Attribute Flags Error 5—Attribute Length Error 6—Invalid Origin Attribute 7—AS Routing Loop 8—Invalid NEXT_HOP Attribute 9—Optional Attribute Error 10—Invalid Network Field 11—Malformed AS_PATH
4—Hold Timer ex ired 5—Finite State Machine 6—Cease for fatal errors
N/A N/A N/A
Một thông báo UPDATE quảng bá mạng đang có. Thông báo UPDATE sẽ quảng bá: - 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ảng
routing
23
Thông báo UPDATE có cấu trúc như sau :
Hinh 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ông tin định tuyến sẽ được thực hiện. Khi đó ta sẽ thấy được trạng thái của router có dạng như sau : A#show ip bgp neighbors BGP neighbor neighbor is 172.16.15.162, 172.16.15.162, link
remote AS 2, 2, external external
BGP version 4, remote router ID 172.16.16.254 BGP state = Established, up for 02:02:11 !Output omitted for brevity
24
3.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ông quả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ệnh network. 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 Network - Qua sự phân phối phối tuyến (Route (Route redistribution) redistribution) - Từ mộ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
25
3.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 trong bả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 A#show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia IS-IS inter area * - candidate default, U - per-user static route, o ODR P - periodic downloaded static route
Gateway of last resort is not set 172.16.0.0/16 172.16.0.0/16 is variably subnetted, 4 subnets, 3 masks C 172.16.15.160/30 172.16.15.160/30 is directly connected, Serial0/0 C 172.16.15.128/27 172.16.15.128/27 is directly connected, Ethernet0/0 C 172.16.15.254/32 172.16.15.254/32 is directly connected, Loopback0 C 172.16.15.64/27 172.16.15.64/27 is directly connected, Ethernet0/1
26
Sự 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ến này có thể sử dụng câu lệnh : router bgp 1 network 172.16.0.0 neighbor 172.16.15.162 remote-as 2
Khi đó bảng định tuyến BGP của router A sẽ như sau : A#show ip bgp BGP table version is 8, local router ID is 172.16.15.254 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal Origin codes: i - IGP, e - EGP, ? - incomplete Network Weight Path *> 172.16.0.0 32768 i
Next Hop
0.0.0.0
Metric LocPrf
0
Trong Trong ví dụ trên next hop là 0.0.0.0 0.0.0.0 và thuộc thuộc tính AS path là trống chỉ chỉ ra rằng mạ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ính Weight có giá trị mặc định là 32768. Sau khi một tuyến hợp lệ được đặt trong bảng
27
định tuyến BGP , tuyến đó sẽ được quảng bá tới router B . Kết quả trong bảng định tuyến BGP là : B#show ip bgp BGP table version is 4, local router ID is 172.16.16.254 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal Origin codes: i - IGP, e - EGP, ? - incomplete Network Weight Path *> 172.16.0.0 0 1 i
Next Hop
172.16.15.161
Metric LocPrf
0
Mạng Mạng 17 172. 2.16 16.0 .0.0 .0 đư được ợc qu quản ảngg bá thàn thànhh công công tới tới rout router er B. Thuộ Thuộcc tính tính NEXT_HOP NEXT_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ột tuyến BGP hợp lệ sẽ được chuyển tới bảng định tuyến trên router B. B#show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia IS-IS inter area * - candidate default, U - per-user static route, o - ODR P - periodic downloaded static route Gateway of last resort is not set
28
172.16.0.0/16 is variably subnetted, 4 subnets, 3 masks C 172.16.16.164/30 172.16.16.164/30 is directly connected, Serial0/1 C 172.16.15.160/30 172.16.15.160/30 is directly connected, Serial0/0 C 172.16.16.254/32 172.16.16.254/32 is directly connected, Loopback0 B
172.16.0.0/16 [20/0] via 172.16.15.161, 00:09:41
Từ bảng định tuyến ta có thể nhận thấy administrative distance (AD) của EBGP là 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ên cisco 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 A router bgp 1 network 172.16.0.0 neighbor 172.16.15.162 remote-as 2 no auto-summary Router B router 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ến 172.16.0.0/16 172.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
29
và 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 được quảng bá A#show ip bgp !no output B#show ip bgp !no output B#show ip route 172.16.0.0/16 172.16.0.0/16 is variably subnetted, 3 subnets, 2 masks C 172.16.16.164/30 172.16.16.164/30 is directly connected, Serial0/1 C 172.16.15.160/30 172.16.15.160/30 is directly connected, Serial0/0 C 172.16.16.254/32 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ên router A mà không có tuyến 172.16.0.0 đã chỉ định. Vì thế xảy ra trường hợp không quả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 connected C 172.16.15.160/30 172.16.15.160/30 is directly connected, Serial0/0 C 172.16.15.128/27 172.16.15.128/27 is directly connected, Ethernet0/0
30
C 172.16.15.254/32 172.16.15.254/32 is directly connected, Loopback0 C 172.16.15.64/27 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õ rõ cả địa chỉ mạng và mask mask sao cho phù phù hợp với với bảng định định tuyến. Khi đó tuyến mới được quảng bá Router A router bgp 1 network 172.16.15.64 mask 255.255.255.224 255.255.255.224 network 172.16.15.128 mask 255.255.255.224 255.255.255.224 network 172.16.15.160 mask 255.255.255.252 255.255.255.252 network 172.16.15.254 mask 255.255.255.255 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ên router B và BGP table trên các router A, B A#show ip bgp BGP table version is 13, local router ID is 172.16.15.254 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal Origin codes: i - IGP, e - EGP, ? - incomplete Network Weight Path
Next Hop
*> 172.16.15.64/27 172.16.15.64/27 32768 i
0.0.0.0
31
Metric LocPrf
0
*> 172.16.15.128/27 172.16.15.128/27 0.0.0.0 32768 i
0
*> 172.16.15.160/30 172.16.15.160/30 0.0.0.0 32768 i
0
*> 172.16.15.254/32 172.16.15.254/32 0.0.0.0 32768 I
0
Dưới đây là bảng BGP của router B B#show ip bgp BGP table version is 9, local router ID is 172.16.16.254 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal Origin codes: i - IGP, e - EGP, ? - incomplete Network Weight Path
Next Hop
*> 172.16.15.64/27 172.16.15.64/27 0 1 i
Metric LocPrf
172.16.15.161
0
*> 172.16.15.128/27 172.16.15.128/27 172.16.15.161 0 1 i
0
*> 172.16.15.160/30 172.16.15.160/30 172.16.15.161 0 1 i
0
*> 172.16.15.254/32 172.16.15.254/32 172.16.15.161 0 1 i
0
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#show ip route 172.16.0.0/16 is variably subnetted, 6 subnets, 3 masks C 172.16.16.164/30 172.16.16.164/30 is directly connected, Serial0/1 C 172.16.15.160/30 172.16.15.160/30 is directly connected, Serial0/0 B 172.16.15.128/27 172.16.15.128/27 [20/0] via 172.16.15.161, 00:02:36
32
B 172.16.15.254/32 172.16.15.254/32 [20/0] via 172.16.15.161, 00:02:36 C 172.16.16.254/32 172.16.16.254/32 is directly connected, Loopback0 B 172.16.15.64/27 172.16.15.64/27 [20/0] via 172.16.15.161, 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 định tuyế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 router và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 redistribute connected
.
Trên Router A quá trình đó được thực hiện bởi các lệnh : Router A router bgp 1 redistribute connected neighbor 172.16.15.162 remote-as 2 no auto-summary
Tương Tương tự như phần phần 2.1 ta sẽ thấy bảng bảng định tuyến tuyến BGP và định tuyến tuyến của 2 router A và B (xét trường hợp đã hủy bỏ chế độ tự động tóm tắt tuyến ) như sau : A#show ip bgp BGP table version is 7, local router ID is 172.16.15.254 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal Origin codes: i - IGP, e - EGP, ? - incomplete
33
Network Path
Next Hop
*> 172.16.15.64/27 172.16.15.64/27 32768 ?
Metric LocPrf Weight
0.0.0.0
0
*> 172.16.15.128/27 172.16.15.128/27 0.0.0.0 32768 ?
0
*> 172.16.15.160/30 172.16.15.160/30 0.0.0.0 32768 ?
0
*> 172.16.15.254/32 172.16.15.254/32 0.0.0.0 32768 ?
0
B#show ip bgp BGP table version is 21, local router ID is 172.16.16.254 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal Origin codes: i - IGP, e - EGP, ? - incomplete
Network Weight Path
Next Hop
*> 172.16.15.64/27 172.16.15.64/27 0 1 ?
Metric LocPrf
172.16.15.161
0
*> 172.16.15.128/27 172.16.15.128/27 172.16.15.161 0 1 ?
0
*> 172.16.15.160/30 172.16.15.160/30 172.16.15.161 0 1 ?
0
*> 172.16.15.254/32 172.16.15.254/32 172.16.15.161 0 1 ?
0
B#show ip route 172.16.0.0/16 is variably subnetted, 6 subnets, 3 masks C 172.16.16.164/30 172.16.16.164/30 is directly connected, Serial0/1
34
C 172.16.15.160/30 172.16.15.160/30 is directly connected, Serial0/0 B 172.16.15.128/27 172.16.15.128/27 [20/0] via 172.16.15.161, 00:01:44 B 172.16.15.254/32 172.16.15.254/32 [20/0] via 172.16.15.161, 00:01:44 C 172.16.16.254/32 172.16.16.254/32 is directly connected, Loopback0 B 172.16.15.64/27 172.16.15.64/27 [20/0] via 172.16.15.161, 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ính ORIGIN đượ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ự BGP chí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
35
Bằng việc sử dụng các câu lệnh Router B router bgp 2 neighbor 172.16.15.161 remote-as 1 neighbor 172.16.16.166 remote-as 3 no auto-summary
Router C router bgp 3 neighbor 172.16.16.165 remote-as 2
Cho phép router mới thêm vào nhận diện được hàng xóm với nó là router B và router B cũng nhận diện được hàng xóm của nó là router C. Quá trình quảng bá tuyến diễn ra giữa router B, C cho phép router B quảng bá các tuyến có trên router A . Kết quả trong bảng định tuyến và BGP routing của router C có các tuyến cần đạt tới trên router A C#show ip bgp BGP table version is 5, local router ID is 172.16.17.254 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal Origin codes: i - IGP, e - EGP, ? - incomplete Network Weight Path
Next Hop
*> 172.16.15.64/27 172.16.15.64/27 0 2 1 ?
172.16.16.165
*> 172.16.15.128/27 172.16.15.128/27 172.16.16.165 0 2 1 ? *> 172.16.15.160/30 172.16.15.160/30 172.16.16.165 0 2 1 ?
36
Metric LocPrf
*> 172.16.15.254/32 172.16.15.254/32 172.16.16.165 0 2 1 ? C#show ip route 172.16.0.0/16 172.16.0.0/16 is variably subnetted, 7 subnets, 3 masks C 172.16.16.164/30 172.16.16.164/30 is directly connected, Serial0/1 B 172.16.15.160/30 172.16.15.160/30 [20/0] via 172.16.16.165, 00:12:21 B 172.16.15.128/27 172.16.15.128/27 [20/0] via 172.16.16.165, 00:12:21 B 172.16.15.254/32 172.16.15.254/32 [20/0] via 172.16.16.165, 00:12:21 C 172.16.17.254/32 172.16.17.254/32 is directly connected, Loopback0 C 172.16.17.32/27 172.16.17.32/27 is directly connected, Ethernet0/0 B 172.16.15.64/27 172.16.15.64/27 [20/0] via 172.16.16.165, 172.16.16.165, 00:12:21
Thuộc tính AS_PATH trên router C có giá trị 2 1 là các AS phải đi qua để đạt tới các tuyến trên router router A. Ví dụ này chứng minh minh rằng router EBGP EBGP quảng bá tuyến học học được từ một EBGP hàng xóm tới một hàng xóm khác 3.3 Hoạt động của IBGP 3.3.1 Khảo sát hoạt động của IBGP Để khảo sát sự hoạt động của IBGP ta khảo sát topo dưới đây
37
Hình 19 : Kết nối IBGP và EBGP Việc cấu hình EBGP và IBGP cho việc quảng bá tuyến tương đối giống nhau trên các thiết bị của cisco. Tuy nhiên sự hoạt động của EBGP và IBGP có phần khác nhau. Để khảo sát ta xem xét các thông tin trên router D và E khi E quảng bá các tuyến kết nối trực tiếp với nó: Router D router bgp 1 neighbor 172.16.15.162 remote-as 2 no auto-summary Router E router bgp 2 redistribute connected neighbor 172.16.15.161 remote-as 1 no auto-summary
Khảo sát bảng routing table và bảng BGP routing table của router D ta thu được kết quả D#show ip bgp BGP table version is 4, local router ID is 172.16.15.254 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
38
Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 172.16.15.160/30 172.16.15.160/30 172.16.15.162 0 2 ? *> 172.16.16.164/30 172.16.16.164/30 172.16.15.162 0 2 ? *> 172.16.16.254/32 172.16.16.254/32 172.16.15.162 0 2 ?
0 0 0
D#show ip route 172.16.0.0/16 is variably subnetted, 6 subnets, 3 masks B 172.16.16.164/30 172.16.16.164/30 [20/0] via 172.16.15.162, 00:27:23 C 172.16.15.160/30 172.16.15.160/30 is directly connected, Serial0/0 C 172.16.15.128/27 172.16.15.128/27 is directly connected, Ethernet0/0 C 172.16.15.254/32 172.16.15.254/32 is directly connected, Loopback0 B 172.16.16.254/32 172.16.16.254/32 [20/0] via 172.16.15.162, 00:27:23 C 172.16.15.64/27 172.16.15.64/27 is directly connected, Ethernet0/1
Việc thiết lập sự hoạt động của IBGP giữa các router trong AS 1 tương đối giống so với việc thiết lập sự hoạt động của EBGP ngoại trừ việc thay đổi số AS. Trong topo trên để thiết lập sự hoạt động của IBGP giữa router C và D ta sử dụng cấu hình sau : Router C router bgp 1 neighbor 172.16.15.130 remote-as 1 no auto-summary
39
Router D router bgp 1 neighbor 172.16.15.129 remote-as 1 neighbor 172.16.15.162 remote-as 2 no auto-summary
Sau khi thiết lập được sự hoạt động của IBGP trong AS 1 giữa router D và C tao có thể xác nhận quan hệ giữa chúng là IBGP. Các thông tin chỉ ra bởi router D cho chúng ta thấy rõ điều này: D#show ip bgp neighbors 172.16.15.129 172.16.15.129 BGP neighbor neighbor is 172.16.15.129, 172.16.15.129, link
remote AS 1, 1, internal internal
BGP version 4, remote router ID 172.16.15.253 BGP state = Established, up for 00:28:24 Last read 00:00:24, hold time is 180, keepalive interval is 60 seconds !Output omitted for brevity
Các thông tin đầu ra trên cho thấy router C và router D đã tồn tại mối quan hệ IBGP hàng xóm. Thuật ngữ “internal link” trong thông tin đầu ra chỉ rõ mối quan hệ này. Các tuyến được quảng bá từ router E đến router C qua router D như sau : C#show ip bgp BGP table version is 1, local router ID is 172.16.15.253 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal i - IGP, e - EGP, ? - incomplete Network Path
Next Hop
Metric LocPrf Weight
* i172.16.15.160/30 i172.16.15.160/30 172.16.15.162 0 2 ?
40
0
100
* i172.16.16.164/30 i172.16.16.164/30 172.16.15.162 0 2 ?
0
100
* i172.16.16.254/32 i172.16.16.254/32 172.16.15.162 0 2 ?
0
100
Tiếp tục khảo sát bảng định tuyến trên router C ta nhận thấy : C#show ip route 172.16.0.0/16 is variably subnetted, 5 subnets, 3 masks C 172.16.15.128/27 172.16.15.128/27 is directly connected, Ethernet2/0 C 172.16.15.253/32 172.16.15.253/32 is directly connected, Loopback0 C 172.16.15.32/27 172.16.15.32/27 is directly connected, Ethernet0/0 C
172.16.9.0/30 is directly connected, Serial0/1
C 172.16.15.96/27 172.16.15.96/27 is directly connected, FastEthernet1/0
Dựa vào thông tin trong bảng định tuyến trên ta nhận thấy một số tuyến trong bảng BGP trên router không được chuyển vào bảng định tuyến trên router C. Tuy nhiên khảo sát kĩ bảng định tuyến BGP trên router C và D ta thấy : Router D *> 172.16.15.160/30 172.16.15.160/30 172.16.15.162 0 2 ?
0
Router C * i172.16.15.160/30 i172.16.15.160/30 172.16.15.162 0 2 ?
0
100
Các tuyến có cùng next hop cho mạng 172.16.15.160/30 nhưng router D xem tuyến đó là một tuyến hợp lệ và là tuyến tốt nhất (* >) còn router C cũng coi tuyến đó
41
là tuyến hợp lệ ( * ) nhưng không phải là tuyến tốt nhất. Các thông tin đầu ra dưới đây trên router C cho ta thấy điều này C#show ip bgp 172.16.15.160 172.16.15.160 BGP routing table entry for 172.16.15.160/30, version 0 Paths: (1 available, no best path) Not advertised to any peer
2
172.16.15.162 (inaccessible) from 172.16.15.130 (172.16.15.254) rigin incomplete, metric 0, localpref 100, valid, internal, not synchronized
Địa chỉ mạng 172.16.15.160 và các địa chỉ khác được nhận từ router D là không thể truy cập. Điều này có nghĩa là router C không biết làm thế nào để đạt được đến NEXT_HOP NEXT_HOP do BGP không thay đổi NEXT_HOP khi thông tin được nhận và quảng bá từ các EBGP EBGP hàng xóm tới tới một IBGP router. router. Router D không thay đổi NEXT_HOP NEXT_HOP 172.16.15.162 khi tuyến 172.16.15.160 được quảng bá tới router C. Tuyến đó được xem như không thể truy cập vì nó không tồn tại trong bảng routing table. Để giải quyết vấn đề này ta có thể sử dụng một giao thức IGP cho không những cho việc quảng bá NEXT_HOP NEXT_HOP mà còn quảng bá tất cả các mạng thuộc về AS 1. Trong ví dụ này ta có thể sử dụng một vùng đơn trên router A, B, C, D. Có thể xây dựng một vùng OSPF và định danh vùng AS 1 sử dụng cấu hình sau để quảng bá NEXT_HOP : router ospf 1 network 172.16.0.0 0.0.255.255 area 51
Sau khi đã giải quyết vấn đề quảng bá NEXT_HOP. Các thông tin trong bảng định tuyên, bảng BGP sẽ thay đổi như sau : C#show ip route | include 172.16.15.160 O 172.16.15.160/30 172.16.15.160/30 [110/74] via 172.16.15.130, 172.16.15.130, 00:05:45, Ethernet2/0 C#show ip bgp 172.16.15.160 172.16.15.160 BGP routing table entry for 172.16.15.160/30, version 2
42
Paths: (1 available, best #1, table Default-IP-RoutingDefault-IP-RoutingTable) Not advertised to any peer
2
172.16.15.162 (metric 74) from 172.16.15.130 (172.16.15.254) Origin incomplete, metric 0, localpref 100, valid, internal, synchronized, best
Tiếp đó các tuyến BGP đã được chuyển vào bảng routing table : C#show ip route 172.16.0.0/16 is variably subnetted, 12 subnets, 3 masks O 172.16.15.160/30 172.16.15.160/30 [110/74] via 172.16.15.130, 172.16.15.130, 00:08:45, Ethernet2/0 O 172.16.15.164/30 172.16.15.164/30 [110/50] via 172.16.15.97, 00:08:45, FastEthernet1/0 FastEthernet1/0 C
172.16.15.128/27 172.16.15.128/27 is directly connected, Ethernet2/0
O 172.16.15.251/32 172.16.15.251/32 [110/3] via 172.16.15.97, 00:08:45, FastEthernet1/0 FastEthernet1/0 O 172.16.15.254/32 172.16.15.254/32 [110/11] via 172.16.15.130, 172.16.15.130, 00:08:45, Ethernet2/0 C
172.16.15.253/32 172.16.15.253/32 is directly connected, Loopback0
O 172.16.15.252/32 172.16.15.252/32 [110/2] via 172.16.15.97, 00:08:46, FastEthernet1/0 FastEthernet1/0 C
172.16.15.32/27 172.16.15.32/27 is directly connected, Ethernet0/0
O 172.16.15.0/27 [110/2] via 172.16.15.97, 00:08:46, FastEthernet1/0 C
172.16.9.0/30 is directly connected, Serial0/1
C 172.16.15.96/27 172.16.15.96/27 is directly connected, FastEthernet1/0 O 172.16.15.64/27 172.16.15.64/27 [110/12] via 172.16.15.97, 00:08:46, FastEthernet1/0 FastEthernet1/0
43
Mạng 172.16.15.160 trong bảng routing table là một tuyến OSPF. Một câu hỏi được đặt ra là tại sao tuyến đó không phải là một tuyến IBGP ? Câu trả lời là do router C học về tuyến 172.16.15.160 thông qua OSPF và IBGP tuy nhiên OSPF có Administrative distance (AD) là 110 còn IBGP là 200 vì thế tuyến OSPF được sử dụng . Nhìn vào bảng routing table table ta không thấy bất cứ tuyến BGP nào tuy nhiên khi quan sát thông tin đầu ra trên bảng BGP của router C ta nhận thấy : C#show ip bgp BGP table version is 2, local router ID is 172.16.15.253 tatus codes: s suppressed, d damped, h history, * valid, > best, i - internal Origin codes: i - IGP, e - EGP, ? - incomplete Network Weight Path
Next Hop
Metric LocPrf
*>i172.16.15.160/30 172.16.15.162 *>i172.16.15.160/30 0 2 ?
0
100
* i172.16.16.164/30 i172.16.16.164/30 172.16.15.162 0 2 ?
0
100
* i172.16.16.254/32 i172.16.16.254/32 172.16.15.162 0 2 ?
0
100
Tuyến 172.16.15.160, 172.16.16.164, 172.16.16.254 là các tuyến hợp lệ tuy nhiên 2 tuyến 172.16.16.164 và 172.16.16.254 không phải là các tuyến có đường tối ưu. Nhận định trên được kiểm chứng với tuyến 172.16.16.164 .
C#show ip bgp 172.16.16.164 172.16.16.164 BGP routing table entry for 172.16.16.164/30, version 0 Paths: (1 available, no best path) Not advertised to any peer 2
44
172.16.15.162 (metric 74) from 172.16.15.130 (172.16.15.254) Orig rigin inco incom mplet plete, e, metr etric internal, not synchronized
0,
local ocalp pref ref
100, 00,
val valid, id,
Các tuyến không hợp lệ trên là các tuyến không được đồng bộ. Đồng bộ là một đặc tính của IBGP. Luật đồng bộ qui định một tuyến BGP nhận từ một IBGP hàng xóm không được coi là hợp lệ nếu như tuyến đó không nằm trong bảng định tuyến. Tuyến 172.16.15.160 172.16.15.160 trong topo trên đã được đồng bộ bởi tuyến đó đã nằm trong bảng IP routing table với vai trò của một tuyến OSPF. Các tuyến BGP 172.16.16.164 172.16.16.164 và 172.16.16.254 không nằm trong bảng định tuyến vì thế chúng được xem là không đồng bộ. Để nói rõ hơn về luật đồng bộ này ta khảo sát topo dưới đây
Hình 20 : Đồng bộ trong IBGP Router A và B thực hiện một kết nối EBGP, Router A quảng bá tuyến 172.16.1.0/24 đến router B. Trong AS 2 một đường kết nối vật lí tồn tại giữa router B và D thông qua router router C. IBGP không yêu cầu cầu một kết nối vật lí và các các Router B, D đã thực hiện được một kết nối IBGP. Các thông tin trao đổi giữa router B và D được thực hiện qua kết nối vật lí với router C tuy nhiên router C không biết được những nội dung của thông tin trao đổi này . Router B và D phải biết được làm cách nào có thể đến được các tuyến khác. AS 2 chạy OSPF để quảng bá tất cả các tuyến trong AS 2. Tất cả những điều trên nhằm thực
45
hiện một kết nối IBGP IBGP giữa các hai router. router. Giả sử đồng bộ không không phải là đặc tính tính của IBGP chúng ta khảo sát các sự kiện sau : 1, Router A quảng bá tuyến 172.16.1.0/24 đến router B thông qua EBGP 2, Router B chấp nhận tuyến vì nó biết NEXT_HOP (NEXT_HOP được biết do tuyến được kết nối trực tiếp ). Tiếp đó tuyến được đặt vào trong bảng routing trên router B. 3, Router B quảng bá tuyến đến router D thông qua IBGP mà không thay đổi NEXT_HOP. NEXT_HOP. 4, Router D chấp nhận tuyến vì NEXT_HOP được biết thong qua OSPF. 5, Router D quảng bá tuyến 172.16.1.0/24 đến router E trong AS 3. 6, Router E chấp nhận tuyến vì biết NEXT_HOP và đặt tuyến này vào bảng routing table của nó. 7, Giả sử một host trong AS 3 gửi một gói tin đến host trên mạng 172.16.1.0/24. Host gửi gói đến router E và router E chuyển tiếp gói đến router D sau khi nó khảo sát bảng định tuyến của nó. 8, Router D nhận gói và kiểm tra địa chỉ đích để đưa ra quyết định chuyển tiếp gói tin. Gói được chuyển tới router C. 9, Router C không biết được tuyến 172.16.1.0/24 vì tuyến không được học qua OSPF hay BGP vì thế router C hủy gói. Mặc định các router Cisco cho phép đồng bộ, câu lệnh no synchronization cho phép tắt chế độ này. Khi đó các tuyến quảng quảng bá bởi router D sẽ được chuyển đến đến bảng IP routing table trên router C. C#show ip bgp BGP table version is 4, local router ID is 172.16.15.253 tatus codes: s suppressed, d damped, h history, * valid, > best, i - internal Origin codes: i - IGP, e - EGP, ? - incomplete Network Path
Next Hop
Metric LocPrf Weight
46
*>i172.16.15.160/30 172.16.15.162 *>i172.16.15.160/30 0 2 ?
0
100
*>i172.16.16.164/30 172.16.15.162 *>i172.16.16.164/30 0 2 ?
0
100
*>i172.16.16.254/32 172.16.15.162 *>i172.16.16.254/32 0 2 ?
0
100
C#show ip route | i B B 00:02:28
172.16.16.164/30 172.16.16.164/30 [200/0] via 172.16.15.162, 172.16.15.162,
B 00:02:28
172.16.16.254/32 172.16.16.254/32 [200/0] via 172.16.15.162, 172.16.15.162,
Tiếp tục khảo sát việc quảng bá tuyến từ router C đến router B. Để quảng bá các tuyến từ router C đến router B, 2 router cần thiết lập một tiến trình BGP, mối quan hệ hàng xóm giữa chúng : Router C router bgp 1 no synchronization synchronization neighbor 172.16.15.97 remote-as 1 neighbor 172.16.15.130 remote-as 1 no auto-summary
Router B router bgp 1 neighbor 172.16.15.98 remote-as 1
Khảo sát thông tin đầu ra về mối quan hệ giữa các router và bảng định tuyến của router B B#show ip bgp neighbors 172.16.15.98 | include Established BGP state = Established, up for 00:04:22 B#show ip bgp
47
!no output
Từ các thông tin đầu đầu ra ta nhận thấy router router C không quảng bá bất kì tuyến BGP nào tới router B. Đặc tính này minh họa sự hoạt động khác nhau giữa IBGP và EBGP. Tất cả các router chạy IBGP không được quảng bá các tuyến học được từ một IBGP hàng xóm đến một IBGP hàng xóm khác. Sở dĩ IBGP hoạt động như vậy là do đặc tính chống loop của BGP. Do Thuộc tính AS_PATH được sử dụng để chống loop nên nó không quảng bá tuyến khi thấy AS của chính nó. Vì thế các tuyến IBGP không được quảng bá. Chính điều này khiến các IBGP routers cần một cấu hình full mesh , tất cả các routers chạy IBGP đều cần có kết nối đến tất cả các router khác chạy IBGP trong cùng một AS. Như đã nói ở trên các IBGP hàng xóm không cần một kết nối vật lí để thiết lập mối quan hệ. Yêu cầu cần thiết ở đây chỉ là một kết nối IP giữa chúng. Tuy nhiên chúng ta sử dụng địa chỉ ở các giao diện vật lí để thiết lập mối quan hệ hàng xóm giữa các router vì thế khi các giao diện vật lí gặp lỗi cũng sẽ khiến cho kết nối BGP lỗi theo. Để giải quyết vấn đề này BGP cũng như các giao thức IGPs đưa ra giải pháp về địa chỉ loopback 3.3.2 Giao diện loopback trong IBGP Vấn đề đặt ra khi xây dựng cấu hình các router trong AS 1 là chuyện sẽ gì xuất hiện khi địa chỉ vật lí hoặc tuyến gặp sự cố.
Hình 21 : IBGP không yêu câu kết nối vật lí giữa các hàng xóm Trong topo trên router D có ba tuyến để đến được router C tuy nhiên nếu kết nối vật lí gặp sự cố những tuyến khác cũng không thể được sử dụng nếu như mối quan hệ hàng xóm được định nghĩa trên các giao diện vật lí đã gặp sự cố.
48
Thay cho việc sử dụng địa chỉ trên các giao diện vật lí người ta sử dụng địa chỉ loopback. Với topo trên tuyến đường tốt nhất từ router D tới C là kết nối trực tiếp thông qua giao diện loopback. Tương tự nếu kết nối trực tiếp này lỗi router D sẽ lựa chọn các tuyến qua A và đến C hoặc tuyến qua A, B và tới C. Việc khai báo và sử dụng địa chỉ loopback cũng tương đối dễ dàng Router A router bgp 1 no synchronization synchronization neighbor 172.16.15.252 remote-as 1 neighbor 172.16.15.252 update-source Loopback0 neighbor 172.16.15.253 remote-as 1 neighbor 172.16.15.253 update-source Loopback0 neighbor 172.16.15.254 remote-as 1 neighbor 172.16.15.254 update-source Loopback0 no auto-summary Router B router bgp 1 no synchronization synchronization neighbor 172.16.15.251 remote-as 1 neighbor 172.16.15.251 update-source Loopback0 neighbor 172.16.15.253 remote-as 1 neighbor 172.16.15.253 update-source Loopback0 neighbor 172.16.15.254 remote-as 1 neighbor 172.16.15.254 update-source Loopback0 no auto-summary Router C
49
router bgp 1 no synchronization synchronization neighbor 172.16.15.251 remote-as 1 neighbor 172.16.15.251 update-source Loopback0 neighbor 172.16.15.252 remote-as 1 neighbor 172.16.15.252 update-source Loopback0 neighbor 172.16.15.254 remote-as 1 neighbor 172.16.15.254 update-source Loopback0 no auto-summary Router D router bgp 1 no synchronization synchronization neighbor 172.16.15.162 remote-as 2 neighbor 172.16.15.251 remote-as 1 neighbor 172.16.15.251 update-source Loopback0 neighbor 172.16.15.252 remote-as 1 neighbor 172.16.15.252 update-source Loopback0 neighbor 172.16.15.253 remote-as 1 neighbor 172.16.15.253 update-source Loopback0 no auto-summary
Một vấn đề nữa đặt ra khi sử dụng IBGP là việc thực hiện một cấu hình full mesh giữa các router. Cấu hình full mesh sẽ tạo ra một số lượng các kết nối lớn . Số kết nối
50
IBGP cần thiết cho một full mesh dựa vào số lượng IBGP router và được cho bởi công thức Số kết nối = [(n)(n-1)]/2. BGP cũng đưa ra các phương án để giải quyết vấn đề này
51
3.3.3 Route-Reflector (RR) Một route reflector là một router được cấu hình để chuyển những cập nhật định tuyến đến các router hàng xóm hoặc các router chạy BGP bên trong một AS. Các router IBGP cần phải được chỉ ra như là client trong khi cấu hình. Khi một client gửi một cập nhật định tuyến đến route-reflector, nó sẽ chuyển update đó đến các router client khác. Đặc biệt, route-reflector định nghĩa luật split horizon. Lụât này qui định rằng một IBGP router sẽ không truyền một tuyến được học từ một router hàng xóm trong cùng một AS. Route Reflector và client sẽ đòi hỏi một quan hệ hàng xóm đầy đủ bởi vì route reflector sẽ gửi các cập nhật từ các client khác nhưng việc thiết lập hàng xóm giữa các client là không cần thiết. Một route-reflector sẽ kết nối đến các hàng xóm mà nó không đẩy tuyến đến. Từ quan điểm của route-reflector, các hàng xóm này được gọi là non-clients. Các router non clients phải được kết nối full mesh với các route-reflector và với các non-client khác. Khi một router đã cấu hình như một route-reflector, nó sẽ đẩy những đường đi được học từ các IBGP khác chỉ đến các route-reflector clients và tới các IBGP/EBGP hàng xóm. Điều này có nghĩa là một thiết kế hub-and-spoke có thể được triển khai trong một AS giữa các IBGP hàng xóm, như vậy giảm thiểu số phiên giữa các router. Cả route-reflector và các client của nó hình thành nên một đơn vị để chia sẽ thông tin. Đơn vị này gọi là cluster. Một Autonomous System có thể được chia ra thành các cluster, trong các cluster sẽ có các route-reflector được chỉ định và cấu hình. Phải có ít nhất một route-reflector trong mỗi cluster. Nếu một route-reflector kết nối đến các route reflector khác, routereflector phải được full mesh. Điều này nhằm đảm bảo các bảng IBGP routing là đầy đủ.. Khi đủ Khi mộ mộtt rout routee-re refl flec ecto torr chuy chuyển ển đi mộ mộtt cập cập nh nhật ật định định tuyế tuyếnn, thuộ thuộcc tính tính Originator_ID sẽ được thiết lập. Đây là BGP routerID của router đã tạo ra đường đi. Nếu router này nhận lại bản cập nhật định tuyến đó, router sẽ thấy ID của chính nó và sẽ bỏ qua thông tin này. Điều này nhằm ngăn ngừa và tăng khả năng loop. Nếu có nhiều route-reflector trong cluster, các router sẽ phân biệt với nhau bằng clusterID. Thông số này phục vụ cùng một mục đích như thuộc tính Originator_ID Originator_ID để ngăn ngừa loop. Với cách dùng route-reflector, route-reflector, router đóng vai trò route-reflector route-reflector sẽ tốn nhiều tài tài nguyên hơn. Nếu cấu hình route-reflector không chính xác, nó có thể gây ra loop. Có nhiều mức route-reflector có thể được cấu hình bằng cách tạo ra các thiết kế theo thứ
52
bậc. Các router không là thành phần của route-reflector route-reflector sẽ không bị ảnh hưởng trong những thay đổi về thiết kế và những thay đổi về quá trình truyền các cập nhật. Thay vào đó, các router này sẽ không nhận biết được bất cứ thay đổi nào vì nó vẫn nhận được các cập nhật mà nó cần. Bản thân các cập nhật định tuyến cũng không bị thay đổi bởi vì không có sự thay đổi nào trong giá trị các thuộc tính được mang trong các cập nhật định tuyến. Chính vì các đặc điểm trên, quá trình chuyển đổi thiết kế một hệ thống mạng nào đó sang dạng dùng route-reflector thì rất dễ dàng. Một thiết kế quan trọng là bản thân các route-reflector trong một AS cũng phải full mesh. Ngoài ra, một route-reflector này có thể là client cho một route-reflector khác. Thiết kế như vậy khá phức tạp và yêu cầu xem xét cẩn thận bởi vì khi các route-reflector được cấu hình và split horizon bị hủy bỏ, không còn một cơ chế nào để bảo vệ và chống loop.
Hình 22: Thiết kế Route-reflector
53
Các lợi ích của route-reflector bao gồm - Khả năng mở rộng mạng - Thiết kế mang tính cấu trúc cao - Giảm lưu lượng mạng. - Giảm bộ nhớ và CPU cần thiết để duy trì các phiên TCP trên các IBGP hàng xóm. - Hội tụ nhanh hơn và mạng trở nên đơn giản hơn bởi vì có đến hai giao thức định tuyến được dùng: IBGP cho các thông tin định tuyến bên ngoài đi qua AS; IGP cho các router bên trong một AS.
Hình 23: Cấu hình các route-reflector
54
Hoạt động của Route Reflector: Một Route Reflector đơn giản giống như một tấm gương để phản hồi các bản cập nhật định tuyến từ các client đến các client khác mà không yêu cầu một mạng phải full mesh. Khi một RR nhận được một cập nhật: - Client sẽ chuyển cập nhật tuyến tuyến đó cho router hàng xóm của nó, trong trường trường hợp này là RR - Một cập nhật tuyến từ từ client được nhận từ từ RR và cập nhật sẽ được chuyển chuyển đến các RR clients cũng như nonclients. Thông số originatorID ban đầu sẽ bị loại trừ ra khỏi cập nhật. - Nếu có nhiều đường đi nhận được từ RR, đường đi tốt nhất sẽ được chọn thông qua RR. - Một nonclient router sẽ chuyển các cập nhật tới các láng giềng của nó, có thể là một RR. - Một RR nhận một cập nhật tuyến từ một router router nonclient và cập nhật tuyến tuyến chỉ được chuyển đến clients - Khi cập nhật tuyến đến đến từ EBGP cả client và non-clients non-clients đều nhận được được thông tin định tuyến từ RR
Hình 24: Phản xạ tuyến RR
55
Router C hoạt động như một router reflector với các router A,B,D là các client. Cấu hình của các router được cho dưới đây Router A router bgp 1 no synchronization synchronization neighbor 172.16.15.253 remote-as 1 neighbor 172.16.15.253 update-source Loopback0 no auto-summary Router B router bgp 1 no synchronization synchronization neighbor 172.16.15.253 remote-as 1 neighbor 172.16.15.253 update-source Loopback0 no auto-summary Router D router bgp 1 no synchronization synchronization neighbor 172.16.15.162 remote-as 2 neighbor 172.16.15.253 remote-as 1 neighbor 172.16.15.253 update-source Loopback0 no auto-summary Router C router bgp 1 no synchronization synchronization neighbor 172.16.15.251 remote-as 1
56
neighbor 172.16.15.251 update-source Loopback0 neighbor 172.16.15.251 route-reflector-client route-reflector-client neighbor 172.16.15.252 remote-as 1 neighbor 172.16.15.252 update-source Loopback0 neighbor 172.16.15.252 route-reflector-client route-reflector-client neighbor 172.16.15.254 remote-as 1 neighbor 172.16.15.254 update-source Loopback0 neighbor 172.16.15.254 route-reflector-client route-reflector-client no auto-summary
3.3.4 Phân cấp định tuyến trong các AS (Confederations) Confederations cũng là một công nghệ nhằm giảm số kết nối IBGP. Hoạt động của phương pháp này dựa trên việc phân chia AS thành các AS con được đánh số AS theo qui tắc AS riêng ( 64512 đến 65534).
Hình 25 : Phân chia AS trong confederations Trong topo ví dụ hình 25 AS 1 được phân chia ra làm hai AS khác và được đánh số theo qui định đảm bảo làm một AS riêng ( private AS ). Hai router B và C được
57
nhóm vào cùng một AS là 64555 , Hai router còn lại trong AS 1 là A và D được nhóm vào AS 64556. Cấu hình các router được cho dưới đây : Router A router bgp 64556 no synchronization synchronization bgp confederation peers 64555 neighbor 172.16.15.34 remote-as 64555 neighbor 172.16.15.254 remote-as 64556 neighbor 172.16.15.254 update-source Loopback0 no auto-summary
Router B router bgp 64555 no synchronization synchronization neighbor 172.16.15.253 remote-as 64555 neighbor 172.16.15.253 update-source Loopback0 no auto-summary
Router C router bgp 64555 no synchronization synchronization bgp confederation peers 64556 neighbor 172.16.15.33 remote-as 64556 neighbor 172.16.15.252 remote-as 64555 neighbor 172.16.15.252 update-source Loopback0 no auto-summary
58
Router D router bgp 64556 no synchronization synchronization bgp confederation identifier 1 neighbor 172.16.15.162 remote-as 2 neighbor 172.16.15.251 remote-as 64556 neighbor 172.16.15.251 update-source Loopback0 no auto-summary
Trên đây là hai phương pháp để giảm số kết nối trong IBGP. Hai phương pháp trên có thể sử dụng riêng riêng rẽ hoặc có thể kết hợp với nhau. nhau. Tuy nhiên nhiên sự kết hợp giữa giữa hai phương phương pháp pháp trên trên sẽ kéo theo theo một cấu hình hình phức phức tạp gây khó khăn khăn cho cho quản quản trị trị viên viên..
Hình 26: Sự kết hợp của 2 phương pháp RR và Confederations 3.4 Giải thuật định tuyến trong BGP Định tuyến trong BGP như đã nói ở trên dựa vào các thuộc tính. Dựa vào độ ưu tiên giữa các thuộc tính mà BGP đưa ra quyết định để định tuyến. Giải thuật định tuyến được thể hiện qua sơ đồ dưới đây :
59
Quá trình chọn tuyến được mô tả theo thứ tự ưu tiên giữa các thuộc tính như sau : Khi các tuyến được nhận bởi các BGP router việc đầu tiên nó làm là kiểm tra thuộc tính NEXT_HOP. Nếu NEXT_HOP không thể đạt được (không nằm trong bảng IP routing ) tuyến đó sẽ bị từ chối. Với các tuyến được nhận từ các IBGP hàng xóm, ngoài việc kiểm tra thuộc tính NEXT_HOP NEXT_HOP router sẽ kiểm tra luật đồng bộ trên router. Nếu luật đồng bộ bộ được cho phép phép hoạt động trên router router thì các tuyến không không đồng bộ sẽ bị từ chối cập nhật vào bảng định tuyến. Sau khi đã kiểm tra và tất cả các điều kiện trên đều thỏa mãn quá trình chọn tuyến trong BGP sẽ được thực hiện dựa trên mức độ ưu tiên giữa các thuộc tính và theo thứ tự lần lượt dưới đây :
60
- Ưu tiên tuyến có thuộc tính WEIGHT cao nhất (Chỉ có tác dụng trên router) - Ưu tiên tuyến có thuộc tính LOCAL_PREF cao nhất (Thuộct tính này có tác dụng trong một AS). Những tuyến không có thuộc tính LOCAL_PREF sẽ có giá trị mặc định là 100. - Ưu tiên các tuyến gốc (có NEXT_HOP là 0.0.0.0) - Ưu tiên tuyến có thuộc tính AS_PATH thấp nhất - Ưu tiên các tuyến có nguồn gốc thấp nhất theo thứ tự ưu tiên IGP, EGP và INCOMPLETE - Ưu tiên tuyến có thuộc tính MED (metric) thấp nhất (thuộc tính này có giá trị giữa các AS khác nhau ). - Ưu tiên các tuyến EBGP hơn so với IBGP - Ưu tiên những đường đi có IGP metric thấp nhất đến BGP NEXT_HOP - Ưu tiên những đường đi đến từ BGP router có routerID nhỏ nhất 3.5 Sự tóm tắt tuyến trong BGP Để khảo sát quá trình tóm tắt tuyến trong BGP ta xét topo mạng dưới đây :
Hình 27 : Tóm tắt tuyến trong BGP Router A quảng bá 4 tuyến đến các router B và Router C thông qua EBGP. Thuộc tính AS_PATH cho tuyến 156.26.0.0 trên Router B bằng 1 và trên Router C bằng 2 1. Khảo sát thông tin về tuyến trên 2 router B và C ta thu được như sau:
B#show ip bgp BGP table version is 5, local router ID is 172.16.15.252 tatus codes: s suppressed, d damped, h history, * valid, > best, i - internal
61
Origin codes: i - IGP, e - EGP, ? - incomplete Network Path
Next Hop
Metric LocPrf Weight
*> 156.26.32.0/24 0 1 i
172.16.15.1
0
*> 156.26.33.0/24 0 1 i
172.16.15.1
0
*> 156.26.34.0/24 0 1 i
172.16.15.1
0
*> 156.26.35.0/24 0 1 I
172.16.15.1
0
C#show ip bgp BGP table version is 5, local router ID is 172.16.15.253 tatus codes: s suppressed, d damped, h history, * valid, > best, i - internal Origin codes: i - IGP, e - EGP, ? - incomplete
Network Path
Next Hop
Metric LocPrf Weight
*> 156.26.32.0/24 156.26.32.0/24 2 1 i
172.16.15.97
0
*> 156.26.33.0/24 156.26.33.0/24 2 1 i
172.16.15.97
0
*> 156.26.34.0/24 0 2 1 i
172.16.15.97
*> 156.26.35.0/24 0 2 1 i
172.16.15.97
Trên các thiết bị của Cisco quá trình tóm tắt tuyến được thực hiện bởi câu lệnh aggregate-address.
BGP chỉ tóm tắt tuyến trong bảng BGP routing table.
62
Hình 28 : Tóm tắt tuyến trong BGP Xét quá trình tóm tắt bốn tuyến của router A trên router B. Qúa trình tóm tắt được thực hiện như sau : Router B router bgp 2 aggregate-address aggregate-addre ss 156.26.32.0 255.255.252.0 neighbor 172.16.15.1 remote-as 1 neighbor 172.16.15.98 remote-as 3
Khảo sát bảng BGP routing trên router B ta thấy xuất hiện tuyến tóm tắt. B#show ip bgp BGP table version is 6, local router ID is 172.16.15.252 tatus codes: s suppressed, d damped, h history, * valid, > best, i - internal Origin codes: i - IGP, e - EGP, ? - incomplete Network Path
Next Hop
Metric LocPrf Weight
*> 156.26.32.0/24 156.26.32.0/24 0 1 i
172.16.15.1
*> 156.26.32.0/22 156.26.32.0/22 32768 i
0.0.0.0
*> 156.26.33.0/24 156.26.33.0/24 0 1 i
172.16.15.1
63
0
0
*> 156.26.34.0/24 156.26.34.0/24 0 1 i
172.16.15.1
0
*> 156.26.35.0/24 156.26.35.0/24 0 1 i
172.16.15.1
0
Tuyến tóm tắt này có NEXT_HOP là 0.0.0.0 vì nó xuất phát từ chính router B. Cũng vì thế mà thuộc tính AS_PATH không được đặt ở đây. Tiếp tục khảo sát bảng BGP routing trên 2 router A và C : A#show ip bgp BGP table version is 6, local router ID is 172.16.15.251 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal Origin codes: i - IGP, e - EGP, ? - incomplete
Network Path
Next Hop
Metric LocPrf Weight
*> 156.26.32.0/24 32768 i
0.0.0.0
0
*> 156.26.32.0/22 0 2 i
172.16.15.2
*> 156.26.33.0/24 32768 i
0.0.0.0
0
*> 156.26.34.0/24 32768 i
0.0.0.0
0
*> 156.26.35.0/24 32768 I
0.0.0.0
0
C#show ip bgp BGP table version is 6, local router ID is 172.16.15.253 tatus codes: s suppressed, d damped, h history, * valid, > best, i - internal Origin codes: i - IGP, e - EGP, ? - incomplete
64
Network Weight Path
Next Hop
*> 156.26.32.0/24 0 2 1 i
172.16.15.97
*> 156.26.32.0/22 0 2 i
172.16.15.97
*> 156.26.33.0/24 0 2 1 i
172.16.15.97
*> 156.26.34.0/24 0 2 1 i
172.16.15.97
*> 156.26.35.0/24 0 2 1 i
172.16.15.97
Metric LocPrf
Tuyến tóm tắt được quảng bá tới hai router A và C đồng thời các tuyến nằm trong trong tuyến tuyến tóm tắt đó cũng được được quảng quảng bá. Đây là điểm khác của của BGP so với các giao thức IGPs vì các giao thức IGPs chỉ quảng bá các tuyến tóm tắt mà không quảng bá các tuyến tuyến con nằm trong trong tuyến tóm tắt ấy. ấy. Tuy nhiên các thiết bị của Cisco cũng cho phép chỉ quảng bá tuyến tóm tắt mà không quảng bá các tuyến con bằng cách thêm từ khóa summary-only trong câu lệnh aggregate-address.
Cấu hình cụ thể được cho dưới đây : Router B router bgp 2 aggregate-address aggregate-addre ss 156.26.32.0 255.255.252.0 summary-only neighbor 172.16.15.1 remote-as 1 neighbor 172.16.15.98 remote-as 3
Kết quả thông tin thu được ở đầu ra B#show ip bgp BGP table version is 10, local router ID is 172.16.15.252
65
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal Origin codes: i - IGP, e - EGP, ? - incomplete
Network Weight Path
Next Hop
Metric LocPrf
s> 156.26.32.0/24 0 1 i
172.16.15.1
0
*> 156.26.32.0/22 32768 i
0.0.0.0
s> 156.26.33.0/24 0 1 i
172.16.15.1
0
s> 156.26.34.0/24 0 1 i
172.16.15.1
0
s> 156.26.35.0/24 0 1 i
172.16.15.1
0
Các tuyến con đều ở trong trạng thái treo và không được quảng bá. Việc không quảng bá được thể hiện trong bảng BGP routing của router C C#show ip bgp BGP table version is 10, local router ID is 172.16.15.253 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal Origin codes: i - IGP, e - EGP, ? - incomplete Network Weight Path
Next Hop
*> 156.26.32.0/22
Metric LocPrf
172.16.15.97
0 2 i
3.6 Quản lí lưu lượng trong BGP Các cập nhật tuyến BGP có thể được kiểm soát. Nhìn chung, trong các giao thức định tuyến, kiểm soát các cập nhật tuyến là việc phải làm. Việc kiểm soát các cập nhật
66
giúp cho đơn giản hoá hệ thống mạng và dể dàng bảo trì. Việc thiết kế các thông tin định tuyến được chuyển đi như thế nào cũng được xem là một tác vụ cơ bản của bảo mật mạng và điều này giúp cho giảm nguy cơ bị routing-loop. Có ba cách để áp đặt PBR (Policy Based Routing) trong BGP: - Ra quyết định dựa trên thuộc tính AS_PATH, thuộc tính community hoặc prefix - Từ chối hay chấp nhận các tuyến được chọn - Thiết lập các thuộc tính để ảnh hưởng đến quá trình chọn lựa đường đi. Quá trình từ chối hay chấp nhận các routes yêu cầu một vài dạng của tác vụ lọc tuyến thông qua các ACL. Tác vụ lọc tuyến không chỉ được dùng trong PBR mà còn để kiểm soát lưu lượng trong mạng. Có ba dạng lọc tuyến trong Cisco router: - Access-list cho AS_PATH Được dùng để lọc các AS. Một ACL được dùng trong BGP sẽ lọc các cập nhật tuyến gửi từ một router hàng xóm dựa trên AS path. - Prefix list
Được dùng để lọc các tuyến, đặc biệt trong quá trình redistribution. Từ Cisco IOS v.11.2, các ISP sử dụng các prefix-list là một dạng khá hiệu quả của lọc tuyến. Cơ chế dùng prefix-list dựa trên địa chỉ của một tuyến. - Distribute lists + Distribute-list được dùng để lọc các cập nhật. Mặc dù distribute-list thường được dùng trong redistribution, công cụ này không chỉ dành riêng cho quá trình redistribution. Nó có thể áp dụng cho các lưu lượng theo chiều vào và chiều ra từ bất cứ các hàng xóm nào. Cả prefix-list và distribute-list đều lọc dựa trên địa chỉ mạng chứ không dùng AS_PATH. + Route maps: Route map được dùng để định nghĩa chính sách định tuyến. Một route-map là một access-list phức tạp qua đó router hoạt động khi một match được nhận dạng. Route map được dùng trong BGP để xác lập các thuộc tính của BGP để chọn ra đường đi tốt nhất. Hoạt động của Prefix-list: Prefix-list chỉ tìm kiếm trên phần network của một địa chỉ nên quá trình tìm kiếm là rất nhanh. Điều này đặc biệt quan trọng trong khi tìm kiếm những bảng định tuyến
67
kích thước lớn trong BGP. Một thuận lợi khác của prefix-list là khả năng soạn thảo. Mặc dù trong ACL truyền thống vẫn cho phép soạn thảo động (dùng named ACL), prefix-list có thể tạo và sử dụng dễ dàng. Điều này không chỉ đúng với tính năng soạn thảo mà còn với giao diện đã cải tiến. Trước khi áp dụng một prefix-list vào một quá trình hay một cổng giao tiếp, người quản trị phải định nghĩa các tiêu chí cho access-list. Mỗi dòng trong prefix-list được kết hợp với một chỉ số, tương tự như các dòng trong một chương trình máy tính. Nếu ta không nhập vào chỉ số thứ tự (sequence-number), chỉ số này sẽ được tự động tạo ra, với mỗi lần tăng là 5. Các số không được dùng, chẳng hạn như từ 1 đến 4 cho phép các dòng thêm vào về sau. Ta có thể soạn thảo prefix-list bằng cách chỉ ra chỉ số dòng hoặc sequence-number. Khả năng này là không có trong ACL. Prefix-list hoạt động bằng cách tìm các prefix trong danh sách phù hợp với các prefix đang kiểm tra. Nếu một điều kiện kiểm tra phù hợp xảy ra, tuyến sẽ được dùng hay bị loại bỏ. Cụ thể, khi có một prefix bị từ chối hoặc được cho phép, các luật sau sẽ được dùng: - Nếu một tuyến được cho phép, tuyến đó sẽ được dùng - Nếu một tuyến bị từ chối, tuyến đó sẽ không được dùng - Kết thúc của mọi prefix-list là một phát biểu ngầm định từ chối tất cả các tuyến. tuyến. Như vậy, nếu cho trước một tuyến mà tuyến tuyến này không không phù hợp với một đầu vào trong prefix-list, prefix sẽ bị từ chối theo luật mặc định. - Nếu có nhiều đầu vào trong một prefix prefix list phù hợp với một tuyến, tuyến, đầu vào có chỉ số sequence number nhỏ nhất sẽ được dùng. - Router Router bắt đầu tìm kiếm ở đỉnh của prefix-lis prefix-list,t, với chỉ số sequencesequence-numb number er bằng 1. Khi một thông tin lọc tuyến phù hợp được tìm thấy, quá trình tìm kiếm kết thúc. Thời gian xử lý sẽ được giảm nếu các điều kiện match/deny được đặt ở đầu của danh sách. Điều này ngăn ngừa việc phải xử lý các điều kiện hiếm khi gặp mỗi khi một tuyến được kiểm tra. - Các chỉ số sequence number tự động gia tăng theo mặc định. Để cấu hình sequence-number, dùng thông số seq seq-value trong lệnh ip prefix-list. - Chỉ số sequence sequence number number không không cần thiết thiết chỉ ra khi xóa một dòng dòng trong cấu hình. Cấu hình BGP prefix-list
Dùng lệnh sau để cấu hình prefix-list:
68
Router(config-router)#ip prefix-list prefix-list-name [seq seq-value] {deny| permit} network/len [ge ge-value] [le le-value]
Thông số (Parameter) Prefix-list-name [ seq seq-value ] {deny | permit} Network/len Network/len [ge ge] [le le_value]
Mô tả (Description) Tên của prefix-list Số thứ tự được gán đến tiêu chuẩn đang định nghĩa Hành động là từ chối hoặc cho phép đối với kết quả chiều dài của prefix phải phải phù hợp Chỉ ra chiều dài của prefix cần phải phù hợp
Để cấu hình một router dùng prefix-list như là tác vụ lọc trong distribute-list, dùng lệnh sau: Router(config-router)#neighbor {ip address|peer-group} addres s|peer-group} prefix-list prefix-listname {in|out}
KẾT LUẬN
69
Với sự phát triển ngày càng mạnh mẽ của mạng Internet, đề tài nghiên cứu “Tổng quan giao thức định tuyến BGP trên router Cisco” là đề tài thực tế giúp người đọc tiếp cận và có hiểu biết cơ bản về cách thức định tuyến giữa các vùng tự trị, một thành phần quan trọng trên Internet Internet . Đề tài góp phần giúp cho tác giả và những người tham tham khảo: - Hiểu và nẳm được các thuộc tính, giải thuật được sử dụng trong BGP để định tuyến. - Hiểu rõ vai trò, hoạt động và cấu trúc các thông báo của EBGP và IBGP trong hệ thống mạng ngày nay. - Các phương pháp giải quyết vấn đề full mesh trong BGP. - Một số phương pháp được sử dụng để kiểm soát lưu lượng trong BGP. Mặc dù đạt được một số kết quả nêu trên nhưng do điều kiện thời gian và thiết bị thực nghiệm còn hạn chế nên việc nghiên cứu giao thức BGP trên nền Ipv6 chưa thể được thực hiện. Đề tài có thể được mở rộng để nghiên cứu và triển khai giao thức BGP cùng các giao thức IGP dựa trên phần mềm mô phỏng GNS3. Việc nghiên cứu hoạt động của BGP trên hệ thống Ipv6 cũng là một vấn đề cần được quan tâm khi hệ thống Ipv4 đang ngày càng cạn kiệt.
70
TÀI LIỆU THAM KHẢO [1]
CCNP Self-Study, CCNP BSCI Exam Certification Certification Guide, Third Edition. Cisco Press. 2004
[2]
CCIE 350-001 Routing and Switching Prep Kit. BareWolf, Inc. 2000
[3]
Routing First–Step By Bill Parkhurst. Cisco Press. 2004
[4]
http://www.cisco.com
[5]
http://www.vnpro.org
71