Tìm hiểu về giao thức định tuyến BGP

+ BGP hỗ trợ tìm đường liên vùng phi lớp (CIDR Classless Inter-Domain Routing) và dùng kỹ thuật kết hợp đường đi để giảm kích thước bảng tìm đường (ví dụ nếu một mạng chiếm 255 địa chỉ lớp C từ 203.162.0.0/24 - 203.162.254.0/24 thì chỉ dùng 1 địa chỉ 203.162.0.0/16 để định danh mạng) + BGP được sử dụng thay thế cho EGP và xóa hẳn mạng xương sống NSFNET nhằm giúp cho Internet trở thành một hệ thống phân tán đúng nghĩa. + 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ợ multihome. + Đ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.

doc46 trang | Chia sẻ: lylyngoc | Lượt xem: 7044 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Tìm hiểu về giao thức định tuyến BGP, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ài thay đổi và chứa một danh sách những tiền tố địa chỉ IP (IP address prefixes)sẽ bị loại bỏ. Với mỗi tiền tố địa chỉ IP có định dạng như sau: - Length: trường này có độ dài 1 byte và chứa đựng độ dài (đơn vị là bit) của IP address prefix. Nếu có giá trị là 0 có nghĩa là tất cả IP address prefix. - Prefix: có giá trị biến đổi và chứa đựng IP address prefix. - Total Path Attributes Length: trường này có độ dài 2 byte và chứa đựng độ dài của trường Path Attributes. - Path Attributes: trường này có độ dài thay đổi và chứa đựng một chuỗi các thuộc tính về path. Trường Path Attributes được thể hiện trong mỗi bản tin UPDATE. Thông tin chứa đựng trong trường Path Attribute được sử dụng để theo dõi thông tin định tuyến đặc biệt và cũng được sử dụng cho routing decision và filtering. Mỗi path attribute được phân chia vào một bộ ba (triplet): - Attribute Type: có độ dài 2 byte và bao gồm một byte Attribute Flags và một byte Attribute Type Code. • Attribute Flags: có 4 trạng thái như sau: + Well-known mandatory: thuộc tính này phải được thừa nhận bởi sự thi hành của tất cả BGP speaker và phải được trình bày trong bản tin UPDATE. Một phiên BGP sẽ bị ngắt nếu một thuộc tính wellknown attribute không được trình bày trong bn tin UPDATE. + Well-known discretionary: thuộc tính này phải được thừa nhận bởi sự thi hành của tất cả BGP speaker nhưng không nhất thiết nó phải có trong bản tin UPDATE. + Optional transitive: thuộc tính này là một tính tuỳ chọn và nó có thể không được thừa nhận bởi sự thi hành của BGP speaker. Chú ý giá trị này không thay đổi nếu nó không được thừa nhận bởi BGP speaker. + Optional non-transitive: Nếu thuộc tính này không được thừa nhận bởi BGP speaker và transitive flag không được thiết lập thì thuộc tính này sẽ bị loại bỏ. + Attribute Type Code: xác định loại Path Attribute. Cụ thể được minh hoạ như hình sau:   Trong đó: ORIGIN: là một well-known mandatory attribute. AS mà tạo ra thông tin định tuyến sẽ tạo ra thuộc tính ORIGIN attribute. Nó có trong tất cả bản tin UPDATE để nhân bản thông tin định tuyến. AS_PATH: là một well-known mandatory attribute. Nó bao gồm một danh sách của tất cả các AS mà thông tin định tuyến đã đi qua. Thành phần AS_PATH bao gồm một chuỗi của các AS path segment. Mỗi AS path segment được biểu diễn bằng bộ ba (triplet): . Khi một BGP speaker quảng bá một route mà nó học được tới BGP speaker khác trong AS của nó, BGP speaker sẽ không sửa đổi (modify) AS_PATH attribute. Khi một BGP speaker quảng bá một route mà nó được tới BGP speaker khác ở ngoài AS của nó, BGP speaker sẽ sửa đổi (modify) AS_PATH. - Khi một BGP speaker tạo ra một route. Nó sẽ bao gồm một empty AS_PATH attribute khi quảng bá tới BGP speaker trong AS của nó_đó chính là iBGP peer. BGP speaker sẽ bao gồm AS number trong AS_attribute khi qung bá tới BGP speaker ở ngoài AS của nó_đó chính là eBGP peer. NEXT_HOP: là một well-known mandatory attribute, nó xác định địa chỉ IP của router biên (border router) mà được sử dụng như hop tiếp theo để tới đích xác định nào đó. MULTI_EXIT_DISC: là một optional non-transitive attribute. Nếu có nhiều mục nhập tới cùng một AS, nó có thể được sử dụng để xác định mục nhập nào được sử dụng. Mục nhập nào có metric nhỏ nhất sẽ được sử dụng. LOCAL_PREF: là một well-known discretionary attribute. Thuộc tính này được sử dụng bởi BGP speaker để thiết lập độ ưu tiên của một route, nó được sử dụng để cho biết độ ưu tiên cao hơn của một đường để thoát khỏi AS. BGP speaker sẽ quảng bá thuộc tính này tới BGP peer của nó. ATOMIC_AGGREGATE: là một well-known discretionary attribute. Khi một BGP speaker nhận được những route trùng khớp từ peer của nó, nó có thể thiết lập thuộc tính ATOMIC_AGGREGATE. Thuộc tính này sẽ được thiết lập nếu BGP speaker chọn được một route với subnet mask ngắn hơn subnet mask của một route khác. AGGREGATOR: là một optional transitive attribute. Khi một BGP speaker thực hiện route aggregator, nó sẽ tính đến thuộc tính AGGREGATOR bao gồm AS number của nó và BGP identifier. COMMUNITY: là một optional transitive attribute. Thuộc tính này sẽ phân nhóm các bằng cách gằn thẻ (tag) vào những route có một số đặc điểm chung. ORIGINATOR_ID: là một optional non-transitive attribute. Một BGP speaker thực hiện vai trò của một route reflector sẽ tạo ra thuộc tính này. Thuộc tính ORIGINATOR_ID sẽ bao gồm BGP identifier của route reflector. Thuộc tính này chỉ có ý nghĩa local AS. CLUSTER_LIST: là một optional non-transitive attribute. Thuộc tính này bao gồm một danh sách giá trị CLUSTER_ID. Khi một route reflector reflect một route, nó sẽ gắn giá trị CLUSTER_ID của nó vào CLUSTER_LIST. Network Layer Reachability Information: Với BGP version 4 nó hỗ trợ Classless Interdomain Routing (CIDR). Để thực hiện được điều này nó sử dụng trường Network Layer Reachability Information (NLRI). Trường này có 2 phần sau: Length: cho biết độ dài của IP address prefix. Prefix: có độ dài thay đổi và chứa đựng IP address prefix thực sự. c/ Bản tin KEEPALIVE (KEEPALIVE Message) Bản tin KEEPALIVE được sử dụng để đảm bảo rằng peer vẫn tồn tại. Bản tin KEEPALIVE được cấu trúc bởi BGP Message Header. Bản tin KEEPALIVE được gửi trong trường hợp restart giá trị hold timer. Chu kỳ gửi bản tin KEEPALIVE có giá trị bằng 1/3 giá trị hold time. Bản tin KEEPALIVE không được gửi nếu một bản tin UPDATE trong suôt khong chu kỳ này. d/ Bản tin NOTIFICATION (NOTIFICATION Message) Bất cứ khi nào có một lỗi xảy ra trong một BGP session, BGP speaker phát ra một bản tin NOTIFICATION. Ngay sau khi BGP speaker được phát ra thì phiên kết nối sẽ bị ngắt. Bản tin NOTIFICATION bao gồm error code, error sub-code sẽ cho phép người quản trị thuận lợi hơn trong quá trình gỡ rối. Định dạng của bản tin NOTIFICATION như sau: I.4.2. Neighbor Negotiation - Trước khi quá trình BGP liên lạc xảy ra, BGP speaker phải trở thành neighbor hay peer của nhau. Bước đầu trong quá trình thiết lập peer là BGP speaker thiết lập phiên kết nối TCP sử dụng port 179 với BGP speaker khác. Nếu điều này không xảy ra thì BGP speaker sẽ không bao giờ trở thành peer của nhau. Sau khi phiên kết nối TCP được thiết lập, BGP speaker gửi bản tin OPEN tới peer của nó. Tiếp đó là các bản tin UPDATE, NOTIFICATION, KEEPALIVE sẽ được trao đổi. - Quá trình thiết lập neighbor đó được gọi là Finite State Machine. Quá trình trên có 6 trạng thái có thể xảy ra trong quá trình thiết lập quan hệ với neighbor. Idle state: là trạng thái đầu tiên mà BGP speaker trải qua khi khởi tạo một phiên BGP. Ơ trạng thái này BGP speaker đợi một start event, từ chối tất cả BGP kết nối đến và không khởi tạo bất kỳ một BGP kết nối nào (BGP connection). Start event có thể được tạo ra bởi BGP speaker hay quản trị hệ thống. Chỉ một lần start event xảy ra, BGP speaker sẽ khởi tạo tất cả tài nguyên BGP của nó. BGP sẽ khởi tạo ConnectRetry timer, khởi tạo một kết nối TCP tới BGP speaker mà muốn trở thành peer với nó và cũng lắng nghe start event từ BGP speaker khác. BGP speaker sẽ thay đổi trạng thái của nó sang Connection. Nếu bất kỳ lỗi nào xảy ra trong xuốt quá trình này, phiên TCP sẽ bị ngắt và trạng thái của BGP speaker sẽ trở lại Idle. Và một start event mới cần phải xảy ra để BGP speaker thử kết nối lại lần nữa. Nếu start event được tự động sinh ra, BGP speaker sẽ đợi 60 giây trước khi thử lại (retry) kết lối. Và mỗi lần retry kế tiếp thời gian chờ sẽ tăng lên gấp đôi. - Connection state: Trong trạng thái này, BGP sẽ đợi kết nối TCPđược thiết lập. Chỉ một lần kết nối được thiết lập thành công, BGP speaker sẽ làm sạch ConnectRetry timer, nó sẽ gửi một bản tin OPEN tới remote BGP speaker và chuyển trạng thái của nó sang OpenSent. Nếu kết nối TCP không được kết nối thành công, BGP speaker sẽ khởi tạo lại ConnectRetry timer, và tiếp tục nghe một yêu cầu kết nối khác tử remote BGP speaker, và chuyển trạng thái sang Active. Nếu ConnectRetry timer hết hạn, BGP speaker sẽ khởi tại lại ConnectRetry timer và tiếp tục lắng nghe một yêu cầu kết nối từ remote BGP speaker và nó vẫn giữ trạng thái của nó ở Connection state. Nếu bất cứ loại event khác gây lên lỗi thì BGP speaker sẽ đóng kết nối TCP và chuyển trạng thái của nó về Idle. Tất cả các start even đều sẽ bị lờ đi trong Connection state. - Active state: trong trạng thái này, BGP speaker thử khở tạo một phiên kết nối TCP với BGP speaker mà muốn trở thành peer với nó. Chỉ một lần kết nối thành công, BGP speaker sẽ xoá sạch ConnectRetrry timer, sau đó BGP speaker sẽ gửi một bản tin OPEN tới remote BGP speaker và chuyển trạng thái sang OpenSent. Nếu ConnectRetry timer hết hạn, BGP speaker sẽ thiết lập lại thời gian, khởi tạo một phiên kết nối TCP và tiếp tục lắng nghe các yêu cầu kết nối từ remote BGP speaker và chuyển trạng thái sang Connection. Nếu BGP speaker xác định được một BGP speaker khác thử thiết lập kết nối với nó và địa chỉ IP của remote BGP speakerkhông phải là địa chỉ mong muốn, BGP speaker sẽ từ chối yêu cầu kết nối này và thiết lập lại ConnectRetry timer, tiếp tục lắng nghe một yêu cầu kết nối khác từ remote BGP speaker và giữ trạng thái Active. Nếu bất cứ loại event khác nào gây ra lỗi,BGP speaker sẽ đóng kết nối TCP và chuyển trạng thái về Idle. Tất cả start event sẽ bị lờ đi ở trạng thái Active. - OpenSent state: ở trạng thái này, BGP speaker đợi để nhận một bản tin OPEN từ remote BGP speaker. Chỉ một lần BGP speaker nhận bản tin OPEN, tất cả các trường sẽ được kiểm tra.Nếu một lỗi được xác định bởi BGP speaker, nó sẽ gửi một bản tin NOTIFICATION tới remote BGP speaker và ngắt kết nối TCP, và chuyển trạng thái của nó sang Idle. Nếu không có lỗi nào được xác định, BGP speaker sẽ gửi một bản tin KEEPALIVE tới remote BGP speaker, thiết lập các giá trị keepalive timer và hold timer để đàm phán với neighbor. BGP speaker sẽ đàm phán để điều chỉnh giá trị hold time. Nếu hold time giá trị là 0, có nghĩa là keepalive timer và hold timer sẽ không bao giờ được thiết lập lại. Sau quá trình đàm phán về hold timer, BGP speaker sẽ xác định kết nỗi là iBGP hay eBGP. Nếu 2 BGP speaker cùng trong một autonomous system, loại BGP sẽ là iBGP. Nếu chúng thuộc 2 autonomous system khác nhau, loại BGP sẽ là eBGP. Chỉ một lần loại BGP được xác định, trạng thái của nó sẽ chuyển sang OpenConfirm. Trong suốt trạng thái này, có thể BGP speaker sẽ nhận được một bản tin disconnect. Nếu điều này xảy ra, BGP speaker sẽ chuyển trạng thái sang Active. Nếu bất kỳ event khác nào gây ra một lỗi, BGP speaker sẽ đóng kết nối TCP và chuyển trạng thái sang Idle. Tất cả các start event sẽ bị lờ đi trong trạng thái OpenSent. - OpenConfirm state: ở trạng thái này, BGP speker đợi để nhận một bản tin KEEPALIVE từ remote BGP speaker. Chỉ một lần bản tin KEEALIVE được nhận, BGP speaker sẽ thiết lập lại hold timer và chuyển trạng thái sang Established. Tại thời điểm này mối quan hệ peer giữa chúng đã được thiết lập. Nếu một bản tin NOTIFICATION được nhận thay thế cho bản tin KEEPALIVE, BGP speaker sẽ thay đổi trạng thái sang Idle. Trong trường hợp hold timer hết hạn trước khi nhận được bản tin KEEPALIVE từ remote BGP speaker, kết thúc kết nối TCP chuyển trạng thái sang Idle. BGP speaker có thể nhận được bản tin disconnect từ peer của nó. Nếu điều này xảy ra, BGP speaker chuyển trạng thái sang Idle. Bất cứ loại event khác gây lên lỗi, BGP speaker sẽ đóng kết nối TCP và chuyển trạng thái sang Idle. Tất cả các start event sẽ bị lờ đi trong trạng thái OpenConfirm. - Established state: chỉ một lần một BGP speaker đạt đến trạng thái Established, tất cả các quá trình đàm phán với neigbor đã hoàn tất. Ơ trạng thái này BGP peer sẽ trao đổi bản tin UPDATE và bản tin KEEPALIVE. Mỗi lận BGP speaker nhận được một bn tin UPDATE hay bn tin KEEPALIVE, nó sẽ thiết lập lại hold timer của nó. Nếu hold timer hết hạn trước khi nhận được một bản tin UPDATE hay bản tin KEEPALIVE, BGP speaker sẽ gửi một bn tin NOTIFICATION tới peer của nó, ngắt phiên kết nối TCP và chuyển trạng thái sang Idle. Bất cứ event khác khiến cho BGP speaker tạo ra một bản NOTIFICATION thì BGP speaker sẽ chuyển trạng thái về Idle. Tất cả Start event sẽ bị lờ đi trong trạng thái Established. Tip: Chỉ một lần BGP peer đạt đến trạng thái Established, chúng sẽ bắt đầu quá trình trao đổi thông tin định tuyến. I..5. KHI NÀO DÙNG BGP VÀ KHI KHÔNG DÙNG BGP ( WHEN & WHEN NOT TO USE BGP ) I.5.1.Khi nào thì dùng BGP? Khi mạng của một công ty kết nối đến nhiều ISP hoặc các AS khác và đang dùng các kết nối này. Nhiều công ty dùng các kết nối khác nhau nhằm mục đích dự phòng. Chi phí có thể giảm thiểu nếu tất cả các kết nối đều được dùng. Trong trường hợp này, PBR có thể cần thiết để triển khai trên từng kết nối. BGP còn được dùng khi chính sách định tuyến của nhà cung cấp dịch vụ và của công ty khác nhau. Hoặc traffic trong công ty cần phải được phân biệt với traffic của ISP. Mạng của hai tổ chức không thể xuất hiện như một AS. Một trường hợp khác phải dùng BGP là khi mạng của ta là một ISP. Nếu là một ISP, hệ thống mạng này phải cho phép các traffic khác đi qua AS của mình. Lúc này nó hoạt động như một transit domain. I.5.2Khi nào thì không dùng BGP? 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ì. Đây là lý do chính để tránh dùng BGP trong một hệ thống mạng. Vì vậy, nếu hệ thống mạng có các đặc điểm sau, nên dùng những cách thức khác, chẳng hạn như static hoặc default-routing. * Mạng của ISP và mạng của công ty có chung một chính sách định tuyến * Mặc dù công ty của bạn có nhiều kết nối đến ISP, các kết nối này là dự phòng và vì vậy không cần một kế hoạch để kích hoạt nhiều hơn một kết nối đến Internet. * Tài nguyên mạng là có giới hạn, chẳng hạn như bộ nhớ và CPU của router. Băng thông giữa các AS là thấp và các phí tổn cho định tuyến sẽ ảnh hưởng đến quá trình chuyển dữ liệu. I.6. SO SÁNH IBGP VÀ EBGP - Các thông số trao đổi trong bản tin update của IBGP không thay đổi - bởi vì BGP chạy split horizon, do vậy các tuyến đường học từ hàng xóm IBGP sẽ không được quản bá tới hàng xóm IBGP khác. - Thông số Local-preference và med chỉ quảng bá trong phiên IBGP - Hàng xóm EBGP là kết nối trực tiếp, IBGP có thể kết nối từ xa I.7. CÁC BƯỚC XÂY DỰNG BẢNG ĐỊNH TUYẾN TRONG BGP - Nhận bản tin update - Xây dựng bảng BGP - Lựa chọn tuyến đường BG - Quảng bá tuyến đường BGP - Xây dụng bảng định tuyến BGP - Quảng bá mạng Cục bộ CHƯƠNG II. CÁC THÔNG SỐ TUYẾN ĐƯỜNG TRONG BGP Có 2 dạng thông số về truyến đường trong BGP → Well-known: - Mandatory (origin, as-path, Next-hop...) - Discretionary ( local preference, atomic aggregate...) → Option : Non-transitive ( MED, Cluster-list…) Transitive (Communities…) è Các Tiêu chuẩn lựa chọn tuyến đường tốt nhất trong BGP loại bỏ tuyến đường nếu next-hop không đúng. Chọn giá trị weight cao hơn ( có giá trị trong 1 router). Chọn giá trị local-preference cao hơn ( trong 1 AS). Chọn nguồn gốc tuyến đường ( Tuyến đường sinh ra từ chính router). Chọn giá trị AS-path ngắn hơn ( Chỉ so sánh nhiều dài). Chọn giá trị origin nhỏ hơn ( IGP<EGP<unknown). Chọn giá trị MED nhỏ hơn. Chọn giá trị EBGP ưu tiên hơn IBGP. Đối với các tuyến đường IBGP, ưu tiên chọn tuyến đường qua hàng xóm gần nhất. Đối với các tuyến đường EBGP, ưu tiên chọn tuyến đường học được sớm hơn Chọn giá trị từ router với giá trị BGP router-ID nhỏ hơn II.1. THÔNG SỐ AS -PATH Thuộc tính AS_path: là một thuộc tính Well-know mandatory.  - Nó là tuần tự của các số AS mà route đã truyền qua để đến đích. AS đầu tiên truyền route sẽ thêm số AS của nó và truyền đi sang EBGP peer của nó. Sau đó thì mỗi AS mà nhận route này sẽ truyền route này sang EBGP peer khác và gán thêm số AS của nó vào đầu danh sách các số AS.  Danh sách cuối cùng sẽ là tất cả các số AS mà route đã được truyền đi qua, với số AS của AS mà khởi tạo route ban đầu nằm ở cuối danh sách.  - BGP sử dụng thuộc tính AS_PATH này trong các cập nhật của nó để đảm bảo một mô hình không bị loop trên Internet. Mỗi route được truyền đi giữa các peer sẽ mang theo một danh sách của các số AS mà route đã được truyền qua. Nếu route được quảng cáo đến một AS mà khởi tạo ra nó, và một AS thấy chính nó là một phần trong danh sách các số AS và nó sẽ không chấp nhận route này.  - BGP router sẽ chèn thêm số AS của nó khi quảng cáo bảng định tuyến cập nhật của nó sang một AS khác. Khi route được truyền qua một BGP router có cùng AS thì danh sách AS_path sẽ giữ nguyên không thay đổi. - Trong ví dụ này thì ta thấy route 172.16.10.0/24 được khởi tạo từ AS1 và được truyền đi qua AS2, AS3, AS4 và truyền ngược trở lại AS1. Nhận thấy rằng mỗi AS truyền route này qua external peer thì nó thêm số AS của nó vào đầu danh sách AS_path. Khi route truyền ngược trở lại AS1, thì BGB border router sẻ nhận ra rằng route này đã từng qua nó và không chấp nhận route này. - Thông tin về AS_path là một thuộc tính để BGP xác đinh đường đi tốt nhất đến đích. Khi so sánh 2 hay nhiêu route, giả sử tất cả các thuộc tính khác đều giống nhau, thì route nào có path ngắn hơn sẻ được ưu tiên chọn hơn. AS_path và số private AS - Thông thường để bảo tồn các số AS, thì các khách hàng mà các chính sách định tuyến của họ là sự mở rộng của các chính sách định tuyến của các nhà cung cấp được ấn định cho các AS không hợp lê. Vì thế nếu khách hàng là một single-homed hay multihomed của cùng một nhà cung cấp thì nhà cung cấp yêu cầu khách hàng phải sử dụng số AS lấy từ private pool 64512 đến 65535.. Như vậy thì tất cả các cập nhật mà nhà cung cấp nhận được từ khách hàng chỉ gồm các số private AS. - Các số private AS không thể quảng cáo ra internet, vì nó là không duy nhất. Vì lý do này mà các số private AS được cắt bỏ khỏi danh sách AS_path trước khi route được quảng cáo ra ngoài internet. Ví dụ: - Trong ví dụ này thì AS1 cung cấp kết nối internet cho khách hàng AS 65001. Vì khách hàng chỉ kết nối đến nhà cung cấp này mà không có kế hoach kết nối thêm đến một nhà cung cấp khác trong tương lai gần nên khác hàng được ấn định một số private AS. Khách hàng nên sử dụng một số AS hợp lệ khi cần có kết nối đến một nhà cung cập khác nữa. - Prefix (172.16.220.0/24) được khởi tạo từ AS 65001 có AS_path 65001. Khi AS 1 quảng bá prefix này ra internet, thì nó sẻ được loại bỏ số private AS. Khi prefix đến internet thì, nó sẻ được xem như là đã được khởi tạo từ AS1 của nhà cung cấp có AS_path là 1. BGP chỉ loại bỏ số private AS chỉ khi nó được quang bá sang EBGP peer. Điều này nghĩa là việc loại bỏ số private AS sẽ được cấu hình trên RTB để kết nối đên RTC. Cấu hình: RTB(config)#router bgp 1 RTB(config-router)#neighbor 172.16.20.2 remote-as 65001 RTB(config-router)#neighbor 192.168.6.3 remote-as 7 RTB(config-router)#neighbor 192.168.6.3 remove-private-as  II.2: THÔNG SỐ NEXT HOP a.Thuộc tính next hop: là một thuộc tính well-known mandatory, nó tương tự như trong IGP, để đến được network, thì next hop là địa chỉ IP của router quảng bá route. > đối với EBGP: thì next hop là địa chỉ ip của láng giềng quảng bá route. > đối với IBGP : Nơi mà route được quảng từ trong cùng AS thì next hop là địa chỉ ip của láng giêng quảng bá route. Còn đối với route được quảng bá vào AS từ EBGP, thì next hop từ EBGP không được thay đổi vào trong IBGP, next hop là địa chỉ ip của EBGP láng giềng mà nó học được. > Khi một route được quảng bá trong một môi trường đa truy nhâp(multi-access) như Ethernet, frame relay, thì next hop là địa chỉ IP của các cổng giao tiếp của router. - Trong ví dụ này thì RTC chạy một phiên thông tin EBGP với RTZ và IBGP với RTA. - RTC học được route 128.213.1.0 từ RTZ với next hop là 1.1.1.1 do RTC nhận được route 128.213.1.0 đến từ láng giềng RTZ bởi next hop 1.1.1.1, khi nó cập nhật sang RTA thì next hop ip address không có thay đổi, do dó RTA có next hop là 1.1.1.1. Như chúng ta có thể thấy đối với RTA thì next hop là 1.1.1.1 là không thể đến được.  b. Thuộc tính Next Hop trong môi trường Multiaccess. Một kết nối mạng được xem là multi-access nếu có hơn 2 host có thể kết nối vào. Các router trong kết nối mạng multi-access thì cùng chia sẻ chung một địa chỉ subnet và kết nối vật lý trực tiếp với nhau. Một số môi trường là multi-access như: Ethernet, Frame Relay, ATM. Ví dụ: - Trong ví dụ này thì ta thấy RTC sể quảng cáo route học được từ RTB, và khi RTC quảng cáo route thì nó chỉ ra RTB là source của route, Nếu không thì các router khác sẻ phải thực hiện đường đi theo số hop không cần thiết đó là qua RTC đế các router trong cùng một mạng(segment). - RTA,RTB,RTC : cùng chia sẻ một môi trường truyền là multi-access. RTA và RTC chạy EBGP, RTC và RTB chạy OSPF. RTC học mạng 11.11.11.0/24 từ RTB thông qua OSPF, và nó quảng cáo mạng này đến RTA thông qua EBGP. Vì RTA và RTB chạy khác giao thức định tuyến, nên về logic thì RTA xem RTC(10.10.10.2) là nẽt hop để đến được 11.11.11.0/24. Tuy nhiên điều này không xảy ra, trạng thái đúng cho RTA là xem RTB,10.10.10.3 là next hop vì RTB cùng chìa sẻ một môi trường với RTC. c. Next Hop trong mạng NBMA(Frame Relay) - Trong mạng NBMA, không có các kết nối trực tiếp giữa các router, mà là chỉ những kết nối ảo được cấu hình từ mỗi router đến tất cả các router khác. Một lý do quan trọng mà hầu hết các tổ chức đều thự hiện mô hình hup-and-spoke bởi vì giá cả phải chăng. Trong mô hình hub-and-spoke thì nhiều site ở xa có các kết nối ảo đến một hay nhiều router ở site trung tâm. Ví dụ: - Ở đây ta thấy RTC là hub router và RTA, RTB là spoke router. ta thấy các kết nối ảo được đặt ra giữa RTA và RTC, giữa RTC và RTB, nhưng không có kết nối nào giữa RTA và RTB. RTA nhận được cập nhật về mạng 11.11.11.0/24 từ RTC và nó sẻ cố gắng sử dụng RTB,10.10.10.3 làm next hop. Điều này tương tự như trong môi trường mạng multi-access.Nhưng trong trường hợp này thì bảng định tuyến có vấn đề vì không có kết nối ảo nào giữa RTA và RTB cả. - Để giải quyết vấn đề này ta có giải pháp sau: sử dụng thuộc tính next-hop-self để buộc router, trong trường hợp này thì, RTC sẻ quảng cáo mạng 11.11.11.0/24 với next hop là của chính nó 10.10.10.2. RTA lúc này sẻ gởi trực tiếp các gói đến mạng 11.11.11.0/24 qua RTC.  Cú pháp như sau: Router(config-router)#neighbor ip-address next-hop-self Đối với RTC ta sử dụng lệnh như sau: RTC(config-router)#neighbor 10.10.10.1 next-hop-self II.3:THUỘC TÍNH AGGREGATOR VÀ LOCAL PREFERENCE Thuộc tính Aggregator:  Là một thuộc tính Well-known discretionary. Khi cấu hình aggregation, thì thuộc tính này cung cấp những thông tin về ID của router và số AS của của router khởi tạo aggregate route. Thuộc tính này cho phép ISP admin xác định router nào thực hiện aggregation.  Thuộc tính Local Preference:  Là một thuộc tính well-known discretionary. Local Preference là một yếu tố để xác định sự so sánh giữa các route đến cùng một đích. Route có Local Preference cao hơn sẽ được chọn làm đường đi tối ưu. Cũng như tên của thuộc tính này, nó chỉ chuyển đổi nội bô giữa các IBGP peer . Local Preference không quảng cáo sang EBGP peer. a. Router trong một multihomed AS có thể học rằng, nó có thể đến cùng đích bằng các neighbor theo hai hay nhiều AS khác nhau. Có thể có hai hay nhiều điểm rởi khỏi AS nội bộ để đến được một đích nào đó. Sử dụng thuộc tính Local Preference để ép BGP router sử dụng route tối ưu hơn các route khác đến cùng một đích. Bởi vì thuộc tính này chỉ được thông tin giữa các BGP trong cùng một AS, tất cả các router có cùng một quyết định chung để đến một route bên ngoài. b.Ví dụ:  - Theo ví dụ này thì công ty ANET đã mua kết nối đến internet từ hai nhà cung cấp, XNET và YNET. ANET được kết nối đến YNET bằng T3 và đến XNET bằng đường backup T1. - Một điều quan trong cho ANET là quyết định đường đẫn nào để cho tải ra ngoài internet. Tuy nhiên admin của ANET thích sử dụng kết nối T3 theo đường của YNET. LA có thể gán route đến từ YNET một giá trị Local Prefernece 300, và San Jose gán cho route đến từ YNET một giá trị thấp hơn là 200. Bởi vì cả hai router LA và San Jose đều chuyển đổi thông tin định tuyến cập nhật bằng IBGP, chúng đều đồng ý rằng điểm ra khỏi AS bằng đường qua YNET. Vì ở đây có giá trị Local Preference cao hơn -NET học route đến 128.213.0.0/16 bằng đường qua XNET và YNET. Router LA và San Jose sẽ đồng ý sử dụng YNET là điểm để đến đích vì gía trị Local Preference cao hơn là 300. c. Vận dụng Local Preference: - Ta thấy AS 256 nhận cập nhật mạng 170.10.0.0 từ AS 100 và từ AS 300. Có hai cách để thiết lập thuộc tính Local Preference trên các router thuộc AS 256. > Sử dụng lệnh bgp default local-preference  > Sử dụng route map để thiết lập local preference -Sử dụng lệnh bgp default local-preference, thiết lập thuộc tính Local Preference trên RTC và RTD như sau:  RTC(config)#router bgp 256 RTC(config-router)#neighbor 1.1.1.1 remote-as 100 RTC(config-router)#neighbor 128.213.11.2 remote-as 256 RTC(config-router)#bgp default local-preference 150  RTD(config)#router bgp 256 RTD(config-router)#neighbor 3.3.3.4 remote-as 300 RTD(config-router)#neighbor 128.213.11.1 remote-as 256 RTD(config-router)#bgp default local-preference 200  -Cấu hình trên RTC làm cho nó sẽ thiết lập tất cả các cập nhật từ AS100 một giá trị Local Preference là 150. Và từ cấu hình trên RTD sể làm cho nó thiết lập Local Preference cho toàn bộ cập nhật từ AS 300 một giá trị là 200. Bởi vì Local Preferênc chỉ trao đổi trong nội bộ AS, nên cả hai RTC, và RTD đều xác định rằng cập nhật về mạng 170.10.0.0 có giá trị Local Preference cao hơn khi nó đến từ AS300 so với khi nó đến từ AS100. Kết quả là toàn bộ tải trong AS 256 đến mạng 170.10.0.0 đều được truyền qua RTD. - Ta có thể cấu hình bằng cách sử dụng route map. Route Map cung cập một cơ chế uyển chuyển hơn so với việc sử dụng default như trên. Khi ta sử dụng lệnh bgp default local-preference cho RTD thì tất cả các cập nhật nhận được bởi RTD đều được thiết lập giá trị là 200. Điêu này gồm cả cập nhật từ AS34. Bây giờ ta sẽ cấu hình cho RTD sử dụng route map để thiết lập Local Preference trên RTD chỉ cho những cập nhật từ AS300. RTD(config)#ip as-path access-list 1 permit _300$ RTD(config)#route-map LP permit 10 RTD(config-route-map)#match as-path 1 RTD(config-route-map)#set local-preference 200 RTD(config)#route-map LP permit 20 RTD(config)#router bgp 256 RTD(config-router)#neighbor 3.3.3.4 remote- as 300 RTD(config-router)#neighbor 3.3.3.4 route-map LP in II.4: THUỘC TÍNH WEIGHT VÀ THUỘC TÍNH MED Thuộc tính Weight:  - Thuộc tính Weight tương tự như Local Preference, nó sẽ ưu tiên sử dụng route có giá trị weight cao hơn. Một điều khác ở đây là các thông số weight chỉ có ý nghĩa nội bộ trong router thôi mà nó sẽ không trao đổi với các router khác. Thuộc tính weight ảnh hưởng đến các route đến từ nhiều nhà cung cấp khác nhau tới một router, một router có nhiều kết nối tới hai hay nhiều nhà cung cấp. Thông số weight có tác động cao hơn bất kỳ thuộc tính nào khác.Nó là thuộc tính quan trọng nhất để xác định route nào ưu tiên được chọn hơn. Weight được cấu hình trên các router theo từng neighbor một. thuộc tính này sể không truyền sang cho bất kỳ một router BGP nào khác cả. Ta có minh hoạ sau : Thuộc tính Multiple Exit Discriminator(MED) - MED là một thuộc tính optional nontransitive. MED chỉ cho láng giềng external về đường đi nào tối ưu hơn để vào trong một AS có nhiều điểm vào. MED có giá trị thấp sẽ tốt hơn. - Không giống Local Preference MED được trao đổi giữa các AS, nhưng MED vào trong một AS thì sẽ không rời khỏi AS này. Khi có một cập nhật vào trong một AS với một giá trị MED được thiết lập, thì giá trị này được sử dụng để quyết định chỉ trong nội bộ AS đó thôi. Khi BGP chuyển cập nhật cho một AS khác thì giá trị của MED được thiết lập về 0.  - MED có thể được sử dụng ở một AS và ảnh hưởng đến quyết đinh ra khỏi AS của một AS khác. - Khi một route được khởi tạo bởi một AS, thì giá trị của MED thông thường là tuỳ theo metric IGP của route. Điều này trở nên hữu dụng khi một khách hàng có nhiều kết nối đến cùng một nhà cung cấp. IGP metric chỉ ra độ tiêu tốn đến một mạng để xác định điểm truyền. Một mạng gần điểm xuất A hơn điểm xuất B thì sẽ có giá trị IGP metric nhỏ hơn. Khi giá trị IGP metric được dịch sang MED, tải đến một AS có thể vào từ một kết nối gần đích hơn. Chính vì điều này mà MED có giá trị thấp hơn sẽ được ưu tiên hơn để đến đích. Điều này có thể được sử dụng cho cả nhà cung cấp và cả khách hàng để cân bằng tải giữa nhiều kết nối giữa hai AS khác nhau. - Ta sẽ có một ví dụ minh hoạ như sau - Từ hình vẽ trên ta thấy XNET nhận cập nhật định tuyến về mạng 128.213.0.0/16 từ 3 nguồn khác nhau. Đố là SJ có metric 120, LA có metric là 200, còn NY có metric là 50. SF sẽ so sánh hai giá trị metric từ ANET và sẽ ưu tiên chon SJ hơn vì nó quảng cáo giá trị metric nhỏ hơn. Khi Lệnh bgp always-compare-med được sử dụng trên router SF, nó sẽ tiếp tục so sánh các giá trị metric. Nó sẽ so sánh metric 120 với 50 đến từ NY và sẽ ưu tiên chọn NY hơn để đến mạng 128.213.0.0/16. - Ví dụ về cấu hình:  - Theo ví dụ này thì ta thấy : AS 100 sẽ nhận cập nhật về mạng 180.10.0.0 từ RTB, RTC, và RTD. RTC và RTD xuất phát từ AS 300, và RTB xuất phát từ AS 400. Ta sử dụng route map để cấu hình MED cho router. RTB(config)#route-map med permit 10 RTB(config-route-map)#set metric 50 RTB(config)#router bgp 400 RTB(config-router)#neighbor 4.4.4.4 route-map med out  -Mặc định thì BGP sẽ so sánh giá trị của thuộc tính MED của route đến từ các láng giềng có cùng một external AS. Như AS 300 là một ví dụ. Điều này có nghĩa là RTA sẽ so sánh giá trị của thuộc tính MED đến từ RTC có giá trị là 120 chỉ với RTD với giá trị là 200. Thậm chí dù cập nhật đến từ RTB có giá trị MED thấp hơn thì RTA cũng sẽ chọn RTC là đường đi tốt nhất đến mạng 180.10.0.0. Để ép RTA sử dụng luôn cả cập nhật về mạng 180.10.0.0 đến từ RTB trong bảng so sánh của nó thì ta sử dụng lệnh bgp always-compare-med. - Lúc này thì RTA sẽ chọn RTB là next hop tốt nhất để đi đến mạng 180.10.0.0.0, trong trường hợp giả dụ là tất cả các thuộc tính khác đều như nhau. CHƯƠNG III. SỬ DỤNG CÁC CHÍNH SÁCH VỚI BGP III.1.LỌC TUYẾN Lọc tuyến cho phép router chọn route nào sẽ được trao đổi với BGP peer nào. Lọc tuyến là một phần của chính sách định tuyến. Một AS có thể kiểm soát route nào sẽ được chấp nhận từ láng giềng EBGP. Các chính sách có thể được định nghĩa bằng việc lọc các route. BGP route truyền qua các bộ phận lọc (filter) có thể gồm có các thuộc tính của nó và các thuộc tính này được vận dụng vào trong việc quyết định chọn route. Cả hai việc lọc tải (traffic) theo chiều inbound và chiều outbound đều được chấp nhận giữa các peer và cả giao thức định tuyến chạy trên cùng một router. Lọc inbound chỉ ra rằng BGP lọc cập nhật định tuyến đến từ một peer khác. Còn lọc outbound thì để hạn chế việc cập nhật định tuyến từ router này đến các router BGP peer khác. Ở cấp độ giao thức thì : lọc inbound có tác dụng hạn chế cập nhật định tuyến được redistribution vào trong một giao thức. Còn lọc utbound hạn chế việc cập nhật định tuyến chèn vào từ giao thức này.Với BGP thì ta có một ví dụ sau: lọc inbound nghĩa là hạn chế cập nhật định tuyến được redistribution từ một giao thức định tuyến khác vào trong BGP, còn lọc outbound thì hạn chế cập nhật được redistribution từ BGP vào một giao thức khác (IGP) III.2. SỬ DỤNG DISTRIBUTE LIST ĐỂ LỌC ROUTE - Để hạn chế thông tin định tuyến mà router học hay quảng cáo. Áp dụng lọc tuyến từ hay đến một láng giềng nào đó sử dụng lệnh distribute-list. Như minh hoạ dưới đây:  Ta thấy RTD trong AS2 khởi tạo mạng 192.68.10.0 và truyền đến RTF. RTF sẽ truyền cập nhật đến RTA bởi IBGP, và từ đó nó sẽ truyền cập nhật đến AS1. Như vậy AS3 sẽ trở thành transit AS quảng cáo rằng nó có thể đến được mạng 192.68.10.0/24 Để ngăn tình trường hợp này xảy ra thì ta cấu hình trên RTA: RTA(config)#router bgp 3 RTA(config-router)#neighbor 172.16.1.1 remote-as 3 RTA(config-router)#neighbor 172.16.20.1 remote-as 1 RTA(config-router)#neighbor 172.16.20.1 distribute-list 1 out RTA(config)#access-list 1 permit ip 172.16.0.0 0.0.255.255 Distribute-list, được sử dụng là một phần của lệnh neighbor, nó ngăn RTA không quảng cáo mạng 192.68.10.0/24 đến RTC. Access list được sử dụng để nhận ra prefix để thực hiện lọc và distribute-list out áp dụng để lọc cập nhật ra bên ngoài. Nhận thấy rằng khi cấu hình distribute líst dựa trên việc sử dụng một access list. Nếu sử dụng standard access list thì sẽ có một số chức năng bị hạn chế. RTA kết nối đến nhiều subnet trong mạng 172.16.0.0/16. Mục đích của việc quảng cáo một địa chỉ mạng tóm tắt 172.16.0.0/16, nhưng không quảng cáo bất kỳ subnet riêng nào của nó cả. Một standard access list sẽ không làm được điều này bởi vì nó sẽ cho phép (permit) nhiều hơn mong đợi. Nó sẽ lọc dự trên địa chỉ mạng. đây là một ví dụ về một access list mà nó sẽ permit không chỉ mạng 172.16.0.0/16 mà là tất cả các thành phần khác thuộc tóm tắt route này. access-list 1 permit 172.16.0.0 0.0.255.255  Để hạn chế cập nhật chỉ 172.16.0.0/16 ta sử dụng extended access list. Thông thường thì một extended access list gồm cả source và destination. Trong trường hợp lọc route BGP , thì một extended access list chỉ gồm có network, tiếp theo là subnet mask. Cả network và mask đều chứa wildcard bitmask của nó, có cú pháp như sau:  router(config)#access-list number permit|deny network network-wildcard mask mask-wildcard  Để cho phép route tóm tắt như trong ví dụ trên thì ta cấu hình một extended access list để filter network và 16 bit mask của prefĩ. Với cấu hình này thì RTA sẽ không truyền subnet route như 172.16.0.0/17 hay 172.16.10/24 trong cập nhật của nó đến AS1. RTA(config)#access-list 101 permit ip 172.16.0.0 0.0.255.255 255.255.0.0 0.0.0.0 - Ta có thể sử dụng ip prefix-list thay cho extended access list. III.3. LỆNH IP PREFIX-LIST Sử dụng lệnh ip prefix-list có một số thuận lợi hơn so với việc sử dụng access-list là  - Hiệu suất được cải thiện khi loading và tìm route trong một danh sách lớn. - Hỗ trợ cập nhật từng phần increment update. Lọc route với extended access list không hỗ trợ cho việc cập nhật từng phần. - Dòng lệnh than thiện hơn - Tính uyển chuyển cao,  Cú pháp của lệnh như sau: router(config)#ip prefix-list list-name [seq seq-value] deny/permit network/len [ge ge-value] [le le-value]. Ví dụ về cấu hình bằng lênh ip prefix-list RTA(config)#ip prefix-list GROVER permit 192.0.0.0/8 le 24 RTA(config)#ip prefix-list GROVER deny 192.0.0.0/8 ge 25  l. Theo ví dụ này thì ở câu lệnh đầu tiên chấp nhận tất cả các route có các chiều dài mask lên đến 24 bit với prefix 192.0.0.0/8, và từ chối (deny) tấ cả các route cụ thể hơn.  Ở câu lệnh thứ hai thì nó sẽ kiểm tra prefix bắt đầu với 192 ở octet đầu tiên. Sau đó quan tâm đến chỉ các route cụ thể hơn bằng cách kiểm tra chiều dài của mask. Vì thế cả 192.168.32.0/19 và 192.168.1.0/24 đều được ở trạng thái cho phép(permit), nhưng mạng prefix 192.168.1.32/27 thì không bởi vì chiều dài mask của nó lớn hơn 25. Cả ge và le có thể được sử dụng chung theo lệnh sau: RTA(config)#ip prefix-list OSCAR permit 10.0.0.0/8 ge 16 le 24. Lệnh này permit tất cả prefix trong mạng 10.0.0.0/8 với chiều dài mask tử 16 cho đến 24 bits. Mỗi prefix list được gán cho một số thứ tự, số này được gán mặc định hoặc được gán bằng tay. Bằng cách đánh số, một entry có thể đựơc chèn vào tại bất kỳ điểm nào của list. Điều này quan trọng vì router kiểm tra prefix list từ tuần tự từ nhỏ đến lớn. Khi có một match xảy ra thì router sẽ không tiếp tục tét đến các entry của các tuần tự sau nữa. Ta có thể sử dụng lênh show ip prefix-list để kiểm tra. Số tuần tự này sẽ được tạo ra và tăng dần từng bậc +5. giá trị đầu tiên được tạo ra trong prefix list là 5 tiếp theo là 10, 15….. Nếu cấu hình bằng tay một giá trị và tiếp theo không xác định các giá trị thì số thứ tứ cho entry sẽ tự động tăng lên theo bâc +5. Ví dụ giá trị đầu tiên được xác định là 3 và sau đó thì không có tuần tự được chỉ định cho các entry khác thì số tuần tự sẽ được tao ra là 8, 13, 18….ví du: RTA(config)#ip prefix-list ELMO seq 12 deny 192.168.1.0/24. Cuối cùng khi sử dụng prefix list thì ta phải theo một số luật sau: - Một prefix list trống sẽ mặc đinh là permit tất cả prefix - Có một ngầm định deny được đưa ra nếu prefix không match bất kỳ entry nào của prefix. - Khi có nhiều entry của prefix list match, thì tuần tự của entry nào nhỏ nhất sẽ được match thật sự III.4.ROUTE MAP Route map là các công cụ trong đó các logic “if/then” có thể được áp dụng cho một router. Các route-map là các công cụ lập trình được dùng để kiểm soát quá trình redistribution, để hiện thực PBR, để kiểm soát quá trình NAT hoặc để hiện thực BGP. Bạn có thể dùng route-map cho các mục đích sau đây: - Để kiểm soát quá trình redistribution: các route map cho phép kiểm soát một mức cao hơn so với cách dùng distribution list. Route-map không đơn thuần ngăn chặn hay cho phép một mạng giống như distribute list mà còn có khả năng gán metric cho những route bị so trùng . - Để kiểm soát và thay đổi thông tin định tuyến: các route map được dùng để .- Định nghĩa chính sách trong PBR: các route-map ra các quyết định dựa trên địa chỉ nguồn. Khi một phép so trùng được tìm thấy trong access-list, sẽ có các hành động tương ứng. - Để thêm vào mức độ tinh tế trong cấu hình NAT: các route map định nghĩa dãy của các địa chỉ public và địa chỉ private. Có các lệnh show để giám sát và kiểm tra hoạt động của NAT. - Để hiện thực BGP: một trong những điểm mạnh của giao thức BGP là khả năng thực hiện policy based routing. Các thuộc tính trong BGP được dùng để ảnh hưởng đến đường đi cho traffic. Các thuộc tính này thường được hiện thực dùng route maps. Nếu có một phép so trùng thì áp dụng thuộc tính này. Khi này dùng lệnh set để thực hiện. Route map là phương thức chủ yếu được dùng bởi BGP để định nghĩa chính sách định tuyến BGP. Route map rất giống ACL. Cả hai thực hiện tác vụ if/then, trong đó các tiêu chí được dùng để xác định là gói tin có được cho phép hoặc từ chối hay không. Sự khác nhau cơ bản là route map có khả năng thực hiện hành động thay đổi thuộc tính đến các gói dữ liệu thõa điều kiện so trùng. Trong một ACL, tiêu chí so trùng là ngầm định, trong một route map, đó là một keyword. Điều này có nghĩa rằng, nếu một gói thỏa với một tiêu chuẩn cho trong một route map, một vài hành động phải được thực hiện để thay đổi gói, trong khi accesslist chỉ đơn giản cho phép hoặc từ chối một gói. Các đặc điểm của route map được tóm tắt trong danh sách sau: - Một route map có một danh sách các tiêu chí và tiêu chuẩn chọn lựa, được liệt kê với phát biểu mạtch. - Một route map có khả năng thay đổi các gói hoặc các route bị so trùng bằng cách dùng lệnh set. - Một tập hợp của các phát biểu mạch có cùng tên được xem là cùng một route map - Route map sẽ ngừng xử lý ngay khi có một phép so trùng được thực hiện, giống như một ACL. - Trong một route map, mỗi phát biểu được đánh số thứ tự và có thể được soạn thảo riêng lẽ. - Số thứ tự được dùng để chỉ ra thứ tự trong đó các điều kiện được kiểm tra. Như vậy nếu hai phát biểu trong route map có tên là BESTTEST, một phát biểu có chỉ số là 5, một phát biểu có chỉ số là 15 thì phát biểu có chỉ số là 5 sẽ được kiểm tra trước. Nếu không có một phát biểu match trong phát biểu 5 thì phát biểu thứ 15 sẽ được kiểm tra. - Route map có thể dùng các IP access-list chuẩn hoặc mở rộng để thiết lập các chính sách định tuyến. - Các access-list mở rộng có thể được dùng để chỉ ra tiêu chí so sánh dựa trên phần địa chỉ nguồn và địa chỉ đích, ứng dụng, kiểu giao thức, kiểu dịch vụ ToS và độ ưu tiên. - Lệnh match trong các cấu hình route map được dùng để định nghĩa điều kiện phải kiểm tra. - Lệnh set trong cấu hình route map được dùng để định nghĩa hành động theo sau một phát biểu so sánh. - Một route map có thể chứ các phép AND và OR. Giống như một access-list, có một phát biểu ngầm định DENY ở cuối một route map. Hành động theo sau của phát biểu deny này tùy thuộc route map được dùng như thế nào. Để hiểu điều này một cách chính xác, bạn cần hiểu chính xác route map hoạt động như thề nào.  Danh sách sau đây sẽ giải thích logic của hoạt động route-map: - Phát biểu của route map dùng cho PBR có thể được đánh dấu như là permit hoặc deny - Chỉ nếu phát biểu được đánh dấu như permit và gói tin bị so trùng, lệnh set mới được áp dụng. - Các phát biểu trong route-map sẽ tương ứng với các dòng của một access-list. Chỉ ra một điều kiện so sánh trong route map thì cũng tương tự như chỉ ra nguồn và đích trong access list - Các phát biểu trong route map được so sánh với đường đi của gói để xem có một so trùng nào đó hay không. Các phát biểu này sẽ được lần lượt kiểm tra từ trên xuống dưới. - Một phát biều so trùng có thể chứa nhiều điều kiện. Ít nhất một điều kiện trong phát biểu match phải là đúng. Đây là phép logic OR - Một route-map có thể chứa nhiều phát biểu so sánh. Tất cả các phát biểu match trong route map phải được xem xét là đúng để cho phát biểu của route map là so trùng. Điều kiện này gọi là phép logic AND. Route-map trong chương trình BSCI được sử dụng trong bốn trường hợp: * Dùng với NAT * Dùng trong redistribution  * Dùng với BGP * Dùng trong PBR - Câu lệnh access list trong Cisco IOS thường được dùng như là một công cụ để chọn lựa "matching" một mẫu traffic nào đó đi qua router. Như bạn cũng đã biết, ở trạng thái bình thường, router cho phép hầu như mọi lưu lượng IP đi qua nó. Nếu, trong một điều kiện nào đó, bạn không muốn cho lưu lượng mail (SMTP/POP3) được đi qua router, bạn cần cấm các traffic này. Lúc này, bạn viết ra một access-list, "quan tâm" đến TCP (SMTP/POP3). Sau đó bạn áp access list vào cổng của router, theo chiều IN/OUT.  Trong ví dụ trên, access list được dùng để lọc gói. Ví dụ cũng chỉ ra là bạn cần chỉ ra traffic mà bạn đang quan tâm (SMTP/POP3), bước kế tiếp là bạn áp dụng access list vào một interface nào đó của router.  Vậy, ACL là một công cụ để lựa ra một loại traffic nào đó mà mình quan tâm.  Công cụ route-map trong Cisco IOS cung cấp một thuận toán tương tự như logic If/Then/Else thường thấy trong các ngôn ngữ lập trình. Một route map chứa một hoặc nhiều câu lệnh route-map và router sẽ xử lý các câu lệnh route-map dựa vào thứ tự đi kèm với chúng.  Mỗi câu lệnh route-map có những thông số so trùng (match) bên trong được cấu hình bằng câu lệnh match. (Để so trùng tất cả gói tin, một mệnh đề route-map chỉ đơn giản đưa ra một câu lệnh match). Đồng thời, câu lệnh route-map cũng có một hoặc nhiều câu lệnh tùy chọn set dùng để áp đặt thông tin, chẳng hạn áp đặt metric cho một số route được redistribute.  Như vậy, một cảm giác giống nhau giữa hai câu lệnh là cả hai cùng có thể thể hiện thuận toán if-then khi cấu hình router. Tuy nhiên, sự khác nhau là route-map mang tính chất tổng quát hơn. Và trong route map cũng có dùng access list.  Các quy luật tổng quát của route map như sau: • Mỗi câu lệnh route-map phải có một tên gọi rõ ràng, tất cả các câu lệnh có cùng tên gọi này đều thuộc chung một route map. • Mỗi câu lệnh route-map phải có một hành động (permit hoặc deny). • Mỗi câu lệnh route-map có một số thứ tự duy nhất, cho phép xóa, chèn các câu lệnh route-map đơn. • Khi dùng route-map trong quá trình redistribute, route map sẽ xử lý route lấy từ bảng định tuyến hiện thời chứ không lấy từ database.  • Route map được xử lý tuần tự dựa vào số thứ tự đính kèm trong các câu lệnh route-map. • Khi một route cụ thể đã được so trùng trong route map, nó sẽ không được xử lý trong các câu lệnh route-map đằng sau đó nữa (dùng cho redistribution). • Khi một route đã được so trùng với phát biểu route map, nếu route-map có thông số permit đi kèm thì route đó sẽ được redistribute (dùng cho redistribution). • Khi một route đã được so trùng với phát biểu route map, nếu route-map có thông số deny đi kèm thì route đó sẽ không được redistribute (dùng cho redistribution). • Route map thường hay gây nhầm lẫn, đặc biệt khi dùng thông số deny trong câu lệnh route-map.Route-map, prefix-list và distribution-list trong BGP TH1: Match A B C (match điều kiện theo hàng ngang): thì đây là phép OR. TH2: Match A Match B Match C (match điều kiện theo hàng dọc): thì đây là phép AND. TH3: Match A B Match C (match điều kiện theo hàng dọc và ngang ): thì đây là phép OR (A hoặc B thỏa) xong rồi AND. CHƯƠNG IV . DEMO VÀ KIỂM TRA BGP Hình: Sơ đồ demo BGP 1.Yêu cầu: - cấu hình kết nối IBGP và EBGP, sử dụng local preference và MED để chọn đường đi ra và đi vào mạng, - Trong mạng nội bộ gồm có KMA1 và KMA2 chạy gia thức định tuyến EIGRP, Và trên ISP chay BGP với AS=200, KMA1 và KMA2 với AS=64512 Với mô hình trên ta sẽ cấu hình : - Đường đi từ KMA ra ngoài ISP sẽ đi theo đường 192.168.1.4/3 - Đường đi từ ISP đẩy vào KMA sẽ đi theo đường 192.168.1.0/30 Và đường còn lại sẽ làm dự phòng 2. Cấu hình Step1: tạo sơ đồ kết nối cáp theo như sơ đồ và khởi động router Step2: cấu hình hostname và interface addresses RouterR1(hostname ISP) Hostname ISP ! Interface serial 0/0 Ip address 192.168.1.5 255.255.255.252 No shutdown Clock rate 64000 Interface serial 0/1 Ip address 192.168.1.1 255.255.255.252 No shutdown Clock rate 64000 Interface serial l0 Ip address 192.168.100.1 255.255.255.0 Router R2(hostname KMA1) ! Interface serial 0/0 Ip address 192.168.1.6 255.255.255.252 No shutdown Clock rate 64000 Interface serial 0/1 Ip address 172.16.1.1 255.255.255.0 No shutdown Clock rate 64000 Interface serial l0 Ip address 172.16.64.1 255.255.255.0 Router R3(hostname KMA2) ! Interface serial 0/0 Ip address 192.168.1.2 255.255.255.252 No shutdown Clock rate 64000 Interface serial 0/1 Ip address 171.16.1.2 255.255.255.0 No shutdown Clock rate 64000 Interface serial l0 Ip address 172.16.32.1 255.255.255.0 Step 3: cấu hình EIGRP Cấu hình EIGRP giữa 2 router KMA1 và KMA2 KMA2 Router eigrp 64512 network 172.16.1.0 0.0.0.255 network 172.16.32.0 0.0.0.255 no auto-summary KMA1 Router eigrp 64512 network 172.16.1.0 0.0.0.255 network 172.16.64.0 0.0.0.255 no auto-summary Step4: cấu hình IBGP, EBGP va kiểm tra. Router ISP: Router bgp 200 network 192.168.100.0 neighbor 192.168.1.2 remote-as 64512 neighbor 192.168.1.6 remote-as 64512 Router KMA1: Router bgp 64512 network 172.16.64.0 mask 255.255.255.0 neighbor 172.16.1.2 remote-as 64512 neighbor 192.168.1.5 remote-as 200 Router KMA2: Router bgp 64512 network 172.16.32.0 mask 255.255.255.0 neighbor 172.16.1.1 remote-as 64512 neighbor 192.168.1.1 remote-as 200 - Kiểm tra hàng xóm BGP trong ISP, KMA1, KMA2 với câu lệnh: Show ip bgp summary Kiểm tra bảng BGP trong ISP, KMA1,KMA2 Với Lệnh: Show ip bgp - Kiểm tra bảng routing trong ISP, KMA1,KMA2 Với Lệnh : show ip route Step5. Đặt thông số local preference. MED Ta có thông số local preference có giá trị trong một AS, ở đấy ta cấu hình một route-map, MED được dùng để chọn đường đẩy vào trong một AS, khác AS ko xét giá trị MED. R3 R2 Kiểm tra việc chọn đường ưu tiên dựa vào local preference và MED KM1 ISP KMA2 Kết quả đạt được qua nghiên cứu đề tài - Tìm hiểu về đề tài nhóm I đã học hỏi được thêm nhiều kiến thức về giao thức định tuyến BGP : - BGP, viết tắt của từ tiếng Anh Border Gateway Protocol, là giao thức tìm đường 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 (prefix) cho biết mối liên kết giữa các hệ thống tự trị (autonomous system, tập hợp các hệ thống mạng dưới cùng sự điều hành của một nhà quản trị mạng, thông thường là một nhà cung cấp dịch vụ Internet, ISP). BGP là một giao thức vector đường đi (path vector). Khác với các giao thức tìm đường khác như RIP (vector độ dài), OSPF (trạng thái liên kết), BGP chọn đường 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ợ tìm đường liên vùng phi lớp (CIDR Classless Inter-Domain Routing) và dùng kỹ thuật kết hợp đường đi để giảm kích thước bảng tìm đường (ví dụ nếu một mạng chiếm 255 địa chỉ lớp C từ 203.162.0.0/24 - 203.162.254.0/24 thì chỉ dùng 1 địa chỉ 203.162.0.0/16 để định danh mạng) + BGP được sử dụng thay thế cho EGP và xóa hẳn mạng xương sống NSFNET nhằm giúp cho Internet trở thành một hệ thống phân tán đúng nghĩa. + 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ợ multihome. + Đ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. - Hoạt động của BGP : Các thiết bị tìm đường (router) sử dụng BGP kết nối từng cặp (peering) với nhau bằng cách thiết lập phiên làm việc trên giao thức TCP qua cổng 179. Phiên kết nối này được duy trì bằng việc gửi các thông điệp keep-alive 19 byte mỗi 60 giây (mặc định). Có 4 loại thông điệp BGP là open (mở phiên kết nối), update (thông báo hoặc rút lại một đường đi), notification (thông báo lỗi), keep-alive (duy trì phiên kết nối) - Thứ tự ưu tiên trong cơ chế tìm đường của BGP : Chọn đường đi tường minh trong bảng trước(so với đường đi mặc định) Chọn đường đi có trọng số cao nhất (weight) (chỉ với router của Cisco) Chọn đường đi có độ ưu tiên cục bộ cao nhất (local preference) Chọn đường đi do chính người quản trị mạng cài đặt trên router (static route, có thuộc tính origin là INCOMPLETE) Chọn đường đi đi qua ít AS nhất (AS path ngắn nhất) Chọn đường đi có nguồn gốc bên trong trước (origin = IGP < EGP) Chọn đường đi có độ ưu tiên gần/xa thấp nhất MED (Multi exit discriminator) Chọn đường đi ra bên ngoài trước (external path) Chọn đường đi có độ đo IGP đến hop tiếp theo thấp nhất (IGP metric to the next hop) Chọn đường đi tồn tại trong bảng lâu nhất (oldest one) Chọn đường đi đến router tiếp theo có BGP ID thấp nhất Các vấn đề hiện tại của BGP : Đường đi không ổn định, thay đổi liên tục theo chu kỳ (route flapping) Sự tăng trưởng của kích thước bảng tìm đường Độ trễ của việc hội tụ bảng tìm dường (thời gian để cập nhật bảng tìm đường cho tất cả router khi có sự thay đổi, convergence delay) Vòng lặp trong việc chuyển thông tin đường đi (looping behavior) Độ tin cậy và cơ chế mã hóa thông tin

Các file đính kèm theo tài liệu này:

  • docbaocao_at_internet_0223.doc
Luận văn liên quan