Hoạt động trong giao thức định tuyến OSPF bao gồm hai dạng: Hoạt động trong định tuyến đơn vùng.
i/ Trong AS đơn vùng:
Các dạng thông báo của giao thức OSPF
Trong hoạt động của giao thức OSPF có 5 dạng thông báo đƣợc sử dụng:
Dạng thông báo Mô tả
Hello - Sử dụng để xác định các láng giềng của một router. - Dùng để bầu chọn ra Designated router.
- Tìm Desinated router đã có.
- Tín hiệu báo tình trạng đang hoạt động của router
Database Description
- Dùng trong khởi tạo trong các router.
- Sử dụng để trao đổi thông tin giữ các router.
- Dùng để tìm lại các dữ liệu bị mất trong cơ sở dữ liệu.
Link State Request - Dùng để yêu cầu dữ liệu về các router đã phát hiện trƣớc đó bị mất thông tin trong cơ sở dữ liệu.
- Yêu cầu cập nhật thông tin về router khi đã hết hạn.
Link State Update - Đáp ứng các yêu cầu của Link State Request.
- Thông báo cập nhật về trạng thái thay đổi trong kiến trúc mạng
- Nguồn gửi thông báo sẽ gửi mãi thông báo Link State Update cho đến khi nhận đƣợc phản hồi ACK
Các thông báo của OSPF phát đi trực tiếp trong gói dữ liệu IP, tại cổng giao thức số 89. Tất cả các thông báo đều bắt đầu với 24-byte header. Mỗi trƣờng thông tin trong gói dữ liệu đều có độ dài là 4 bytes (32bits). [8]
Version Type (1-5) Packet Length Router ID
Area ID
Checksum Authentication Type
Authentication Authentication Các trƣờng thông tin cụ thể là
Vertion: 2, phiên bản của giao thức (hiện tại là OSPF v2) Type : là số xác định dạng của thông báo.
Packet Length: Tổng độ dài của gói dữ liệu bao gồm cả phần header.
Router ID: Là số 32 bits, đƣợc gán cho mỗi router OSPF đang chạy – dùng để định danh duy nhất cho router trong AS.
Area ID: Số 4 byte định danh số ID vùng (Số 0.0.0.0 dành cho vùng backbone).
Check sum: Kiểm tra tính chính xác của gói dữ liệu theo qui định của TCP/IP Ba trƣờng Authentication: Xác nhận gói dữ liệu OSPF
Gói dữ liệu Hello [8]
Network mask
Hello interval Options Priority Dead interval
Designated router
Backup designated router Neighbor 1
…
Neighbor n
Các trƣờng thông tin này đƣợc gắn thêm vào sau gói dữ liệu header tạo ra gói dữ liệu OSPF. Chi tiết các trƣờng bao gồm:
- Network mask: Subnet mark của cổng router gửi gói dữ liệu đi.
- Hello interval: Khoảng thời gian qui định (theo giây) giữa hai lần gửi gói dữ liệu Hello.
- Option: Tuỳ chọn hỗ trợ theo mỗi bộ định tuyến.
- Priority: Dành riêng cho router - sử dụng để bầu chọn DR.
- Dead interval: Khoảng thời gian quy định khi không có tín hiệu phản ứng từ các láng giềng.
- Designated router/Backup: Dùng để bầu chọn DR và BDR router, trƣờng này có giá trị là 0.0.0.0 nếu không có Desinated router (trƣờng này chỉ dành cho các mạng đa truy cập)
- Các Neighbor i: Các router ID của mỗi láng giềng đã nhận gói dữ liệu Hello gần đây nhất.
Gói dữ liệu Database descripton [8]
Interface MTU Options Zero I M M
S Database description sequence number
LSA header(s)
Phần LSA header có nội dung nhƣ sau: [8]
Link-state age Options Link-state type
Link-state ID Advertising router
Link-state sequence number
Link-state checksum Length Thông tin các trƣờng bao gồm:
- Interface MTU: MTU của các cổng - Option: Tuỳ trọn hỗ trợ bởi các router.
- Bit I: bit khởi tạo (Init) , đƣợc đặt bằng 1 nếu gói số liệu này là đầu tiên trong dãy tuần tự các gói dữ liệu database descripton.
- Bit M: bit thêm (More), đƣợc đặt bằng 1 nếu gói số liệu này là các gói tiếp theo trong dãy tuần tự các gói dữ liệu database descripton.
- Bit MS: bit Master/Slave.
- Database Sequence number: định danh số hiệu tuần tự của gói dữ liệu để cho nơi nhận có thể phát hiện ra các gói dữ liệu bị mất.
Phần thông tin trong LSA header bao gồm: - Link-state age: thời gian khi LSA sinh ra. - Option: Tuỳ chọn, hỗ trợ bởi router.
- Link- state type: xác định loại LSA trong các loại LSA sau đây: router LSA, nework LSA, summary LSA cho các mạng IP, summary LSA cho các router ASB, và các LSA AS-external.
- Link-state ID: miêu tả định tuyến domain cho LSA; phụ thuộc vào loại LSA. - Advertising router: router ID của router phát sinh ra LSA.
- Link-state sequence number: số tuần tự các gói LSA để xác định các LSA là cũ hay trùng lặp.
- Link-state checksum: trƣờng thông tin kiểm tra lỗi link-state. - Length: độ dài của LSA bao gồm cả phần LSA header.
Các gói dữ liệu của Link-State Request/Update/ACK
Link-State Request [8]
Link-state type Link-state ID Advertising router
… (above 3 fields repeated for each link)
Link-State Update [8]
Number of LSAs LSA 1
… LSA n
- Number of LSAs: Số các LSA có trong gói dữ liệu. Mỗi LSA là một trong năm dạng LSA đã nêu ở trên. Sau đây ta xem xét cụ thể dạng router LSA.
Các router LSA: [8] LSA header 0 V E B 0 #links 32 bits Link ID Link Data
Repeat per-link fields for each link per-link
fields
Type #TOS Metric
LSA header
0 V E B 0 #links
32 bits
Link ID Link Data
Repeat per-link fields for each link per-link
fields
Type #TOS Metric
Type #TOS Metric
Các trƣờng thông tin bao gồm:
- Bit V (virtual): bằng 1 nếu là điểm cuối của virtual link. - Bit E (external): bằng 1 khi nó là ASBR.
- Bit B (Border): bằng 1 khi router là một ABR router. - #link: # của link mô tả trong LSA này.
- Các trƣờng perlink:
oType: xác định dạnh của LSA: 1: Dạng kết nối point-to-point giữa các router. 2: Kết nối đến một mạng transit.3: Kết nối đến một mạng stub. 4: Kết nối virtual link
oLink ID: Nhận dạng loại nút kết nối đến link này. Nếu giá trị là 1 : Router ID của router láng giềng. Nếu giá trị là 2: địa chỉ IP của Designated Router. Nếu giá trị là 3:số IP network/subnet.
oLink Data: phụ thuộc vào dạng liên kết.Với các liên kết đến các mạng stub: mask địa chỉ IP của các mạng.Với các liên kết point-to-point: Với các dạng liên kết khác:
oMetric: Chi phí dùng cho liên kết.
Các bước hoạt động của giao thức định tuyến OSPF trong đơn vùng là:
Theo RFC 2328 [8] các bƣớc hoạt động của OSPF gồm:
Bƣớc 1: Thiết lập các router liền kề (Adjacencies)
Bƣớc này còn đƣợc gọi là Hello Procotol. Các hoạt động chủ yếu gồm:
- Gói dữ liệu Hello đƣợc gửi ra trên một cổng liên kết nào đó và tiếp tục gửi theo định kỳ.
- Ở lớp mạng, gói dữ liệu Hello mang địa chỉ multicast 224.0.0.5 đến tất cả các router.
- Gói dữ liệu Hello thực hiện các chức năng cơ bản là
oPhát hiện các láng giềng mới.
oXác định láng giềng cũ còn hoạt động hay không
oTiến hành bầu chọn DR, BDR router trong các mạng đa truy cập.
Bƣớc 2: Bầu chọn DR, BDR. Phụ thuộc vào nhiều yếu tố:
- Chỉ thực hiện trên các mạng broadcast và mạng NBMA (mạng đa truy cập). - Việc bầu chọn dựa trên giao thức Hello.
Bƣớc 3: Đồng bộ hoá cơ sở dữ liệu định tuyến LSB (Link-State database)
Hai router lân cận (trạng thái liền kề) trao đổi cho nhau các gói dữ liệu mô tả về cơ sở dữ liệu định tuyến để đồng bộ hoá cơ sở dữ liệu của chúng. Kết quả là, hai router có cơ sở dữ liệu định tuyến hoàn toàn giống nhau. Các gói dữ liệu database description đƣợc sử dụng để trao đổi thông tin về danh sách các LSA header. Các thông báo cập nhật LSA sẽ đƣợc trao đổi sau.
Bƣớc 4: Loan truyền các thông tin về link-state.
Các router trao đổi với nhau thông tin về trạng thái các đƣờng liên kết của nó thông qua các thông báo Link State Request và Link State Update.
- Thông báo yêu cầu Link State Request đƣợc gửi từ một một router khi nó muốn cập nhật cơ sở dữ liệu định tuyến của nó.
- Thông báo Link State Update của router đƣợc gửi trong ba trƣờng hợp: khi nó nhận đƣợc thông báo yêu cầu Link State Request, hoặc khi có sự thay đổi trong các trạng thái các đƣờng liên kết của nó, hoặc theo định kỳ.
Thông báo Link State ACK đƣợc gửi từ một router sau khi nó nhận thông báo
Link State Update đến router gửi thông báo này để xác nhận việc cập nhật. Các thông báo Link State Update đƣợc gửi lại liên tục theo từng khoảng thời gian cho đến khi nó nhận lại đƣợc thông báo Link State ACK.
Quá trình loan truyền quảng bá các thông báo LSA (flooding) xảy ra khi các router gửi các Link State Update cho nhau. Một router sau khi nhận đƣợc Link State
Update thì trƣớc hết nó cài đặt các LSA vào cơ sở LSB của nó, sau đó nó mới quyết định các LSA nào đƣợc gửi tiếp đi
Bƣớc 5: Xây dựng bảng định tuyến
Một router S sau khi nhận đƣợc đầy đủ thông tin định tuyến về kiến trúc toàn mạng hay toàn vùng sẽ áp dụng giải thuật SPF để xây dựng cây đƣờng đi ngắn nhất đến các đích, với gốc là chính nó (router S). Sau đó từ cây SPF đƣợc xây dựng nó mới tạo ra bảng định tuyến.
ii. Hoạt động của OSPF đa vùng: [7]
Ý nghĩa của mô hình vùng trong các AS:
Trong các hệ tự trị có tập hợp một số lƣợng lớn các mạng máy tính liên tiếp với nhau thì mỗi OSPF router phải lƣu một cơ sở dữ liệu các LSAs của mọi router khác trong mạng, làm cho mỗi router trong hệ tự trị AS một vùng lớn có một cơ sở dữ liệu liên kết trạng thái LSDB cực lớn theo hệ số mũ.
Ví dụ, nếu trong vùng có n router , mỗi router lại có k cổng kết nối thì cơ sở LSDB sẽ có n.k danh mục mô tả trạng thái đƣờng liên kết.
Quá trình tính toán tạo ra cây SPF cho LSDB lớn tốn rất nhiều công đoạn xử lý. Bảng định tuyến kết quả cũng rất lớn vì nó sẽ chứa các tuyến đến mỗi subnet trong một AS. Cách giảm tải là, một hệ tự trị AS lớn sẽ đƣợc chia ra thành một hay nhiều vùng AS nhỏ hơn, mỗi vùng AS nhỏ hơn này chứa một LSDB độc lập và có kích thƣớc cũng nhỏ hơn. Việc sử dụng nhiều vùng trong một hệ tự trị AS OSPF làm quá trình xử định tuyến trên AS có hiệu quả hơn.
Việc chia AS ra thành nhiều vùng con OSPF làm giảm kích cỡ của LSDB và cũng giảm bớt các công đoạn tính cây SPF và xây dựng bảng định tuyến, mỗi vùng nhỏ đƣợc tạo lên bởi một nhóm các subnets. Kích cỡ của LSDB càng nhỏ thì việc quản lý và xử lý càng nhanh hơn bởi vì các LSA cho các mạng và các router trong một vùng đƣợc flood trong một vùng mà không đi ra bên ngoài. Do vậy, mỗi vùng có một LSDB độc lập với nhau.
Việc chia vùng trong định tuyến OSPF còn gọi là giải pháp định tuyến thứ bậc trong các mạng lớn (Hierachical routing).
Định tuyến giữa các vùng OSPF
Việc định tuyến giữa các vùng đƣợc tiến hành theo trình tự sau đây
1. Một host trong một vùng gửi một gói dữ liệu cho một host ở vùng khác đến router nội bộ trong chính vùng của nó. Host gửi dữ liệu không cần biết đích đến nằm trong hay ngoài vùng.
2. Router nội bộ sau khi nhận gói dữ liệu gửi sẽ chuyển tiếp gói dữ liệu theo đƣờng đi có chi phí nhỏ nhất để đến ABR gần nhất, ABR này có cổng liên kết đến vùng backbone. ABR bản thân cũng là một router backbone.
3. ABR chuyển tiếp gói dữ liệu theo đƣờng đi ngắn nhất đến ABR khác gần nhất kết nối với vùng có chứa địa chỉ IP của host đích.
4. Một ABR có kết nối với vùng có chứa địa chỉ IP của host đích chuyển tiếp gói dữ liệu theo đƣờng đi ngắn nhất, bao gồm một loạt các router nội bộ trung gian, đến host đích.
Hình 2.15 minh hoạ AS chia nhiều vùng và quá trình định tuyến giữa các vùng khác nhau
Hình 2.17: định tuyến phân vùng trong AS [7]
Các router OSPF không quyết định việc định tuyến dựa trên các ID vùng. Tất cả việc định tuyến dựa vào các danh mục trong bảng định tuyến IP. Ví dụ, trong việc định tuyến liên vùng trong hình trên các backbone router không chuyển dứt khoát gói dữ liệu đến vùng 0.0.0.2. Các router chuyển các gói dữ liệu theo đƣờng đi có chi phí thấp nhất đến router là địa chỉ đích.
Sử dụng tuyến tổng hợp giữa các vùng OSPF
Các router trong một vùng OSPF thực hiện định tuyến trong vùng bằng đƣờng đi có chi phí thấp nhất đến subnet đích. Mỗi router trong một vùng có một tuyến đi đến mỗi subnet trong vùng. Khi có nhiều vùng OSPF cùng tồn tại, OSPF có thể đƣợc cấu hình để quản lý việc định tuyến giữa các vùng bằng cách quảng bá mạng cục bộ trong một vùng đến các vùng khác bằng cách sử dụng thông báo tuyến tổng hợp trong khuôn dạng {Destination, Network mask}. Mỗi cặp destination/mask tổng hợp một vùng các địa chỉ trong một vùng OSPF đến vùng khác trong cùng một hệ tự trị AS. Việc sử dụng tuyến tổng hợp làm giảm bớt số lƣợng các danh mục trong bảng định tuyến các router OSPF.
Việc sử dụng nhiều vùng cộng gộp trong tuyến tổng hợp để thực hiện định tuyến liên mạng lớn. Khi thiết kế các vùng cho một hệ tự trị OSPF, việc gán các ID mạng có thể biểu diễn là một số nhỏ trong tuyến tổng hợp. Ví dụ, việc gán ID mạng cho không gian địa chỉ IP riêng trong khoảng 10.17.0.0/16 và 10.29.0.0/16 cho các subnet của một vùng OSPF sao cho tất cả các vị trí trong vùng có thể tổng hợp hoá với hai tuyến.
Sử dụng virtual link cho các vùng không kết nối đến backbone: Khi một ABR-router thực hiện kết nối một vùng với vùng backbone thì phải có một kết nối vật lý đến vùng backbone. Tuy nhiên, trong thực tế không phải ABR router nào cũng có kết nối nhƣ vậy, khi đó có thể sử dụng virtual link để kết nối một vùng với vùng backbone.
Liên kết ảo (virtual link): là một kết nối logic dạng point-to-point kết nối giữa một ABR router của một vùng A bất kỳ không có đƣờng kết nối vật lý đến vùng backbone với một router thuộc vùng backbone. Khi đó, vùng A sẽ đƣợc kết nối vật lý vào vùng backbone thông qua liên kết ảo đƣợc hình thành.
Có thể cấu hình virtual link giữa hai router có cổng interface đến một vùng transit. Vùng transit phải có một ABR router đã nối với vùng backbone. Không đƣợc cấu hình nhiều virtual link qua nhiều vùng transit. OSPF thực hiện chọn các router liền kề liên kết với nhau bằng một liên kết ảo để trao đối thông tin định tuyến. Và các router đó đƣợc gọi là các router lân cận ảo.
Hình 2.18: Thiết lập tuyến ảo [7]
Trong hình 2.16 trên vùng 0.0.0.3 không có kết nối với vùng backbone router, và liên kết ảo virtual link đƣợc hình thành giữa hai router R2 và R3 để liên kết vùng 0.0.0.3 với vùng backbone. Vùng 0,0,0,2 là vùng transit, R2 và R3 là các router lân cận liên kết ảo. Một liên kết cần các giá trị sau đây để xác lập: ID vùng của vùng transit, ID router của các router lân cận liên kết ảo, thời gian trễ trên vùng transit, khoảng thời gian phản hồi, cài đặt liên kề.
2.4. GIAO THỨC ĐỊNH TUYẾN THEO PATH VECTOR
2.4.1. Định tuyến trên mạng internet: a. Tổ chức hệ thống trên mạng internet: a. Tổ chức hệ thống trên mạng internet:
Hệ thống các mạng máy tính liên kết với nhau trên mạng internet đƣợc chia ra thành nhiều miền khác nhau, mỗi miền có chung một số chiến lƣợc quản trị và định