Với cấu trúc bảng định tuyến bao gồm 3 trƣờng chính là Dest, Nexthop, Cost từ cây SPF của nút đƣợc chọn tạo ra bảng định tuyến với mỗi danh mục tuyến đến các mạng kết nối vào các nút khác.Các mạng này đƣợc lấy dữ liệu từ cơ sở dữ liệu kiến trúc mạng.
Bảng 2.4: Bảng định tuyến của router R1
2.3.5. Hoạt động của giao thức OSPF a. Tổng quan : a. Tổng quan :
Giao thức OSPF là một giao thức định tuyến theo link-state đƣợc IETF phát triển, đây là giao thức mở và đƣợc phát triển để sử dụng chung.Đƣợc phát triển để thay thế cho RIPv1 và RIPv2, OSPF đƣợc định nghĩa trong tài liệu RFC 2328. Giao thức OSPF có nhiều ƣu điểm hơn RIP trong hoạt động, tuy nhiên nó lại đòi hỏi các thiết bị là các bộ định tuyến làm việc trên mạng cài đặt giao thức này phải có cấu hình cao hơn và sự hoạt động phức tạp và xử lý nhiều hơn.
b. Các đối tƣợng và thành phần hoạt động trong định tuyến OSPF:
Theo tài liệu RFC 2328 [8], tài liệu chuẩn ban hành của tổ chức IETF về giao thức OSPF, định nghĩa các đối tƣợng nhƣ sau
Hệ tự trị AS (autonomoust system): Nhóm các router trao đổi thông tin định tuyến qua một chiến lƣợc định tuyến (cùng chung một chiến lƣợc định tuyến).
IGP (Interior Getway Procotol): Giao thức định tuyến nội vùng AS, đƣợc các router trong AS sử dụng. Mỗi hệ AS có một giao thức định tuyến nội vùng. Các hệ tự trị khác nhau có thể sử dụng các giao thức IGP khác nhau.
Router và Router ID: Router là thiết bị chuyển mạch định tuyến thuộc lớp 3. Router ID là một số 32 bits đƣợc gán cho mỗi router sử dụng giao thức OSPF trong định tuyến. Số ID này phải là duy nhất cho mỗi router trong một hệ AS.
Network: Là mạng IP trong định tuyến, có thể là Network, subnet hoặc supernet. Có thể là một mạng vật lý đƣợc gán nhiều số địa chỉ IP theo khuôn dạng network/subnet.
Network mask: Là số 32 bits xác định phạm vi của địa chỉ IP trong địa chỉ IP của network/subnet/supernet.
Point-to-Point Network: Mạng kết nối một cặp router.
Broadcast Network: Mạng có nhiều (hơn hai) router kết nối với nhau, có khả năng đặt địa chỉ để một thông báo chuyển đƣợc đến tất cả các router nối kết, gọi là thông báo broadcast. Các router lân cận nhau có thể đƣợc phát hiện tự động trên các mạng này bởi thông báo Hello của giao thức OSPF
Non-broadcast Network: Là các mạng có khả năng gắn kết nhiều router nhƣng lại không có khả năng thông báo broadcast. Các router lân cận nhau đƣợc
duy trì bằng cách sử dụng giao thức Hello của OSPF. Trong các mạng non- broadcast, các gói dữ liệu của giao thức OSPF đƣợc gửi multicast đến router lân cận.
Giao thức OSPF có thể chạy một trong hai chế độ trong các mạng non- broadcast: Thứ nhất là chế độ non-broadcast multi-access hay NBMA, tƣơng tự nhƣ hoạt động của OSPF trong mạng broadcast. Thứ hai là chế độ Point-to-MultiPoint, xem mạng non-broadcast nhƣ là một tập hợp của nhiều đƣờng link Point-to-Point. Việc chạy chế độ nào phụ thuộc vào chế độ hoạt động của OSPF trên mạng.
Neighboring Router: Là hai router có interface gắn chung vào một mạng. Mối quan hệ lân cận (neighboring router) đƣợc phát hiện, duy trì bởi giao thức Hello của OSPF.
Adjacency: Là mối quan hệ đƣợc hình thành bởi hai router lân cận trong các mạng broadcast và NBMA, dùng để trao đổi thông tin định tuyến. Không phải mọi cặp router lân cận - neighboring router - đều trở thành liền kề (adjacency).
Link state advertisement (LSA): Khối dữ liệu (gồm nhiều gói) mô tả trạng thái của router hay mạng. Với router, bao gồm trạng thái của các interface với các nút liền kề của nó. Mỗi LSA đƣợc thông báo loan truyền quảng bá đến toàn bộ miền định tuyến. Tập hợp các LSAs của tất cả các router và mạng hình thành lên cơ sở dữ liệu trạng thái liên kết của giao thức định tuyến OSPF.
Hello procotol: là một phần của giao thức OSPF đƣợc dùng để thiết lập và duy trì mối quan hệ lân cận giữa các router. Trong các mạng broadcast và NBMA nó còn đƣợc dùng để phát hiện các router lân cận và bầu chọn Designated Router và Backup Designated Router.
Flooding: Một dạng truyền dữ liệu trong giao thức OSPF từ một nút đến các nút lân cận theo cách quảng bá thông tin (làm tràn). Dùng để phân phối và đồng bộ hoá cơ sở dữ liệu trạng thái liên kết giữa các router OSPF.
Designated Router (DR): Là một dạng router trong các mạng broadcast và NBMA, dùng để phát sinh các LSA từ nó đến tất cả các router lân cận trong mạng. DR đƣợc bầu chọn qua giao thức Hello giữa các router lân cận. Trong một mạng
cần có ít nhất 2 router dạng DR. Các router này sinh ra để giảm bớt lƣu lƣợng truyền dữ liệu trên mạng và kích của cơ sở dữ liệu trạng thái liên kết.
Nhóm Microsoft TechNet [7] đƣa thêm một số thuật ngữ mô tả.
Internal router: Là một OSPF router có hai hay nhiều interface kết nối với các mạng bên trong một vùng OSPF. Tất cả các router trong vùng chia sẻ chung một cơ sở dữ liệu trạng thái mạng LSDB.
Area border router (ABR): Là một OSPF router có hai hay nhiều interface kết nối trực tiếp với các mạng thuộc hai hay nhiều vùng OSPF khác nhau. Phải có một interface của router này kết nối với vùng backbone; Do đó, một ABR luôn luôn là một backbone router, nhƣng ngƣợc lại backbone router không nhất thiết phải là ABR. Một ABR lƣu trữ nhiều LSDB, mỗi một LSDB dành cho một vùng, trong đó có một LSDB là dành cho vùng backbone.
Một ABR gửi lƣu lƣợng dữ liệu giữa vùng backbone và tất cả các vùng khác kết nối vào backbone bằng cách gửi các tuyến trong vùng đó đến backbone, và ngƣợc lại phân phối các tuyến cho backbone đến các vùng khác. Nhờ sự hoạt động ABR, vấn đề định tuyến vùng, hay định tuyến thứ bậc, đƣợc thực hiện.
Border router: Là router có ít nhất một interface kết nối đến vùng backbone và có các tuyến trong vùng backbone. Tất cả các internal router của vùng backbone và các ABR là các backbone router.
Autonomous system boundary router (ASBR): Thực hiện nhập thông tin định tuyến từ các nguồn bên ngoài và thông báo các đích bên ngoài đến toàn bộ hệ tự trị AS. Một ASBR trong hệ tự trị định tuyến OSPF có thể kết nối, trao đổi thông tin định tuyến với:
- Một ASBR trong hệ tự trị OSPF khác bằng cách kết nối hai hệ tự trị.
- Các nguồn không định tuyến OSPF (Non-OSPF), bằng cách kết nối giữa hệ tự trị của nó với nguồn ngoài sử dụng giao thức định tuyến khác (nhƣ RIP, IGRP…) Chỉ có vùng OSPF chuẩn mới có thể chứa ASBR. Mỗi router trong hệ tự trị OSPF có thể kết nối và đi đến các ASBR của chính AS đó.
Các Area: Trong một liên mạng định tuyến theo OSPF, một hệ tự trị AS đƣợc hình thành bởi một hay một tập hợp các vùng Area độc lập nhau. Mỗi vùng đƣợc định danh bởi một số 32 bit, đƣợc gọi là ID vùng (area ID).
- Vùng đƣợc tạo bởi một tập hợp logic các mạng, các router, và các liên kết. - Trong mỗi vùng còn chứa các router OSPF đặc biệt có khả năng liên thông các vùng lại với nhau.
- Mỗi vùng sử dụng một cơ sở dữ liệu để lƣu thông tin định tuyến.
Vùng chuẩn: Là vùng có thể tạo các tuyến sau trong hoạt động định tuyến: - Tuyến trong vùng (intra-area routes): Là các tuyến truyền vào bên trong của vùng OSPF cục bộ.
- Tuyến liên vùng (inter-area routes): Là các tuyến đƣợc truyền giữa các vùng OSPF. OSPF sử dụng tuyến tổng hợp để tạo ra các tuyến liên vùng.
- Tuyến bên ngoài (extranal routes): Là các tuyến đƣợc truyền từ các tuyến nguồn bên ngoài vào một hệ tự trị sử dụng giao thức định tuyến OSPF thông qua ASBR Router. Tuyến có nguồn từ bên ngoài có thể xuất phát từ một hệ tự trị định tuyến OSPF khác hoặc hệ tự trị định tuyến theo một giao thức khác.
LSDB trong một vùng lƣu các LSAs cho tuyến intra-area, các LSA tổng hợp cho các tuyến inter-area, và các LSA tuyến ngoài cho các tuyến External.
Vùng xương sống (backbone): Là một vùng chuẩn OSPF đƣợc đặt ở trung tâm một hệ tự trị định tuyến OSPF, tất cả các vùng OSPF khác đều kết nối đến vùng này đƣợc. Vùng OSPF backbone yêu cầu dành riêng định dạng ID là 0.0.0.0. Khi có nhiều vùng tồn tại trong hệ tự trị OSPF, thì vùng OSPF backbone đƣợc dùng để phân phối thông tin định tuyến đến tất cả các vùng khác.
Vùng chuyển tiếp (transi)t: Là một vùng OSPF chuẩn nhƣng không phải backbone (non-backbone) cho phép kết nối vùng OSPF khác với vùng OSPF backbone bằng cách sử dụng kết nối logic Point-to-Point, kết nối này còn đƣợc gọi là kết nối ảo.
Vùng cụt (stub): Là vùng OSPF vừa giống nhƣ vùng OSPF chuẩn, chấp nhật thông báo các tuyến trong vùng và ngoài vùng, nhƣng vừa không giống vùng chuẩn, không chấp nhận phân phối các tuyến bên ngoài từ hệ tự trị AS định tuyến khác. Các Internal OSPF router trong vùng stub dùng tuyến mặc định (0.0.0.0/0.0.0.0) đến
tất cả các đích nằm bên ngoài hệ tự trị AS. Trong vùng cụt (stub) chỉ có duy nhất một ABR routers kết nối vùng stub với toàn bộ phần còn lại của hệ tự trị.
Vùng totally stub: Là một dạng của vùng stub chỉ loan truyền các tuyến dạng intra-area routes và tuyến mặc định trong vùng; nó không chấp nhất hay thông báo các dạng tuyến còn lại. Các Internal OSPF router trong vùng totally stub dùng tuyến mặc định để gửi lƣu lƣợng đến router ABR trong vùng, và router ABR lại gửi chuyển tiếp đến các đích ra các vùng bên OSPF khác hay bên ngoài hệ tự trị AS.
Cơ sở dữ liệu định tuyến OSPF (OSPF database)
Mô tả chung về cở sở dữ liệu trạng thái LSDB (Link State Database)
Là tập hợp các thông tin dƣới dạng bảng dữ liệu, mô tả toàn bộ về các trạng thái của đƣờng liên kết của các router trong vùng hoặc trong toàn bộ hệ tự trị (nếu hệ tự trị chỉ có một vùng duy nhất).
Một liên kết là chỉ một cổng trên router đƣợc dùng để kết nối đến một router khác. Do vậy với một liên kết thƣờng có hai trạng thái (link state) : có hoặc không có liên kết giữa hai router. Cost – giá trị chi phí, là một số xác định đƣợc đặt cho một đƣờng liên kết, OSPF tính giá trị này dựa trên thuộc tính của đƣờng liên kết (băng thông, độ trễ, chi phí…). Giá trị này đƣợc coi nhƣ khoảng cách giữa hai router.
Một router OSPF nằm trong vùng sẽ thực hiện hai công việc: Thông báo trạng thái đƣờng liên kết của nó và chuyển tiếp các thông tin nó nhận đƣợc với các router lân cận, tập hợp lại tất cả các thông tin về trạng thái liên kết nhận đƣợc để xây dựng lên cơ sở dữ liệu trạng thái liên kết. Mọi router trong cùng một vùng sẽ có một cơ sở liệu trạng thái đƣờng liên kết giống nhau.
Duy trì cơ sở dữ liệu trạng thái
Mỗi router OSPF trong mạng đều thực hiện các thao tác sau đây để duy trì trạng thái chính xác thực tế:
- Phát thông báo Hello trên mọi liên kết theo định kỳ để kiểm tra trạng thái đƣờng liên kết. Thƣờng xuyên nhận thông báo trạng thái liên kết từ các router lân cận.
- Nếu phát hiện có thay đổi: thêm hoặc mất đƣờng liên kết, thì lập tức phát thông báo trạng thái LSA đến các router lân cận khác trừ router mà nó nhận đƣợc thông báo.
Chức năng của cơ sở dữ liệu trạng thái liên kết:
- Đƣợc dùng làm dữ liệu cho việc tính toán tạo ra cây SPF theo giải thuật Dijkstra. Thuật toán SPF tính toán chi phí dựa trên cost của các đƣờng liên kết để tạo ra cây SPF phản ánh trạng thái đƣờng đi từ nút gốc là router OSPF có cơ sở dữ liệu trạng thái liên kết đến các mạng khác với chi phí thấp nhất.
- Phản ánh trạng thái hoạt động của tất cả các đƣờng liên kết trong toàn bộ vùng hay hệ tự trị AS của nó
c. Hoạt động định tuyến OSPF:
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
…
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.