Redistribution (Phần 1)
Trên thực tế, các hệ thống mạng mà bạn có thể gặp thì hầu hết chúng chỉ chạy duy nhất một giao thức định tuyến (OSPF hay EIGRP). Cũng có thể là bạn chỉ gặp một mạng lưới nhỏ hơn chỉ sử dụng RIP và nó cần mở rộng lên, vì thế nó cần chuyển sang OSPF hay EIGRP. Và thử nghĩ xem nếu công ty của chúng ta đang sử dụng OSPF và công mua lại một chi nhánh của công ty khác có hệ thống mạng sử dụng EIGRP?
Có thể chúng ta có nhiều giao thức định tuyến trên một hệ thống mạng và chúng ta sẽ cần có một số phương pháp để có thể trao đổi thông tin định tuyến giữa các giao thức khác nhau này. Việc làm này gọi là redistribution (phân phối các tuyến đường). Với việc làm này thì chúng ta có một số vấn đề cần giải quyết. Đầu tiên, đó là metric của các giao thức này. OSPF sử dụng cost làm metric còn EIGRP sử dụng các giá trị K-value nên chúng sẽ không thể hiêu được nhau (vấn đề tương thích)… Chúng ta cũng sẽ gặp vấn đề tương tự với RIP (sử dụng hop count làm metric).
Việc redistribution cũng còn có một số vấn đề khác. Nếu như việc phân phối các thông tin định tuyến từ một giao thức định tuyến này vào một giao thức định tuyến khác thì có thể gây ra vòng lặp định tuyến. Trong phần này, chúng ta sẽ cùng tìm hiểu các cách để có thể giải quyết các vấn đề có thể gặp phải.
Nếu như bạn chưa thật sự chắc chắn về các kiến thức về OSPF hay EIGRP thì bạn nên dành thời gian nghiên cứu lại chúng và thực hiện các bài lab để nắm thật chắc kiến thức về chúng. Việc biết và sử dụng một giao thức định tuyến thì có thể là chưa đủ, nếu thử kết hợp chúng lại với nhau thì thật sự có nhiều điều thú vị.

- Định tuyến giữa các giao thức định tuyến (RIP, OSPF, EIGRP, BGP).
- Có thể phân phối các tuyến đường định tuyến tĩnh (Static route) vào các giao thức định tuyến.
- Các kết nối trực tiếp cũng có thể phân phối lại vào trong các giao thức định tuyến.

Trong hình trên, chúng ta có 3 router. Router Jack chạy EIGRP và router James chạy RIP. Router John nằm giữa 2 miền vì thế nó chạy cà EIGRP và RIP. Nếu chúng ta muốn phân phối giữa 2 giao thức này thì phải thực hiện trên router John.

- Thật sự việc phân phối sẽ gây ra ảnh hưởng bên ngoài router mà chúng ta thực hiện việc phân phối đó. Nếu chúng ta cấu hình phân phối trên router John thì chúng ta sẽ không có sự thay đổi gì trong bảng định tuyến của router John.
- Router John thực hiện việc phân phối lại các thông tin định tuyến của miền EIGRP vào trong miền RIP và sẽ quảng bá lại cho router router James.
- Router John thực hiện việc phân phối lại các thông tin định tuyến của miền RIP vào trong miền EIGRP và sẽ quảng bá lại cho router router Jack.
- Bạn hãy chắc rằng các tuyến đường trong bảng định tuyến của router thực hiện việc phân phối. Bạn không thể quảng bá (hay phân phối) những gì mà bạn không có.
- OSPF: Cost
- EIGRP: K-Values (bandwidth, delay, load and reliability)
- RIP: Hop count
Protocol Default | Seed Metric |
RIP | Infinity |
EIGRP | Infinity |
OSPF | 20 except BGP is 1. |
BGP | BGP metric is set to IGP metric |
Các thông tin trong bảng trên rất quan trọng và bạn cần thiết phải nhớ. Nếu như bạn phân phối các thông tin vào trong RIP thì giá trị mặc định của seed metric là infinity (vô hạn). Vậy thì RIP sẽ làm gì với các tuyến đường với giá trị metric là infinity? Đúng… nó sẽ không được hiển thị trong bảng định tuyến của router. Điều này có nghĩa là bạn sẽ phải cấu hình một giá trị default hop count cho mọi tuyến đường được phân phối vào trong RIP hoặc là việc phân phối sẽ không hoạt động.
Việc tương tự cũng sẽ xảy ra đối với việc phân phối vào trong miền EIGRP. Bạn phải thực hiện việc cấu hình thiết lập các giá trị K-value bằng tay, không thì việc phân phối tuyến đường này coi như cũng không hoạt động được.
Việc làm này trên OSPF có lẽ là đơn giản hơn… nếu bạn tiến hành việc cấu hình phân phối các tuyến đường vào OSPF thì các tuyến đường được phân phối này sẽ có giá trị cost mặc định là 20, ngoại trừ các thông tin tới từ miền BGP… lúc này nó sẽ có giá trị cost là 1….

Đây là một ví dụ giúp cho bạn thấy việc cấu hình default seed metric bằng cách sử dụng câu lệnh default-metric. Default-metric 5 có nghĩa là bạn set giá trị hop count là 5 cho tất các con đường được phân phối lại vào trong RIP. Đối với EIGRP thì phức tạp hơn một chút, bạn phải xác định các giá trị K-value. Trong ví dụ này, ta sử dụng bandwidth là 1500, delay là 100, reliability 255 (có nghĩa là 100%), load là 1 (1%) và MTU là 1500. Trong trường hợp này, router sẽ làm việc với các số liệu mà chúng ta đã cung cấp. Tất cả các con đường được phân phối vào trong miền EIGRP này đều được tính toán với giá trị metric dựa vào các số liệu mà ta đã cấu hình.
Hãy nhìn vào mô hình sau để cấu hình việc phân phối và hãy cùng xem qua các vấn đề mà chúng ta có thể gặp phải:

Hình ảnh phía trên là cách thực hiện việc phân phối một chiều (one-way redistribution). Ta chỉ thực hiện việc cấu hình phân phối các thông tin định tuyến từ giao thức định tuyến B vào trong giao thức đinh tuyến A nhưng không làm việc ngược lại. Nếu như ta muốn có thể định tuyến được tất cả các tuyến được, bạn có thể cấu hình static routes hay default route ở miền giao thức định tuyến A để có thể kết nối tới miền sử dụng giao thức định tuyến B.

Việc phân phối 2 chiều (Two-way redistribution) được thực hiện khi ta phân phối các thông tin giữa 2 giao thức định tuyến khác nhau. Hình thức của cả 2 quá trình phân phối trong hình trên được gọi là one-point redistribution bởi vì chỉ có một router thực hiện việc phân phối lại các tuyến đường. One-point redistribution được xem là phương pháp cấu hình khá “an toàn” vì ta chỉ có một “đường ra” và một “đường vào” duy nhất cho mỗi giao thức định tuyến. Chính vì điều này mà chúng ta không thể gây ra một vòng lặp định tuyến.

Trong sơ đồ mạng này, chúng ta có 2 router thực hiện việc phân phối giữa 2 giao thức định tuyến. Nó được gọi là multipoint redistribution và nó có thể là một ý tưởng tốt khi chúng ta không muốn single point của chúng ta sẽ gặp lỗi trong quá trình hoạt động. Trong ví dụ này, ta chỉ có một chiều phân phối các thông tin định tuyến từ giao thức định tuyến B vào trong giao thức định tuyến A, vì vậy nó còn được gọi là one-way multipoint redistribution.

Trong ví dụ lần này, chúng ta lại có việc phân phối ngược lại từ miền sử dụng giao thức định tuyến A vào miền sử dụng giao thức định tuyến B và ngược lại. Vậy việc làm này gọi là two-way multipoint redistribution. Multipoint redistribution rất dễ gây ra các vấn đề giống như là gây ra một vòng lặp định tuyến hay tối ưu việc chọn các tuyến đường. Hãy cùng xem qua các mô hình mạng sau đây và cùng nhau phát hiện các vấn đề có thể xảy ra.

- Internal: AD 90
- External: AD 170
- Router James có thông tin về mạng 1.1.1.0 /24 trong bảng định tuyến của mình và nó được xem như là một EIGRP external network với administrative distance là 170.
- Router James sẽ quảng bá mạng 1.1.1.0 /24 tới router Jack và John và cả hai router này sẽ lưu thông tin này vào bảng định tuyến của mình với administrative distance là 170.
- Router Jack sẽ được cấu hình để phân phối tuyến đường này từ miền EIGRP vào trong OSPF.
- Lúc này router Jack sẽ có thông tin về mạng 1.1.1.0 /24 trong bảng định tuyến như là một tuyến đường học được học từ EIGRP, nó sẽ được phân phối lại vào trong OSPF và gửi tới router John.
- Router John nhận được thông tin OSPF về mạng 1.1.1.0 /24 và nó có 2 lựa chọn:
- Sử dụng thông tin EIGRP về mạng 1.1.1.0 /24 với AD 170 (EIGRP).
- Sử dụng thông tin OSPF về mạng 1.1.1.0 /24 với AD 110 (EIGRP).
- Do administrative distance của OSPF thấp hơn nên nó sẽ xóa thông tin của EIGRP ra khỏi bảng định tuyến và thay vào đó là thông tin học được từ OSPF.
- Router John sẽ gửi các IP packet tới mạng 1.1.1.0 /24 thông qua router Jack rồi mới chuyển đến router James. Đó là vấn đề đầu tiên, việc chọn tuyến đường tối ưu trong việc định tuyến.

- Router James có thông tin về mạng 1.1.1.0 /24 trong bảng định tuyến của mình và nó được xem như là một EIGRP external network với administrative distance là 170.
- Router James sẽ quảng bá mạng 1.1.1.0 /24 tới router Jack và John và cả hai router này sẽ lưu thông tin này vào bảng định tuyến của mình với administrative distance là 170.
- Router Jack và router John sẽ được cấu hình để phân phối tuyến đường này từ miền EIGRP vào trong OSPF, vì vậy cả hai đều sẽ phân phối mạng 1.1.1.0 /24 vào trong OSPF.
- Từ đây, ta sẽ có một số vấn đề:
- Router Jack sẽ nhận được thông tin OSPF về mạng 1.1.1.0 /24 và nó sẽ được đưa vào bảng định tuyến, xóa thông tin định tuyến của EIGRP về mạng này vì AD của OSPF là 110 còn EIGRP external là 170.
- Router John cũng sẽ nhận được thông tin OSPF về mạng 1.1.1.0 /24 và nó sẽ được đưa vào bảng định tuyến, xóa thông tin định tuyến của EIGRP về mạng này vì AD của OSPF là 110 còn EIGRP external là 170.
- Router Jack và John bây giờ tin rằng muốn kết nối tới mạng 1.1.1.0 /24 thì phải thông qua nhau, vì vậy ta có một vấn đề về vóng lặp định tuyến. Các gói tin khi gửi tới mạng 1.1.1.0 /24 sẽ bị lặp giữa hai router Jack và John cho đến khi giá trị TTL trở về 0.
- Tiếp nữa, chúng ta có một vấn đề khác. Router Jack và John để thay thế các thông tin EIGRP về mạng 1.1.1.0 /24 bằng thông tin của OSPF. Vì thế, cả hai router lúc này đều không còn thông tin gì để phân phối nữa. Nó giống như vấn đề giữa “con gà và quả trứng” .

- Nếu như router James muốn kết nối được tới router Richard thì nó sẽ phải thông qua router John… vì nếu nhìn vào hình, bạn có thể thấy là kết nối router Jack và Richard có một liên kết serial link (chậm hơn với Ethernet link). Tuy nhiên, vấn đề ở đây là mỗi giao thức định tuyến khác nhau sẽ sử dụng các metric khác nhau, vì vậy việc phân phối làm cho các giá trị này bị thay đổi và mất đi sự khác nhau này.
- Hãy tưởng tượng rằng router James quảng bá một mạng tới router Jack (ví dụ như 1.1.1.0 /24):
- Router Jack sẽ phân phối lại mạng 1.1.1.0 /24 từ miền giao thức định tuyến B vào trong miền giao thức định tuyến A.
- Router Richard sẽ nhận được thông tin về mạng 1.1.1.0 /24 và quảng bá tới router John.
- Router John sẽ phân phối mạng 1.1.1.0 /24 lại vào trong miền giao thức định tuyến B.
- Và như vậy ta có một vòng lặp định tuyến…
- Các vấn đề liên quan tới việc chon con đường tối ưu như ví dụ trên cũng có thể xảy ra tại mô hình mạng này.
- Chỉ phân phối lại các tuyến đường nội bộ (internal routes) từ giao thức định tuyến A đến giao thức định tuyến B.
- Tag các tuyến đường trên các router thực hiện việc phân phối.
- Tăng giá trị metric cho các tuyến đường phân phối lại sao cho router sẽ sử dụng các con đường internal thay vì sử dụng thông tin về các con đường đó được học lại từ việc phân phối.
- Thay đổi giá trị administrative distance.

Ta sẽ sử dụng mô hình mạng trên cho ví dụ tiếp theo này. Chúng ta có 3 router… Miền phía tay trái sử dụng giao thức định tuyến A và phía tay phải là miền giao thức định tuyến B. Router Jack có James các interface loopback được cấu hình các mạng tương ứng.

Hãy bắt đầu với việc phân phối giữa OSPF và RIP. Sau khi cấu hình OSPF và RIP, ta có các thông tin trong bảng định tuyến của các router:

Bạn có thể thấy là các router John học được các thông tin định tuyến từ RIP và OSPF. Và bây giờ sẽ là việc cấu hình phân phối lại các tuyến đường này.

Đầu tiên, chúng ta thực hiện việc phân phối thông tin từ OSPF vào trong RIP. Bạn có thể thấy là ta có thể lựa chọn được nhiều giao thức định tuyến khi sử dụng câu lệnh redistribute.

Trên đây là cách cấu hình phân phối OSPF (process 1) vào trong RIP. Ta set giá trị hop count là 5. Hãy nhớ là giá trị default seed metric khi phân phối vào RIP là infinity. Nếu như ta không chỉ định một giá trị cho metric khi phân phối vào RIP thì việc phân phối này sẽ không thực hiện được.

Ta cũng có thể sử dụng câu lệnh default-metric để thiết lập một giá trị default hop count cho tất cả các con đường được quảng bá vào RIP.

Trên đây là thông tin về bảng định tuyến của router James. Bạn có thể thấy là các mạng thuộc miền OSPF đã được quảng bá vào RIP. Bạn có thể thấy là giá trị seed metric (hop count) là 5.

Bây giờ, ta thực hiện việc phân phối ngược lại, từ RIP vào OSPF. Bây giờ ta sử dụng câu lệnh redistribute rip subnets. Từ khóa subnets là cần thiết trong cấu hình vì nếu không ta chỉ có thể phân phối lại các tuyến đường vào OSPF ở dạng classful. Chúng ta muốn phân phối các tuyến đường dạng classless nên vì thế chúng ta cần sử dụng từ khóa subnets.

Hãy nhìn vào thông tin trên router Jack. Bạn có thể thấy thông tin của OSPF trong bảng định tuyến của mình. Ta có thể thấy nó thuộc loại external type 2 routes. Giá trị cost là 20 (đó là giá trị mặc định). OSPF hoạt động có đôi chút phức tạp hơn RIP khi nó tạo ra một chút khác biệt để có thể phân biệt được đâu là các tuyến đường nội vùng hay ngoại vùng.
Nếu các tuyến đường được phân phối vào trong OSPF thuộc type 2 thì mọi router trong miền OSPF sẽ sử dụng chung một giá trị cost cho tất cả các external network trên mọi router. Nếu như bạn thấy việc phân phối vào trong OSPF là type 1, nó vẫn sẽ sử dụng giá trị cost là 20, tuy nhiên giá trị này sẽ tăng thêm 1 khi được gửi thông qua một router.
Bạn có thể xem việc cấu hình tham khảo tại:
http://gns3vault.com/redistribution/rip-to-ospf-redistribution/
Lược dịch “How to master CCNP – Switch”
NGUYỄN VĂN HUY DŨNG
Don’t compare yourself with anyone in this world…if you do so, you are insulting yourself.
Bill Gates
When something is important enough, you do it even if the odds are not in your favor.