Sự hoạt động và triển khai BGP trên IPv6
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 VỀ GIAO THỨC BGP .5 1.1 Giới thiệu. .5 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 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 2.6 Thuộc tính ORIGIN .15 2.7 Thuộc tính NEXT_HOP 15 2.8 Thuộc tính Community 17 CHƯƠNG 3 .18 HOẠT ĐỘNG CỦA BGP .18 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 .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 .70 2 CÁC THUẬT NGỮ TIẾNG ANH AGGREGATE Quá trình tóm tắt tuyến AS_PATH Thuộc tính AS_PATH ATTRIBUTE Thuộc tính AUTONOMOUS SYSTEM Vùng tự trị BORDER GATEWAY PROTOCOL Giao thức BGP COMMUNITY Thuộc tính COMMUNITY CONFEDERATION 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 Thuộc tính MED NEXT_HOP Thuộc tính 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 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 route- reflector và clients WEIGHT Thuộc tính 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. 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. 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 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 khá phức tạp và được sử dụng trên 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 sách định tuyến và lựa chọn tuyến không liên quan gì đến AS của ngườ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ủ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). 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Ả Well-known mandatory Các thuộc tính này là bắt buộc và được công nhận bởi tất cả các router BGP Well-known Discretionary Không yêu cầu các thuộc tính này tồn tại trong các cập nhật nhưng nếu chúng tồn tại, tất cả các router sẽ công nhận và sẽ có hành động tương ứng dựa trên thông tin được chứa bên trong thuộc tính này. Optional Transitive Router có thể không công nhận các thuộc tính này nhưng nếu router nhận được thuộc tính này, nó sẽ đánh dấu và gửi đầy đủ cập nhật này đến router kế tiếp. Các thuộc tính sẽ không thay đổi khi đi qua router nếu thuộc tính này không được công nhận bởi router. Optional Nontransitive Các thuộc tính này bị loại bỏ nếu cập nhật mang thuộc tính này đi vào router mà router không hiểu hoặc không công nhận thuộc tính. Các thuộc tính này sẽ không truyền tới các BGP. 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 Danh sách các AS mà tuyến được quảng bá thông qua nó WEIGHT Cisco defined attribute Được sử dụng để định tuyến trong BGP LOCAL_PREF Well-known discretionary Được sử dụng để chọn tuyến, thường được sử dụng trong một AS MULTI_EXIT_DISC Optional nontransitive Được sử dụng để chọn tuyến, thường được sử dụng giữa các AS ORIGIN Well-known mandatory Chỉ ra các tuyến BGP được học như thế nào IGP— Từ câu lệnh Network EGP— Từ EBGP hàng xóm Incomplete— Từ redistribution NEXT_HOP Well-known mandatory EBGP— Địa chỉ của giao diện được sử 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. Community Optional transitive Một số được sử dụng cho việc áp một 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ủ 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 8 Hì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ất cả các router hàng xóm. Mỗi nhà cung cấp dịch vụ đều được gán một số định danh duy nhất autonomous system (AS) trong khoảng từ 1 đến 64511. Các số AS này đã được đăng kí và gán tương tự như việc cung cấp các dải địa chỉ IP . Các nhà cung cấp dịch vụ cũng có thể định nghĩa các vùng tự trị AS bằng cách sử dụng các số AS riêng có phạm vi cho phép trong khoảng 64512 đến 65534. Tuy nhiên các số AS riêng này không được quảng bá ra internet và chỉ được sử dụng trong vùng AS đã tạo ra nó. Các AS riêng tương tự như địa chỉ IP riêng Chúng ta xét một ví dụ dưới đây với các nhà cung cấp dịch vụ được gán các số AS 1, 2, 3 và 4. Nhà cung cấp dịch vụ với AS bằng 1 quảng bá mạng và netmask của mạng 156.26.32.0/24 đến nhà cung cấp dịch vụ 2 với AS là 2. Hình 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 nằm trong thuộc tính AS_PATH và được đặt bằng 1. Khi AS 2 quảng bá tuyến 156.26.32.0/24 đến AS 3, AS 2 sẽ được bổ xung và được đặt vào AS_PATH. Kết quả sau khi nhận được quảng bá từ AS 2 thuộc tính AS_PATH sẽ có giá trị là 2 1 với dấu cách giữa các số AS. AS 3 cũng biết rằng mạng được quảng bá nằm trong AS 1 (do số cuối trong thuộc tính AS_PATH được đặt bằng 1 ) và mạng đó được quảng bá thông qua AS 2. AS 3 bổ xung số AS của nó vào thuộc tính AS_PATH và quảng bá tuyến đến AS 4. AS 4 nhận thuộc tính quảng bá với AS_PATH là 3 2 1 cho mạng 156.26.32.0/24 Nếu tất cả cá thuộc tính khác của BGP là bằng nhau, router với AS_PATH ngắn nhất sẽ được sử dụng làm tham số để lựa chọn tuyến. Trong ví dụ trên ta chỉ quảng bá cho mạng 156.26.32.0/24 và mặc định nó sẽ có đường dẫn tối ưu đến đích. Nếu có nhiều tuyến, thuộc tính AS_PATH sẽ được sử dụng để lựa chọn tuyến tốt nhất tới đích. Dưới đây là một ví dụ. Trong hình 3, AS 4 nhận 2 sự quảng bá cho mạng 156.26.32.0/24. Quảng bá từ AS 3 có độ dài AS là 3 và từ AS 5 có độ dài là 2. Vì thế AS 4 chỉ quan tâm đến tuyến thông qua AS 5 và lựa chọn nó là tuyến tốt nhất để đến đích. Tuyến tốt nhất này sẽ được đặt trong bảng định tuyến. Hình 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. 10 [...]... 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. .. 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. .. 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... 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. .. 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. .. 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 - 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. .. ID của các router chạy BGP Router A interface Loopback0 ip address 172.16.15.254 255.255.255.255 Router 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 18 Router A router bgp 1 neighbor 172.16.15.162 remote-as 2 Router B router bgp. .. 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... 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. .. 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ự như phần 2.1 ta sẽ thấy bảng định tuyến BGP và định 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