13
LÝ THUYẾT VỀ OSPF 1. Tổng Quan Về OSPF: OSPF (Open Shortest Path First) là một giao thức định tuyến theo trạng thái đường liên kết (Link State) được triển khai dựa trên các chuẩn mở. OSPF được mô tả trong nhiều chuẩn của IETF (Internet Engineering Task Force). Chuẩn mở ở đây có nghĩa là OSPF hoàn toàn mở với công cộng, không có tính độc quyền. Nếu so sánh với RIPv1 và RIPv2 là một giao thức nội thì IGP tốt hơn vì khả năng mở rộng của nó. RIP chỉ giới hạn trong 15 hop, hội tụ chậm và đôi khi còn chọn đường có tốc độ chậm vì khi quyết định chọn đường nó không quan tâm đến các yếu quan trọng khác như băng thông chẳng hạn. OSPF khắc phục được các nhược điểm của RIP vì nó là một giao thức định tuyến mạnh, có khả năng mởi rộng, phù hợp với các hệ thống mạng hiện đại. OSPF có thể cấu hình đơn vùng để sử dụng cho các mạng nhỏ. 2. So Sánh OSPF Với Giao Thức Định Tuyến Theo Distance Vector: Router định tuyến theo trạng thái đường liên kết có một cơ 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 đườ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 distance vector. Do đó, các router định tuyến

Lý thuyết về OSPF

  • Upload
    sinoiti

  • View
    288

  • Download
    11

Embed Size (px)

Citation preview

Page 1: Lý thuyết về OSPF

LÝ THUYẾT VỀ OSPF

1. Tổng Quan Về OSPF:

OSPF (Open Shortest Path First) là một giao thức định tuyến theo trạng thái đường liên kết (Link State) được triển khai dựa trên các chuẩn mở. OSPF được mô tả trong nhiều chuẩn của IETF (Internet Engineering Task Force). Chuẩn mở ở đây có nghĩa là OSPF hoàn toàn mở với công cộng, không có tính độc quyền.

Nếu so sánh với RIPv1 và RIPv2 là một giao thức nội thì IGP tốt hơn vì khả năng mở rộng của nó. RIP chỉ giới hạn trong 15 hop, hội tụ chậm và đôi khi còn chọn đường có tốc độ chậm vì khi quyết định chọn đường nó không quan tâm đến các yếu quan trọng khác như băng thông chẳng hạn. OSPF khắc phục được các nhược điểm của RIP vì nó là một giao thức định tuyến mạnh, có khả năng mởi rộng, phù hợp với các hệ thống mạng hiện đại. OSPF có thể cấu hình đơn vùng để sử dụng cho các mạng nhỏ.

2. So Sánh OSPF Với Giao Thức Định Tuyến Theo Distance Vector:

Router định tuyến theo trạng thái đường liên kết có một cơ 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 đườ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 distance vector. 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 với các mạng nhỏ và đường tốt nhất đối với RIP là đường có số 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 distance vector khác đều sử dụng thuật toán chọn đường đơn giản. Còn thuật toán SPF thì phức tạp. Do đó, nếu router chạy theo giao thức định tuyến theo distance vector thì sẽ ít tốn bộ nhớ và cần 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í (cost) đượ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.

OSPF chọn đường tốt nhất từ cây SPF.

OSPF bảo đảm không bị định tuyến lặp vòng. Còn giao thức định tuyến theo distance vector vẫn có thể bị loop.

Page 2: Lý thuyết về OSPF

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ề trạng thái của đường kiê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.

Trong một hệ thống mạng lớn, RIP phải mất ít nhấ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 hỗ trợ VLSM, nhưng RIPv2 thì có.

Đối với RIP, một mạng đích cách xa hơn 15 router xem như không thể đế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 giới hạn về kích thước mạng, nó hoàn toàn có thể phù hợp với mạng vừa và lớn.

Page 3: Lý thuyết về OSPF

Khi nhận được từ router láng giềng các báo 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. Nhận xét thấy thuật toán chọn đường như vậy là rất đơn giản và không đòi hỏi nhiều bộ nhớ và năng lực 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 đều có thông tin đầy đủ về cấu trúc của hệ thống mạng và dựa vào đó để chọn đường đi 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. Còn 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 lớ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ả.

3. Thuật Toán Chọn Đường Ngắn Nhất:

Theo thuật toán này, đường tốt nhất là đường có chi phí thấp nhất. Thuật toán được sử dụng là 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ằng kết nối point-to-point. Mỗi kết nối này có một chi phí. Mỗi nodes có một tên. Mỗi nodes 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. Tất cả các cơ sở dữ liệu này điều giống nhau cho mọi router trong cùng một vùng.

Page 4: Lý thuyết về OSPF

4. Các Loại Mạng OSPF:

Các OSPF 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ạng IP kết nối vào router. Nó đều cố gắng ít nhất là trở thành một láng giềng hoặc là một láng giềng thân mật với một router khác, router OSPF quyết định chọn router nào làm láng giềng thân mật là tùy thuộc vào từng loại mạng kết nối với 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 thức OSPF nhận biết các loại mạng sau:

- Mạng quảng bá đa truy cập, ví dụ mạng Ethernet.

- Mạng point-to-point.

- Mạng không quảng bá đa truy cập (NBMA – NonBroadcast Multil-Access), ví dụ Frame Relay.

- Mạng Point-to-Multipoint có thể được nhà quản trị mạng cấu hình cho một cổng của router.

Trong mạng đa truy cập không thể biết được là có bao nhiêu router sẽ có thể được kết nối vào mạng.

Trong mạng point-to-point thì chỉ có hai router được 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 cần 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ản 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 đó DR sẽ gởi các thông tin này cho mọi router khác trong mạng bằng địa chỉ multicast 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 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 đại diện dự phòng (BDR – Backup 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 thông tin về trạng

Page 5: Lý thuyết về OSPF

thái đường liên kết từ mọi router khác trong cùng một mạng, địa chỉ multicast 224.0.0.6 cho các router đại diện.

Trong mạng point-to-point chỉ có 2 router kết nối với nhau nên không cần bầu ra DR và DBR. Hai router này sẽ thiết lập mối quan hệ láng giềng thân mật với nhau.

Loại Mạng Các Đặc Tính Bầu DR

Broadcast, Multi-Access Ethernet,ToKen Ring,FDI Có

NonBroadcast, Multi-Access Frame Relay,X25,SMDS Có

Point-to-Point PPP,HDLC Không

Point-to-Multipoint Được cấu hình bởi Administrator Không

5. 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.5.0 đị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 và để 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 một lần trong mạng quảng bá đa truy cập và mạng Point-to-Point. Trên cổng nói vào mạng NBMA, ví dụ như Frame Relay, chu trình 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 như hình sau. Nếu gói hello thì trường Type sẽ có giá trị là một.

Page 6: Lý thuyết về OSPF

* Các khái niệm được định nghĩa trong header của gói hello:

Xét các phần được bôi màu:Phần header của gói tin OSPFType: 1 – 5, trong đó:1 - Hello2 - DD (Data description)3 - Link state request4 - Update5 - Ack

Xét Header của gói tin Hello Network Mask: Subnet Mask của interface gửi gói tin Hello. Hai router trao đổi

gói Hello cho nhau phải có network mask bằng nhau thì mới thiết lập mối quan hệ hàng xóm được.

Hello Interval: Chu kỳ thời gian gửi gói Hello. Hai router trao đổi gói Hello cho nhau phải có Hello interval bằng nhau thì mới thiết lập mối quan hệ hàng xóm được (5s ở eigrp và 10s ở ospf đã nói ở phần trên)

Router Dead Interval = 4 x Hello Interval : Thời gian để Router gửi gói hello ngắt liên lạc vì không nhận được trả lời.

Router Priority: Chỉ số ưu tiên của Router (Dùng trong việc bầu chọn DR và BDR)

DR & BDR: Router ID của DR & BDR nếu không phải là nó List of neighbor(s): Danh sách Router hàng xóm (Dùng Rouer ID)

Page 7: Lý thuyết về OSPF

* DR và BDR là gì ?Trong giao thức "Link State" đảm bảo cho tất cả các Router cùng chạy giao thức

đó (OSPF hoặc IS- IS) có database giống hệt nhau. Có được như vậy do khi Router nào đó có sự thay đổi sẽ báo cho tất cả các router chạy OSPF trong đó. Thử tưởng tượng trong area có 20 router chẳng hạn:

Router 1 gửi sự thay đổi cho 19 Router còn lại => Router 2 -> Router 20 có sự thay đổi về database của mình và sẽ tự động gửi bản tin cho các router khác. Như vậy là có số bản tin được gửi đi chỉ vì 1 sự thay đổi là 20x19 = 380 => gây ra sự rối loạn và tốn kém băng thông, tăng thêm tải v...v

Để hạn chế việc này người ta sử dụng DR và BDRGiả sử: Router 8 là DR, Router 9 và BDRRouter 1 có sự thay đổi, Nó sẽ "chỉ" gửi sự thay đổi của mình cho Router 8(DR)

và Router 9 (BDR)R9 (BDR) chỉ lưu thông tin đó lại và nếu như R8 (DR) bị down hoặc trục trặc nó

sẽ lên làm DRCòn R8 khi nhận được thông tin sự thay đổi của R1 sẽ forward thông tin này cho

các Router còn lạiNhư vậy 1 sự thay đổi trong area sẽ chỉ cần phải gửi đi: 2 + 19 = 21 Bản tin(Gửi bản tin ở đây là gửi multicast - Địa chỉ Multicast được đề cập ở phần đầu)21 so với 380 - sự khác biệt về 2 con số này là đủ để nói lên tầm quan trọng của

DR và BDR trong link state* Vậy bầu chọn Designated Router (DR) và Backup Designated Router (BDR) như thế nào?

Việc bầu chọn Designated Router (DR) và Backup Designated Router (BDR) ta xét như sau:

DR - Là Router có Router Priority cao nhất, BDR - Là Router có Router Priority cao nhì. (Nếu có Router Priority bằng nhau thì xét tới Router có Router ID cao nhất). Việc bầu chọn này chỉ diễn ra trong 40s đầu tiên của khi area này bắt đầu hoạt động.

Nếu một Router X nào đó là Router có Router Priority cao nhất nhưng lại xuất hiện trong mạng muộn hơn sau quá trình bầu chọn thì nó cũng không thể là DR được. Muốn lên làm DR thì phải tới lần thứ 2 có sự bầu chọn lại như quy trình dưới:

Lần: 1 trong 2 : DR hoặc BDR bị down1 - DR bị down - BDR hiện thời lên làm DR - R X trở thành BDR2 - BDR bị down - R X trở thành BDRLần 2 - khi này R X đã là BDR

Page 8: Lý thuyết về OSPF

DR bị down - R X lên làm DR - 1 Router khác trong số các Router còn lại trong area thỏa mãn các điều kiện bầu chọn ở trên sẽ lên làm BDR

Nếu muốn ấn định Router Y làm DR ngay đầu tiên bằng cách thay đổi Router Priority cso thể thực hiện bằng việc cấu hình

Trong mode config interface

(config-if)#ip ospf priority

* 0 ->255

Router Priority Default = 1

Router Priority = 0 thì không tham gia cuộc bầu chọn.

Và nếu muốn làm DR thì cứ set nó càng cao càng tốt

Router ID là gì?

Là 1 IP được xét như sau:

Xét trong các interface Loop back, interface nào có IP cao nhất thì chọn. Nếu không chạy các Interface loop back thì xét tới các interface vật lý. Lại xét tiếp xem IP của interface nào cao nhất chọn làm Router ID.

* Ý nghĩa của các trường thông tin trong OSPF topological database:

Giải thuật SPF (ví dụ Dijkstra) cần đến bảng mô tả kết nối của tất cả các Router trong mạng, với trạng thái tương ứng của kết nối (ví dụ cost, mức độ sử dụng đường truyền, trạng thái link...). Với bảng cơ sở dữ liệu Topological sau của OSPF, các trường thông tin thể hiện ý nghĩa gì và được sử dụng như thế nào trong OSPF?

Code:show ip ospf database

OSPF Router with ID (10.12.1.1) (Process ID 1)

Router Link States (Area 0)

Link ID ADV Router Age Seq# Checksum Link count10.12.1.1 10.12.1.1 482 0x80000006 0x1C13 2172.16.3.2 172.16.3.2 468 0x80000004 0xFD89 2

Summary Net Link States (Area 0)

Link ID ADV Router Age Seq# Checksum192.168.0.0 10.12.1.1 695 0x80000001 0x743D

---------------------------------------------

Page 9: Lý thuyết về OSPF

1 .OSPF Router with ID (10.12.1.1) (Process ID 1): Hiển thị thông tin của router ID và process ID của router.

2.Router Link States (Area 0): Hiển thị Router Link States của router trên area 0, chỉ ra kết nối của router tới các neighbors được discover qua hello protocol.

- Link ID : Những cái có cùng OSPF router ID.

- ADV Router : Là OSPF router ID được router quảng bá.

-Age : Là thời khoảng thời gian kể từ lần cuối cùng update bảng routing trên router và được tính bằng đơn vị giây(second). Trường Age, hay Age Timer, theo mặc định là 30phút, thể hiện chu kỳ sống của các LSA.

-Seq: số thể hiện để bảo đảm rằng LSA chính xác trong quá trình update.

Trong các link-state routing protocols (như OSPF), các routers sẽ trao đổi các LSA (Link State Advertisement) với nhau. Các LSA này sẽ được cập nhật vào database của mỗi routers. Để đảm bảo là các database luôn có thông tin mới, các LSA này được đánh thêm chỉ số sequences. Chỉ số sequences sẽ bắt đầu từ giá trị Initial đến giá trị Max-Age. Khi một routers nào đó tạo ra một LSA, nó sẽ đặt giá trị sequence bằng initial. Mỗi khi routers gửi ra một phiên bản LSA update khác, nó sẽ tăng giá trị đó lên 1. Như vậy, giá trị sequence càng cao thì LSA update càng mới.

Nếu giá trị sequence này đạt đến Max, routers sẽ flood LSA ra cho tất cả các routers còn lại; sau đó router đó sẽ set giá trị sequence về giá trị Initial.

Như vậy, nếu trong router OSPF đã có một LSA có giá trị sequence là 0x80000003, nó nhận được một LSA cũng về network đó có sequence là 0x80000002 thì sẽ không update. Ngược lại, router sẽ gửi LSA có sequence cao hơn trở về source. Còn nếu giá trị sequence của Router nhỏ hơn (thông tin lỗi thời) thì phải chịu update thông tin mới.

-Checksum: Dùng để kiểm tra tính toàn vẹn của quá trình LSA update.

-Link Count: Số kết nối mà Router đã cấu hình cho OSPF

- Net Link States : Hiển thị các thông tin lấy từ network LSA mà router đã nhận đuợc.