Trong phần này chúng ta sẽ so sánh OSPF với một giao thức định tuyến theo vectơ khoảng cách la RIP. Router định tuyến theo trạng thái đường liên kết có một sơ đồ đầy đủ về cấu trúc hệ thống mạng. Chúng chỉ thực hiển trao đổi thông tin về trạng thái các đường liên kết lúc khởi động và khi hệ thống mạng có sự thay đổi. Chúng không phát quảng bá bảng định tuyến theo định kỳ như các Router định tuyến theo vectơ khoảng cách. Do đó, các Router định tuyến theo trạng thái đường liên kết sử dụng ít băng thông hơn cho hoạt động duy trì bảng định tuyến.
RIP phù hợp cho các mạng nhỏ và đường tốt nhất đối với RIP là đường có số lượng Hop ít nhất. OSPF thì phù hợp với mạng lớn, có khả năng mở rộng, đường đi tốt nhất của OSPF được xác định dựa trên tốc độ của đường truyền. RIP cũng như các giao thức định tuyến theo vectơ khoảng cách đều sử dụng thuật toán chọn đường đơn giản. Còn thuật toán SPF thì rất phức tap. Do đó, nếu Router chạy giao thức định tuyến theo vectơ khoảng cách sẽ cần ít bộ nhớ và năng lực xử lý thấp hơn so với khi chạy OSPF.
OSPF chọn đường dựa trên chi phí được tính từ tốc độ của đường truyền. Đường truyền có tốc độ càng cao thì chi phí OSPF tương ứng càng thấp.
145
OSPF bảo đảm không bị định tuyến lặp vòng. Còn giao thức định tuyến theo vectơ khoảng cách vẫn có thể bị định tuyến lặp vòng.
Nếu một kết nối không ổn định, chập chờn, vi ệc phát liên tục các thông tin về trang thái của đường liên kết này sẽ dẫn đến tì nh trạng các thông tin quảng cáo không đồng bộ làm cho kết quả chọn đường của các Router bị đảo lộn.
OSPF giải quyết được các vấn đề sau: ♦ Tốc độ hội tụ.
♦ Hỗ trợ VLSM (Variable Length Subnet Mask). ♦ Kích cỡ mạng.
♦ Chọn đường.
♦ Nhóm các thành viên.
Hình 6.3. Sự cố xảy ra khi một kết nối không ổn định làm cho việc cập nhật không đồng bộ
Trong một hệ thống mạng lớn, RIP phải mất vài phút mới có thể hội tụ được vì mỗi Router chỉ trao đổi bảng định tuyến với các Router láng giềng kết nối trực tiếp với mình mà thôi. Còn đối với OSPF sau khi đã hội tụ vào lúc khởi động, khi có thay đổi thì việc hội tụ sẽ rất nhanh vì chỉ có thông tin về sự thay đổi được phát ra cho mọi Router trong vùng.
OSPF có hõ trợ VLSM nên nó được xem là một giao thức định tuyến không theo lớp địa chỉ. RIPv1 không có hỗ trợ VLSM, tuy nhiên RIPv2 có hỗ trợ VLSM.
146
Đối với RIP, một mạng đích cách xa hơn 15 Router xem như không đến được vì RIP có số lượng Hop giới hạn là 15. Điều này làm kích thước mạng của RIP bị giới hạn trong phạm vi nhỏ. OSPF thì không hề có giới hạn về kích thước mạng, OSPF hoàn toàn phù hợp cho các mạng vừa và lớn.
Khi nhận được từ láng giềng các Router bao cáo về số lượng Hop đến mạng đích, RIP sẽ cộng thêm 1 vào thống số Hop này và dựa vào số lượng Hop đó để chọn đường đến mạng đích. Đường nào có khoảng cách ngắn nhất hay nói cách khác là có số lượng Hop ít nhất sẽ là đường tốt nhất đối với RIP. Chúng ta thấy thuật toán chọn đường như vậy rất đơn giản và không đòi hỏi nhiều bộ nhớ và năng lượng xử lý của Router. RIP không hề quan tâm đến băng thông đường truyền khi quyết định chọn đường.
OSPF thì chọn đường dựa vào chi phí được tính từ băng thông của đường truyền. Mọi OSPF Router đều có thông tin đầy đủ về cấu trúc của hệ thống mạng dựa vào đó để tự tính toán chọn đường tốt nhất. Do đó thuật toán chọn đường này rất phức tạp, đòi hỏi nhiều bộ nhớ và năng lực xử lý của Router cao hơn so với RIP.
RIP sử dụng cấu trúc mạng dạng ngang hàng. Thông tin định tuyến được truyền lần lượt cho mọi Router trong cùng một hệ thống RIP. OSPF sử dụng khái niệm về phân vùng. Một mạng OSPF có thể chia các Router thành nhiều nhóm Bằng cách n ày, OSPF có thể giới hạn lưu thông trong từng vùng. Thay đổi trong vùng này không ảnh hưởng đến hoạt động của các vùng khác. Cấu trúc phân cấp như vậy cho phép hệ thống mạng có khả năng mở rộng mộ t cách hiệu quả.
6.2.4. Thuật toán chọn đƣờng ngắn nhất
Trong phần này sẽ giải thích cách OSPF sử dụng thuật toán chọn đường ngắn nhất như thế nào.
Theo thuật toán này, đường tốt nhất là đường có chi phí thấp nhất. Edsger Wybe Dijkstra, một nhà khoa học máy tính người Hà Lan, đã phát minh thuật toán này nên nó còn có tên là thuật toán Dijkstra. Thuật toán này xem hệ thống mạng là một tập hợp các nodes được kết nối với nhau bằn g kết nối điểm-đến-điểm. Mỗi kết nối này có một chi phí. Mỗi node có một cái tên. Mỗi node có đầy đủ cơ sở dữ liệu về trạng thái của các đường liên kết, do đó chúng có đầy đủ thông tin về cấu trúc vật lý của hệ thống mạng.
147
Tất cả các cơ sở dữ liệu này đều giống nhau cho mọi Router trong cùng một vùng. Ví dụ như trên hình 2.2.4.a, D có các thông tin là nó kết nối tới node C bằng đường liên kết có chi phí là 4 và nó kết nối đến node E bằng đường liên kết có chi phí là 1.
Thuật toán chọn đường ngắn nhất sẽ sữ dụng bản thân node làm điểm xuất phát và kiểm tra các thông tin mà nó có về các node kế cận. Trong hình 2.2.4.b, node B chọn đường đến D. Đường tốt nhất đến D là đi bằng đường của node E có chi phí là 4. Như vậy là gói dữ liệu đi từ B đến D sẽ đi theo đường từ B qua C qua E rồi đến D.
Node B chọn đường đến node F là đường thông qua node C có chi phí là 5. Mọi đường khác đều có thể bị lặp vòng hoặc có chi phí cao hơn.
Hình 6.4.a.
148
6.2.5. Các loại mạng OSPF
Các OSPF Router phải thiết lập mối quan hệ láng giềng để trao đổi thông tin định tuyến. Trong mỗi một mạng IP kết nối vao Router, nó đều cố gắng ít nhất là trở thành một láng giềng hoặc là láng giềng thân mật với một Router khác. Router OS PF quyết định chọn Router nào làm láng giềng thân mật là tuỳ thuộc vào mạng kết nối của nó. Có một số Router có thể cố gắng trở thành láng giề ng thân mật với mọi Router láng giềng khác. Có một số Router khác lại có thể chỉ cố gắng trở thành láng giềng thân mật với một hoặc hai Router láng giềng thôi. Một khi mối quan hệ láng giềng thân mật đã được thiết lập giữa hai láng giềng với nhau thì thông tin về trạng thái đường liên kết mới được trao đổi.
Giao tiếp OSPF nhận biết ba loại mạng sau:
♦ Mạng quảng bá đa truy cập, ví dụ như mạng Ethernet. ♦ Mạng điểm-nối-điểm.
♦ Mạng không quảng bá đa truy cập (NBMA - Nonbroadcast multi-access), ví dụ như Frame Relay.
Loại mạng thứ 4 là mạng điểm-đến-nhiều điểm có thể được nhà quản trị mạng cấu hình cho một cổng của Router.
149
Trong mạng đa truy cập không thể biết được là có bao nhiêu Router sẽ có thể kết nối được kết nối vào mạng. Trong mạng điểm-đến-điểm chỉ có hai Router kết nối với nhau. Trong mạng quảng bá đa truy cập có rất nhiều Router kết nối vào. Nếu mỗi Router đều thiết lập mối quan hệ thân mật với mọi Router khác và thực hiện trao đổi thông tin về trạng thái đường liên kết với mọi Router láng giềng thì sẽ quá tải. Nếu có 10 Router thì sẽ cần 45 mối liên hệ thân mật, nếu có n Router thì sẽ có n*(n-1)/2 mối quan hệ láng giềng thân mật cần được thiết lập.
Giải pháp cho vấn đề quá tải trên là bầu ra một Router làm đại diện (DR - Designated Router). Router này sẽ thiết lập mối quan hệ thân mật với mọi Router khác trong mạng quảng bá. Mọi Router còn lại sẽ chỉ gửi thông tin về trạng thái đường liên kết cho DR. Sau đó D R sẽ gửi các thông tin này cho mọi Router khác trong mạng bằng địa chỉ mutlticast 224.0.0.5. DR đóng vai trò như một người phát ngôn chung.
Việc bầu DR rất có hiệu quả nhưng cũng có một số nhược điểm. DR trở thành một tâm điểm nhạy cảm đối với sự cố. Do đó, cần có một Router thứ hai được bầu ra để làm Router đại diện dự phòng (BDR - Back up Designated Router), Router này sẽ đảm trách vai trò của DR nếu DR bị sự cố. Để đảm bảo cả DR và BDR đều nhận được các thông tin về trạng thái đường liên kết từ mọi Router khác trong cùng một mạng, chúng ta sử dụng địa chỉ multic ast 224.0.0.6 cho các Router đại diện.
150
Trong mạng điểm-nối-điểm chỉ có 2 Router kết nối với nhau nên không cần bầu ra DR và BDR. Hai Router này sẽ thiết lập mối quan hệ láng giềng thân mật với nhau.
Hình 6.5.c.
6.2.6. Giao thức OSPF Hello
Khi Router bắt đầu khởi động tiến trình định tuyến OSPF trên một cổng nào đó thì nó sẽ gửi một gói hello ra cổng đó và tiếp tục gửi hello theo định kỳ. Giao thức Hello đưa ra các nguyên tắc quản lý việc trao đổi các gói OSPF Hello.
Ở Lớp 3 của mô hình OSI, gói hello mang địa chỉ multicast 224.0.0.5. Địa chỉ này chỉ đến tất cả các OSPF Router. OSPF Router sử dụng gói hello để thiết lập một quan hệ láng giềng thân mật mới để xác định là Router láng giềng có còn hoạt động hay không. Mặc định, hello được gửi đi 10 giây 1 lần trong mạng quảng bá đa truy cập và mạng điểm-nối-điểm. Trên cổng nối vào mạng NBMA, ví dụ như Frame Relay, chu kỳ mặc định của hello là 30 giây.
Trong mạng đa truy cập, giao thức hello tiến hành bầu DR và BDR.
Mặc dù gói hello rất nhỏ nhưng nó cũng bao gồm cả phần header của gói OSPF. Cấu trúc của phần header trong gói OSPF được thể hiện trên hình 2.2.6.a. Nếu là gói hello thì trường Type sẽ có giá trị là 1.
151
Gói hello mang những thông tin đ ể thống nhất giữa mọi láng giềng với nhau trước khi có thể thiết lập mối quan hệ láng giềng thân mật và trao đổi thông tin về trạng thái các đường liên kết.
Hình 6.6.b. Phần header của gói OSPF Hello
Các thông tin trong phần Hello Interval, Đea Interval và Router ID phải đồng nhất thì các Router mới có thể thiết lập mối quan hệ láng giềng thân mật.
6.2.7. Các bƣớc hoạt động của OSPF
Trong mạng đa truy cập, giao thức Hello sẽ bầu ra m ột DR và BDR. DR và BDR duy trì mối quan hệ thân mật với mọi Router OSPF còn lại trong cùng một mạng.
Hình 6.7.a. Bước 1: phát hiện các Router láng giềng. Trong từng mạng IP kết nối vào Router, Router cố gắng thiết lập mối quan hệ thân mật với ít nhất một láng giềng
Hình 6.7.b. Bước 2: bầu ra DR và BDR. Quá trình này chỉ được thực hiện trong mạng đa truy cập
152
Các Router đã có mối quan hệ thân mật lần lượt thực hiên các bước trao đổi thông tin về trạng thái các đường liên kết. Sau khi hoàn tất quá trình này các ở trạng thái gọi la full state. Mỗi Router gửi thông tin quảng cáo về trạng thái các đường liên kết trong gói LSAs (Link-State Advertisements) và gửi thông tin cập nhật các trạng thái này trong gói LSUs (Link-State Updates). Mỗi Router nhận các gói LSAs này từ láng giềng rồi ghi nhận thông tin vào cơ sở dữl iệu của nó. Tiến trình này được lặp lại trên m ọi Router trong mạng OSPF.
Khi cơ sở dữ liệu về trạng thái các đường liên kết đã đáy đủ, mỗi Router áp dụng thuật toán SPF để tự tính toán chọn đường tốt nhất dựa trên cơ sở dữ liệu mà nó có.
Đường ngắn nhất là đường có chi phí thấp nhất đến mạng đích.
Hình 6.7.c. Bước 3: áp dụng thuật toán SPF vào cơ sở dữ liệu về trạng thái các đường liên kết để chọn đường tốt nhất đưa lên bảng định tuyến
Sau đó các thông tin định tuyến cần phải được bảo trì. Khi có một sự thay đổi nào về trạng thái của đường liên kết, Router lập tức phát thông báo cho mọi Router khác trong mạng. Thời gian Dead interval trong giao thức Hello là một thông số đơn giản để xác định một Router láng giềng thân mật còn hoạt động hay không.
153
Hình 6.7.d. R1 phát hiện một liên kết bị đứt và gửi LSU cho DR bằng địa chỉ multicast 224.0.0.6. DR gửi báo nhận cho R1
154
Hình 6.7.e. Tiếp theo DR gửi LSU mới nhận cho tất cả các Router còn lại trong cùng một mạng bằng địa chỉ multicast 224.0.0.5. Sau khi nhận được LSU, các Router gửi báo nhận
lại cho DR
Hình 6.7.f. Nếu Router OSPF nào còn có kết nối đến mạng khác thì nó sẽ chuyển tiếp LSU ra mạng đó
155
Hình 6.7.g. Sau khi nhận được LSU với thông tin mới, Router OSPF sẽ cập nhật vào cơ sở dữ liệu của nó rồi áp dụng thuật toán SPF với thông tin mới này để tính toán lại bảng
định tuyến
6.2.8. Cấu hình OSPF đơn vùng
a. Cấu hình tiến trình định tuyến OSPF
Định tuyến OSPF sử dụng khái niệm về vùng. Mỗi Router xây dựng một cơ sở dữ liệu đầy đủ về trạng thái các đường liên kết trong một vùng. Một vùng trong mạng OSPF được cấp số từ 0 đến 65.535. Nếu OSPF đơn vùng thì đó là vùng 0. Trong mạng OSPF đa vùng, tất cả các vùng đều phải kết nối vào vùng 0. Do đó vùng 0 được gọi là vùng xương sống.
Trước tiên, cần khởi động tiến trình định tuyến OSPF trên Router, khai báo địa chỉ mạng và chỉ số vùng. Địa chỉ mạng được khai báo kèm theo wilđcard mask chứ không phải là subnet mask. Chỉ số danh định (ID) của vùng được viết dưới dạng số hoặc dưới dạng số thập phân có dấu chấm tượng tự như IP.
Để khởi động định tuyến OSPF dùng lệnh sau trong chế độ cấu hình toàn cục:
Router(config)#Router OSPF process-id
Process-id là chỉ số xác định tiến trình địng tuyến OSPF trên Router. có thể khởi động nhiều tiến trình OSPF trên cùng một Router. Chỉ số này có thể là bất kỳ giá trị nào
156
trong khoảng từ 1 đến 65.535. Đa số các nhà quản trị mạng thường giữ chỉ số process-id này giống nhau trong cùng một hệ tự quản, nhưng điều này là không bắt buộc. Rất hiếm khi nào cần chạy nhiều hơn một tiến trình OSPF trên một Router. khai báo địa chỉ mạng cho OSPF như sau:
Router(config-Router)#network wildcard-mask area area-id
Mỗi mạng được quy ước thuộc về một vùng. Adress có thể là địa chỉ của toàn mạng, hoặc là một subnet hoặc là địa chỉ của một cổng giao tiếp. Wildcard-mask sẽ xác định chuỗi địa chỉ host nằm trong mạng mà cần khai báo.
Hình 6.8. Cấu hình OSPF cơ bản
b. Cấu hình địa chỉ loopback cho OSPF và quyền ƣu tiên cho Router
Khi tiến trình OSPF bắt đầu hoạt động, Cisco IOS sử dụng địa chỉ IP lớn nhất đang hoạt động trên Router làm Router ID. Nều không có cổng nào đang hoạt động thì tiến trình OSPF không thể bắt đầu được. Khi Router đã chọn địa chỉ IP của một cổng làm Router ID và sau đó cổng này bị sự cố thì tiến trình sẽ bị mất Router ID.
Khi đó tiến trình OSPF sẽ bịi ngưng hoạt động cho đến khi cổng đó hoạt động trở lại.
Để đảm bảo cho OSPF hoạt động ổn định chúng ta cần phải có một cổng luôn luôn tồn tại cho tiến trình OSPF. Chính vì vậy cần cấu hình một cổng loopback là một cổng luận lý chứ không phải cổng vật lý. Nếu có một cổng loopback được cấu hình thì OSPF sẽ sử dụng địa chỉ của cổng loopback làm Router ID mà không quan tâm đến giá trị của