network. - Quá trình ra quyết định và thông tin được gửi bên trong một giao thức có thể không tương thích với nhau và không dễ dàng trao đổi. Điều này sẽ dẫn đến lỗi và các cấu hình phức tạp. Tránh vòng lặp khi redistribution Routing loop xảy ra khi một giao thức định tuyến nhận được các mạng của chính nó. Các giao thức định tuyến có thể thất một mạng trên một đường đi tốt mặc dù đường đi này chỉ về chiều ngược lại vào một giao thức định tuyến khác. Hình 6-3: Tránh vòng lặp khi redistribution Error! Vấn đề này được giải quyết bằng các cấu hình như sau: - Thay đổi metric. - Thay đổi giá trị AD. - Dùng default-route. - Dùng passive interfaces với định tuyến tĩnh. - Dùng distribute-list. Để quản lý sự phức tạp của các hệ thống mạng này và giảm thiểu sự phức tạp của routing-loop, người quản trị nên giới hạn một vài thông tin được gửi trên các domain. Công việc này được thực hiện thông qua cách dùng access-list. Hình 6-4: Thực hiện redistribution giữa RIP và EIGRP Error! Giả sử rằng ở thời điểm routerA đang chạy RIP và quảng bá mạng 190.10.10.0 đến các hai routerB và E. Khi routerB nhận cập nhật từ RIP, nó sẽ redistribute network 190.10.10.0 vào OSPF và quảng bá route đó đến routerC. RouterC sẽ quảng bá route đó đến D. Cuối cùng routerE nhận một OSPF update từ D, báo rằng network 190.10.10.0 thông qua đường đi D,C,B,A. Tuy nhiên, routerE có một đường đi trực tiếp đến A thông qua RIP. Đây mới là đuờng đi được đáng được ưu tiên hơn. Trong tình huống này, giá trị AD có tác dụng. Bỏi vì OSPF có giá trị AD là 110 và RIP có giá trị AD là 120, đường đi được đặt trong bảng định tuyến là đường đi được quảng bá bởI OSPF thông qua D,C, B và A. Trong tình huống này, ta nên cấu hình bằng tay giá trị AD trên routerB và E. Nếu EIGRP chạy trên các router B,C,D và E sẽ không có vấn đề gì. Khi RIP redistribute vào EIGRP trên RouterB và update được truyền đến routerE, bảng định tuyến sẽ chọn lựa đường đi đến 190.10.10.0 thông qua routerA. Lý do là khi network 190.10.10.0 được phân phối vào EIGRP, nó sẽ được đánh dấu như external route. Như vậy, route đó sẽ có giá trị AD là 170 và sẽ bị bỏ qua nếu so với giá trị AD=120 của RIP. Bảng định tuyến chứa các đường đi qua ngõ RIP về network 190.10.10.0. Khi EIGRP redistribute lại vào RIP, bảng định tuyến không có route của EIGRP nào đến network 190.10.10.0 và không thể redistribute route này ngược vào RIP. Về phương diện lý thuyết, một routing-loop đã được tránh. Tuy nhiên thực tế không phải là như vậy. Bạn phải tránh quá trình redistribution hai chiều. Bạn cũng nên đặt các filter khi thực hiện redistribution để ngăn ngừa routing-loop. Cú pháp tổng quát của lệnh redistribute như sau: Router(config-router)# Cú pháp: redistribute protocol [process-id] [metric metric-value] [metric-type type-value] [match {internal | external 1 | external 2}] [tag tag-value] [route-map map-tag] [weight weight] [subnets] Để xóa lệnh này, bạn có thể dùng: no redistribute protocol [process-id] [metric metric-value] [metric-type type-value] [match {internal | external 1 | external 2}] [tag tag-value] [route-map map-tag] [weight weight] [subnets] Mô tả cú pháp: protocol: Giao thức định tuyến đang được "đẩy vào"/đang được phân phối vào một giao thức định tuyến khác. Ví dụ 1: đưa rip routes vào ospf: Router(config)#router ospf 1 Router(config-router)#redistribute rip Các từ khóa có thể dùng với lệnh redistribute là: bgp, egp, eigrp, igrp, iso-igrp, isis, odr, ospf, mobile, static, connected, và rip. Từ khóa static được dùng với tuyến đường tĩnhs. Từ khóa connected được dùng để chỉ ra những route được kết nối trực tiếp. Đối với những giao thức định tuyến như ospf, các route được phân phối vào sẽ là loại ngoại lai (external). process-id: Mục chọn này được dùng cho các giao thức định tuyến có dùng AS number. Giá trị này sẽ chỉ ra process-id hoặc routing process. Đối với RIP thì không cần dùng. metric metric-value Metric được dùng cho những route được phân phối vào. Nếu giá trị này không được chỉ ra, và nếu không có giá trị mặc định nào được chỉ ra trong lệnh default- metric, giá trị mặc định đuợc dùng là 0 (chính xác hơn là tùy thuộc vào giao thức định tuyến). Bạn nên dùng một giá trị nhất quán cho giá trị metric này. Lệnh trên sẽ phân phối các igrp route vào ospf domain. các routes ngoại lai sẽ có metric là 100. Router(config)#router ospf 109 Router(config-router)#redistribute igrp 108 metric 100 subnets Router(config-router)#redistribute rip metric 200 subnets Giá trị metric được chỉ ra trong redistribute command sẽ có độ ưu tiên cao hơn giá trị metric được chỉ ra bởi lệnh default-metric. Khi phân phối một giao thức định tuyến vào một giao thức định tuyến khác, bạn cần phải gán các metric phù hợp cho các routes mới này. Các giao thức định tuyến khác nhau dùng các metric rất khác nhau. Các giá trị thích hợp phụ thuộc vào giao thức định tuyến trong từng trường hợp cụ thể. Để tránh hiện tượng route lại nhiều lần, ta có thể dùng các cơ chế route-filtering như distribute-list, route-map, distance, prefix-list. Trong thực tế thì có một số trường hợp thường dùng redistribution là giữa các nhà cung cấp dịch vụ Internet. Các ISP dùng IGP cho mạng của mình và dùng BGP để kết nối với các ISP khác. Thường thì các internal routers sẽ có default gateway là các bgp routers và trên bgp routers sẽ phân phối các prefixes được học từ IGP để đẩy ra các bgp routers của ISP khác. Một trường hợp khác có thể cần đến route redistribution đó là việc sát nhập các công ty. Công ty A (đang dùng EIGRP) mua lại công ty B (đang dùng OSPF), khi kết nối mạng lại với nhau mà chưa kịp thay đổi toàn bộ hệ thống mạng thì họ sẽ dùng redistribution trên một router nào đó, còn gọi là mutual redistribution. Tránh vấn đề định tuyến không tối ưu khi thực hiện redistribution Như đã đề cập trong các mục trước, vấn đề suboptimal thỉng thoảng sẽ bị tạo ra bởi các quá trình redistribution. Ví dụ giá trị AD sẽ chọn lựa đường đi kém tối ưu khi một đường đi kết nối trực tiếp lại được dùng như một đường đi dự phòng. Hãy tuân theo các nguyên tắc sau đây khi thiết kế mạng để tránh routing-loop: - Có một kiến thức tốt về sơ đồ mạng, Routing domain, dòng traffic - Không cho các giao thức chạy chất chồng lên nhau. Mọi việc sẽ dễ dàng hơn nếu các giao thức khác nhau có thể được phân chia rõ ràng vào các domain riêng lẽ trong đó router hoạt động như các router ở ranh giới. Đây còn được gọi là core và edge protocol. - Chỉ ra các router ở ranh giới mà trên đó phải cấu hình redistribution - Xác định giao thức nào là core, giao thức nào là edge - Xác định chiều của quá trình redistribution, trong đó giao thức nào sẽ được redistribute. Lấy ví dụ, RIP sẽ redistribute vào EIGRP như EIGRP sẽ không redistribute vào RIP. Điều này nhằm tránh các mạng sẽ bị phản hồi ngược lại vào domain ban đầu. Hãy dùng default-route hoặc quá trình redistribution một chiều nếu cần thiết. - Nếu quá trình redistribution hai chiều là không thể tránh khỏi, hãy dùng cơ chế sau: cấu hình metric bằng tay, cấu hình giá trị AD bằng tay, dùng distribution access-list. Tránh các vấn đề với hội tụ mạng khi redistribution Để duy trì tính nhất quán giữa các giao thức định tuyến khác nhau, ta phải xem xét nhiều công nghệ. Một mối quan tâm lớn là quá trình tính toán của bảng định tuyến và khoảng thời gian hội tụ trong bao lâu. EIGRP có tốc độ hội tụ khá nhanh trong khi RIP thì hội tu chậm hơn. Việc chia sẽ thông tin giữa hai công nghệ có thể gây ra vài vấn đề. Ví dụ mạng sẽ hội tụ ở tốc độ của giao thức chậm hơn. Ở một vài thời điểm, điều này sẽ tạo ra timeout và khả năng routing loops. Điều chỉnh timers sẽ giải quyết vấn đề nhưng bất cứ một giao thức nào cũng phải được cấu hình với một kiến thức vững chắc về toàn bộ hệ thống mạng. Các thông số thời gian timers thường yêu cầu là cấu hình giống nhau trong tất cả các routers sao cho timer có cùng giá trị. Kiểm soát routing update khi redistribution Kiểm soát routing update thì hữu ích trong nhiều trường hợp. Các lý do để kiểm soát các routing update gồm: - Che dấu một vài network nào đó ra khỏi phần còn lại. - Ngăn ngừa routing loop. - Kiểm soát phí tốn của traffic trên mạng, cho phép mạng có khả năng mở rộng. - Vì các lý do bảo mật Các phương thức khác nhau để kiểm soát bao gồm các phương thức sau: - Dùng passive interface. - Dùng định tuyến tĩnhs. - Dùng default routes. - Dùng null interface. - Dùng distribute-lists. - Dùng route-map. Cổng giao tiếp bị động trong quá trình định tuyến (Passive Interfaces) . ngừa routing-loop. Cú pháp tổng quát của lệnh redistribute như sau: Router(config-router)# Cú pháp: redistribute protocol [process-id] [metric metric-value] [metric-type type-value] [match. 2}] [tag tag-value] [route-map map-tag] [weight weight] [subnets] Để xóa lệnh này, bạn có thể dùng: no redistribute protocol [process-id] [metric metric-value] [metric-type type-value] [match. khác. Hình 6-3 : Tránh vòng lặp khi redistribution Error! Vấn đề này được giải quyết bằng các cấu hình như sau: - Thay đổi metric. - Thay đổi giá trị AD. - Dùng default-route. - Dùng passive