Nếu hai Router chia sẻ một liên kết dữ liệu cùng chấp nhận các tham số được chỉ ra trong gói Hello, chúng sẽ trở thành các Neighbor của nhau.. Mỗi Router nhận một LSA từ một Neighbor, gh
Trang 1ĐỒ ÁN HỆ THỐNG MẠNG
Đề tài:
TÌM HIỂU VÀ NGUYÊN CỨU GIAO
THỨC OSPF CHƯƠNG 3 GIAO THỨC OSPF
3.1 Giới thiệu chung về OSPF
OSPF (Open Shortest Path First) được phát triển bởi IETF (Internet Engineering Task Force – nhóm đặc trách kĩ thuật internet) OSPF là giao thức trạng thái liên kết sử dụng thuật toán SPF (Shortest Path First) của Dijktra và là một giao thức mở tức nó hoàn toàn mở đối với công cộng , không có tính độc quyền
Ưu điểm chính của OSPF so với các giao thức vector khoảng cách là khả năng đáp ứng nhanh theo sự thay đổi của hệ thống mạng, hoạt động tốt trong các mạng cỡ lớn và ít bị ảnh hưởng đối với các thông tin định tuyến tồi
Một số đặc điểm khác của OSPF là:
Trang 2 Sử dụng chi phí (cost) làm thông số định tuyến để chọn đường đi trong mạng
Thực hiện cập nhật khi có mạng có sự thay đổi
Mọi Router sử dụng sơ đồ cấu trúc mạng của riêng nó để chọn đường
Hỗ trợ CIDR (Classless Interdomain Routing) và VLSM (Variable length
subnetmask)
Hoạt của OSPF được mô tả một cách tổng quát như sau:
1 Các Router OSPF gửi các gói Hello ra tất cả các giao diện chạy OSPF Nếu hai Router chia sẻ một liên kết dữ liệu cùng chấp nhận các tham số được chỉ
ra trong gói Hello, chúng sẽ trở thành các Neighbor của nhau
2 Adjacency có thể coi như các liên kết ảo điểm - điểm, được hình thành giữa các Neighbor Việc hình thành một Adjacency phụ thuộc vào các yếu tố như loại Router trao đổi các gói Hello và loại mạng sử dụng để các gói Hello truyền trên đó
3 Sau khi các Adjacency được hình thành, mỗi Router gửi các LSA (Link State Advertisement) qua các Adjacency Các LSA mô tả tất cả các liên kết của Router và trạng thái của các liên kết
4 Mỗi Router nhận một LSA từ một Neighbor, ghi LSA vào cơ sở dữ liệu trạng thái liên kết của nó và gửi bản copy tới tất cả các Neighbor khác của
nó
5 Bằng cách trao đổi các LSA trong một Area, tất cả các Router sẽ xây dựng
cơ sở dữ liệu trạng thái liên kết của mình giống với các Router khác
Trang 36 Khi cơ sở dữ liệu hoàn chỉnh, mỗi Router sử dụng giải thuật SPF để tính toán đường đi ngắn nhất (đường đi có cost thấp nhất) tới tất cả các đích đã biết Sơ đồ này gọi là cây SPF
7 Mỗi Router xây dựng bảng định tuyến từ cây SPF của nó
3.2 Một số khái niệm sử dụng trong OSPF
3.2.1 Láng giềng (Neighbor) và mối quan hệ thân mật (Adjacency)
Trước khi gửi các LSA, các Router OSPF phải khám phá các Neighbor của nó và thiết lập Adjacency với chúng Danh sách các Neighbor được ghi trong bảng các Neighbor cùng với các liên kết (hoặc giao diện) nối với mỗi Neighbor và các thông tin cần thiết khác
3.2.2 Giao thức Hello
Giao thức Hello thực hiện các chức năng sau:
Dùng để khám phá các Neighbor
Dùng để quảng cáo các tham số mà hai Router phải chấp nhận trước khi chúng trở thành các Neighbor của nhau
Đảm bảo thông tin hai chiều giữa các Neighbor
Các gói Hello hoạt động như các Keepalive giữa các Neighbor
Trang 4 Dùng để bầu cử DR và BDR trong mạng Broadcast và Nonbroadcast Multiaccess (NBMA)
Các Router OSPF gửi các gói Hello định kỳ ra các giao diện OSPF Chu kỳ gửi được gọi là Hello Interval và được cấu hình trong cơ sở dữ liệu giao diện Nếu một Router không nhận được gói Hello từ Neighbor trong một khoảng thời gian gọi là Router Dead Interval, nó sẽ khai báo Neighbor này bị Down
Khi một Router nhận một gói Hello từ một Neighbor, nó sẽ kiểm tra xem các trường Area ID , Authentication, Network Mask, Hello Interval, Router Dead Interval và Option trong gói Hello có phù hợp với các giá trị đã được cấu hình ở giao diện đang nhận hay không Nếu không phù hợp, gói sẽ bị huỷ và Adjacency không được thiết lập Nếu tất cả phù hợp, gói Hello được khai báo là hợp lệ Nếu Router ID của Router gốc đã có trong bảng Neighbor của giao diện nhận, Router Dead Interval được reset Nếu không, nó ghi Router ID này vào bảng Neighbor
Khi một Router gửi một gói Hello, gói Hello sẽ chứa Router ID của tất cả các Neighbor cần thiết trong liên kết mà gói truyền đi Nếu một Router nhận được một gói Hello hợp lệ có chứa Router ID của nó, Router này sẽ biết rằng thông tin hai chiều đã được thiết lập
3.2.3 Các loại mạng
OSPF định nghĩa năm loại mạng:
Trang 51 Mạng điểm - điểm
2 Mạng quảng bá
3 Mạng đa truy nhập không quảng bá
4 Mạng điểm – đa điểm
5 Các liên kết ảo
Mạng điểm - điểm: là mạng nối hai Router với nhau Các Neighbor hợp lệ trong
mạng điểm - điểm luôn thiết lập Adjacency Địa chỉ đích của các gói OSPF trong mạng này luôn là địa chỉ lớp D 224.0.0.5 gọi là AllSPF Routers
Mạng quảng bá: Ví dụ như Ethernet, Token Ring, FDDI
Là mạng có khả năng kết nối nhiều hơn hai thiết bị và các thiết bị này đều có thể nhận các gói gửi từ một thiết bị bất kì trong mạng Các Router OSPF trong mạng quảng bá sẽ bầu cử DR và BDR Các gói Hello được phát multicast với địa chỉ đích là 224.0.0.5 ( AllSPF Routers) Ngoài ra các gói xuất phát từ DR và BDR cũng được phát multicast với địa chỉ này Các Router khác sẽ phát multicast các gói cập nhật và xác nhận trạng thái liên kết với địa chỉ lớp D là: 224.0.0.6 gọi là All DRouters
Mạng NBMA (Nonbroadcast - Multiaccess): ví dụ như X25, Frame relay, ATM
Là mạng có khả năng kết nối nhiều hơn hai Router nhưng không có khả năng Broadcast Tức là một gói gửi bởi một Router trong mạng không được nhận bởi tất
cả các Router khác của mạng Các Router trong NBMA bầu cử DR và BDR Các gói OSPF được truyền theo kiểu unicast
Trang 6Mạng điểm – đa điểm: là trường hợp đặc biệt của NBMA Nó có thể coi là một tập
hợp các kết nối điểm - điểm Các Router trong mạng không phải bầu cử DR và BDR Các gói OSPF được truyền theo kiểu multicast
Các liên kết ảo: là một cấu trúc đặc biệt được Router hiểu như là các mạng điểm -
điểm không đánh số Các gói OSPF được phát unicast trên các liên kết ảo
3.2.4 DR và BDR
Các mạng đa truy nhập tồn tại hai vấn đề sau liên quan đến quá trình tràn lụt LSA như sau:
1 Thông tin của một Adjacency giữa các Router sẽ tạo ra nhiều LSA không cần thiết Nếu một mạng đa truy nhập có n Router thì có thể có n(n-1)/2
Adjacency (Hình 3.1) Mỗi Router sẽ tràn lụt n-1 LSA cho các Neighbor của
nó cộng với một LSA cho mạng dẫn đến có n(n-1) + 1 = n2 LSA được tạo ra trong mạng
Trang 7A B C
D
E B
C
A
2 Quá trình tràn lụt có thể gây xung đột Một Router gửi một LSA tới tất cả các Neighbor của nó Các Neighbor này lại gửi bản copy của LSA nhận được tới các Neighbor của mình dẫn đến tạo ra nhiều bản copy của LSA trong mạng
Để tránh các vấn đề trên, DR được bầu ra trong mạng đa truy nhập DR có các nhiệm vụ sau:
Mô tả mạng đa truy nhập và các Router gắn vào mạng cho phần còn lại của liên mạng
Quản lý quá trình tràn lụt trong mạng đa truy nhập
Mỗi Router trong mạng thiết lập Adjacency với DR (hình 3.2) Chỉ có DR gửi các
LSA tới phần còn lại của liên mạng Một Router có thể là DR đối với mạng này
Hình 3.1
Trang 8nhưng không là DR đối với mạng khác Nói cách khác DR chỉ là một đặc tính của giao diện của Router, không phải toàn bộ Router
D
B
C
A ( D R )
DR đại diện cho mạng đa truy nhập Các Router khác chỉ thiết lập Adjacency với
DR
Nếu DR bị hỏng, một DR mới phải được bầu ra Các Adjacency mới phải được thiết lập, các Router phải đồng bộ cơ sở dữ liệu của chúng với DR mới Trong khi các quá trình này diễn ra, mạng sẽ không khả dụng để truyền gói
Hình 3.2
Trang 9Để tránh vấn đề này, BDR được bầu cử Tất cả các Router thiết lập Adjacency với
cả DR và BDR DR và BDR cũng có thể thiết lập Adjacency với nhau Nếu DR hỏng, BDR sẽ trở thành DR mới
Tóm lại việc bầu cử diễn ra như sau: Khi một Router OSPF được kích hoạt, nó tìm kiếm các Neighbor của nó và kiểm tra DR và BDR Nếu DR và BDR đã tồn tại, Router sẽ chấp nhận chúng Nếu không có BDR, một cuộc bầu cử BDR được tiến hành và Router có Priority cao nhất sẽ trở thành BDR Nếu có nhiều hơn một Router có cùng Priority cao nhất, Router có Router ID cao nhất sẽ trở thành BDR Nếu chưa có DR, BDR sẽ trở thành DR và cuộc bầu cử BDR mới lại được thực hiện
Chú ý: Priority có thể ảnh hưởng đến quá trình bầu cử DR và BDR nhưng không
ảnh hưởng đến các DR và BDR đã được bầu cử Nếu có một Router có Priority cao hơn các DR và BDR đã được kích hoạt, nó cũng không thể thay thế các DR và BDR này
3.3 Giao diện OSPF
3.3.1 Cấu trúc dữ liệu giao diện
Các thành phần của cấu trúc số liệu giao diện bao gồm:
Địa chỉ IP và mặt nạ: là địa chỉ và mặt nạ được cấu hình cho giao diện
Trang 10Area ID: là Area chứa giao diện
Process ID: dùng để phân biệt các tiến trình OSPF chạy trên một Router
Router ID: dùng để nhận dạng Router
Network type: là loại của mạng nối với giao diện
Cost: là cost của các gói đi ra từ giao diện Cost là một Metric OSPF, được diễn tả
bởi 16 bit nguyên không dấu có giá trị từ 1 đến 65535
Inf Trans Delay: là số giây các LSA ra khỏi giao diện với tuổi bị tăng lên
State: là trạng thái chức năng của giao diện được trình bày ở phần sau
Router Priority: 8 bit nguyên không dấu này có giá trị từ 0 đến 255 dùng để bầu cử
DR và BDR
DR: là DR của mạng mà giao diện gắn vào DR này được ghi bởi Router ID của nó
và địa chỉ của giao diện gắn vào mạng của DR
Trang 11BDR: là BDR của mạng mà giao diện gắn vào BDR này được ghi bởi Router ID
của nó và địa chỉ của giao diện gắn vào mạng của BDR
Hello Interval: là khoảng thời gian tính theo giây giữa các lần truyền các gói Hello
trên giao diện
Router Dead Interval: là khoảng thời gian tính theo giây mà Router sẽ chờ để nghe
các gói Hello từ một Neighbor trước khi nó coi rằng Neighbor này bị Down
Wait Time: là khoảng thời gian Router sẽ chờ DR và BDR được quảng cáo trong
gói tin Hello trước khi bắt đầu lựa chọn DR và BDR Chu kì Wait Time bằng Router Dead Interval
Rxm Interval: là khoảng thời gian tính theo giây Router sẽ chờ giữa các lần truyền
lại của các gói OSPF chưa được xác nhận
Hello Timer: Là bộ định thời được lập bằng Hello Interval Khi nó hết hiệu lực, gói
Hello được truyền lại từ giao diện
Neighboring Routers: Danh sách tất cả các Neighbor hợp lệ (có gói Hello được
nhìn thấy trong thời gian Router Dead Interval)
Trang 12Autype: Mô tả loại nhận thực sử dụng trong mạng Autype có thể là Null (không
nhận thực), Simple Password, hoặc Cryptographic (Mesage digest)
Authentication Key: Nếu chế độ nhận thực là Simple password, Au key là 64 bit
Nếu chế độ nhận thực là Cryptographic, Au key là Message digest Chế độ Cryptographic cho phép cấu hình nhiều khoá trên một giao diện
3.3.2 Các trạng thái giao diện
Một giao diện OSPF sẽ chuyển đổi qua một số trạng thái khác nhau trước khi nó đủ khả năng làm việc Các trạng thái đó bao gồm: Down, Point to Point, Waiting, DR, Backup, DRother, và loopback
Point
To
Point
Election
DR
Backup
DRother
Loopback
IE3
IE2
IE2
IE5
IE6
IE2
IE3
IE4
IE3
IE7
IE10
IE8
IE10
IE9 IE10
IE3
IE3
IE3
IE2
IE1
IE1
IE2
Hình 3.3 Sự chuyển đổi giữa các trạng thái giao diện OSPF
Trang 13Biến cố vào Ý nghĩa các biến cố
IE1
IE2
IE3
IE4
IE5
IE6
Các giao thức mức thấp chỉ báo rằng giao diện mạng đã sẵn sàng hoạt động
Các giao thức mức thấp chỉ báo rằng giao diện mạng chưa sẵn sàng hoạt động
Ngưòi quản lý mạng hoặc các giao thức mức thấp hơn chỉ ra rằng giao diện được loop up
Người quản lý mạng hoặc các giao thức mức thấp hơn chỉ ra rằng giao diện được loop down
Gói Hello nhận được chỉ ra rằng Neighbor gốc (Neighbor gửi gói Hello này) muốn trở thành DR hoặc BDR và trong mạng chưa có BDR
Wait timer đã hết hiệu lực
Trang 14IE7
IE8
IE9
IE10
Router được bầu cử là DR trong mạng này
Router được bầu cử là BDR trong mạng này
Router không được bầu cử là DR hoặc BDR trong mạng này
Một thay đổi xảy ra trong tập các Neighbor hợp lệ của mạng Thay đổi này có thể là:
1 Thiết lập kết nối hai chiều với một Neighbor
2 Mất kết nối hai chiều với một Neighbor
3 Nhận một gói Hello chỉ ra rằng Neighbor gốc muốn trở thành DR hoặc BDR
4 Nhận được gói Hello từ DR chỉ ra rằng Router này không muốn làm DR nữa
5 Nhận được gói Hello từ BDR chỉ ra rằng Router này không muốn làm BDR nữa
6 Thời gian Router Dead Interval kết thúc mà không nhận được gói Hello từ DR hoặc BDR
Trang 15Down: Đây là trạng thái giao diện đầu tiên Ở trạng thái này giao diện không làm
việc Tất cả các tham số của giao diện được lập bằng giá trị ban đầu và không có lưu lượng được truyền hoặc nhận trên giao diện
Point to Point: Trạng thái này chỉ thích hợp với các giao diện kết nối tới các mạng
Point to Point, Point to Multipoint và Virtual Link Khi giao diện ở trạng thái này,
nó đã đủ khả năng làm việc Nó sẽ bắt đầu gửi các gói Hello và thiết lập Adjacency với Neighbor
Waiting: Trạng thái này chỉ thích hợp với các giao diện nối tới các mạng Broadcast
và NBMA Khi chuyển sang trạng thái này, nó bắt đầu gửi và nhận các gói Hello
và lập Wait timer Router sẽ cố gắng xác định DR và BDR trong trạng thái này
DR: Ở trạng thái này, Router là DR và sẽ thiết lập Adjacency với các Router khác
trong mạng đa truy nhập
Backup: Ở trạng thái này, Router là BDR và sẽ thiết lập Adjacency với các Router
khác
DRother: Ở trạng thái này, Router không là DR hay BDR Nó sẽ thiết lập
Adjacency với chỉ DR và BDR trong khi vẫn theo dõi tất cả các Neighbor khác trong mạng
Trang 16Loopback: Ở trạng thái này, giao diện được loopback bằng phần mềm hoặc phần
cứng Mặc dù các gói không thể truyền, địa chỉ giao diện vẫn được quảng cáo trong Router LSA để các gói kiểm tra có thể tìm đường tới giao diện
3.4 Neighbor OSPF
3.4.1 Cấu trúc dữ liệu Neighbor
Các thành phần của cấu trúc dữ liệu Neighbor là:
Neighbor ID: là Router ID của Neighbor
Neighbor IP address: là địa chỉ IP của giao diện nối tới mạng của Neighbor Khi
một gói OSPF được truyền unicast tới Neighbor, địa chỉ này sẽ là địa chỉ đích
Area ID: Để hai Router trở thành các Neighbor của nhau, Area ID trong gói Hello
nhận được phải phù hợp với Area ID của giao diện nhận
Interface: là giao diện gắn vào mạng chứa Neighbor
Neighbor Priority: là Router Priority của Neighbor được chỉ ra trong gói Hello
Trang 17State: là trạng thái chức năng của Neighbor sẽ được trình bày ở phần sau
Poll Interval: Giá trị này chỉ sử dụng đối với các Neighbor trong mạng NBMA Vì
các Neighbor không thể được tự động khám phá trong mạng NBMA nếu các Neighbor này ở trạng thái Down, do vậy gói Hello sẽ được gửi tới các Neighbor sau mỗi khoảng thời gian nhất định Khoảng thời gian này gọi là Poll Interval
Neighbor Options: là các khả năng OSPF tuỳ chọn được hỗ trợ bởi Neighbor Các
tuỳ chọn này được trình bày ở phần sau
Inactivity Timer: là Timer có chu kỳ là Router Dead Interval Timer được reset khi
nhận được gói Hello từ Neighbor Nếu Inactivity Timer hết hiệu lực mà chưa nhận được gói Hello, Neighbor sẽ được khai báo là Down
Designated Router: Địa chỉ này chứa trong trường DR của gói Hello
Backup Designated Router: Địa chỉ này chứa trong trường BDR của gói Hello
Master/Slave: Quan hệ chủ-tớ (được thoả thuận trong trạng thái Exstart) thiết lập
Neighbor nào sẽ điều khiển việc đồng bộ cơ sở dữ liệu
DD Sequence Number: là số trình tự của gói Database Description (DD) đang được
gửi tới Neighbor