Giáo trình khóa học BSCI Chƣơng 3 - OSPF
42
CHƢƠNG 3: OSPF
3.1. Tổng quan
OSPF là giao thức định tuyến dạng link-state thường được dùng để triển khai trên hệ
thống mạng phức tạp. OSPF tự xây dựng cơ chế để đảm bảo độ tin cậy chứ không sử dụng các
giao thức chuyển vận như TCP để đảm bảo độ tin cậy.
OSPF là giao thức định tuyến dạng classless nên có hỗ trợ VLSM và discontiguous
network. OSPF sử dụng địa chỉ multicast 224.0.0.5 (all SPF routers) và 224.0.0.6 (DR và
BDR routers) để gửi các thông điệp Hello và Update. OSPF còn có khả năng hỗ trợ chứng
thực dạng plain text và dạng MD5.
OSPF sử dụng giải thuật Dijkstra để xây dựng bảng định tuyến. Đây là giải thuật xây dựng
các đường đi ngắn nhất SPT (shortest-path tree) để đi đến đích. Thông điệp quảng cáo LSA
mang thông tin của router và trạng thái các láng giềng lân cận. Dựa trên các thông tin học
được khi trao đổi các thông điệp LSA, OSPF sẽ xây dựng topology mạng.
3.2. Các loại gói tin OSPF
OSPF có 5 loại gói tin là Hello, Database Description, Link State Request, Link State
Update, Link State Acknowledge.
- Hello: gói tin Hello dùng để phát hiện trao đổi thông tin của các router cận kề.
- Database Description: gói tin này dùng để chọn lựa router nào sẽ được quyền trao
đổi thông tin trước (master/slave).
- Link State Request: gói tin này dùng để chỉ định loại LSA dùng trong tiến trình
trao đổi các gói tin DBD.
- Link State Update: gói tin này dùng để gửi các gói tin LSA đến router cận kề yêu
cầu gói tin này khi nhận thông điệp Request.
- Link State Acknowledge: gói tin này dùng để báo hiệu đã nhận gói tin Update.
Giáo trình khóa học BSCI Chƣơng 3 - OSPF
43
Group Membership
Mô tả quan hệ thành viên nhóm multicast
OSPF (MOSPF).
7
NSSA
Mô tả các tuyến đường đến các đích ở xa.
8
Unused
Không sử dụng.
9 – 11
Opaque
Được sử dụng để tính toán các tuyến đường sử
dụng cho kỹ thuật quản lý lưu lượng của công
nghệ MPLS.
3.4. Khái niệm Vùng trong OSPF
OSPF hỗ trợ hai mức độ phân cấp qua khái niệm vùng (area). Mỗi vùng là một số 32 bit
biểu diễn ở định dạng IP (vùng 0.0.0.0) hay dạng thập phân (vùng 0). Vùng 0 là vùng trung
tâm. Tất cả các vùng khác đều phải kết nối trực tiếp với vùng 0 hay kết nối qua virtual link.
OSPF có một số loại vùng sau: normal area, stub area, totally stubby area, not-so-stubby area
(NSSA), totally not-so-stubby area.
Giáo trình khóa học BSCI Chƣơng 3 - OSPF
44 3.4.1. Normal Area
Mặc định, normal area mang những đặc tính sau:
- Nhận các thông tin tóm tắt (summary LSA) từ các vùng khác.
- Nhận các thông tin từ bên ngoài (external LSA).
- Nhận các thông tin mặc định từ bên ngoài (external default LSA).
Xét ví dụ sau, vùng 1 và vùng 2 là các vùng bình thường, các route IGRP được phân phối
router ospf 1
area 1 stub
3.4.3. Totally Stubby Area
Totally Stubby Area là vùng bị hạn chế nhất. Router trong vùng loại này chỉ tin tưởng vào
các thông tin tóm tắt mặc định (default summary route) từ ABR. Không tồn tại thông tin từ
bên ngoài của OSPF (external route) hay thông tin tóm tắt (summary route) trong bảng định
tuyến. Đây là một mở rộng của vùng stub nên mang đầy đủ các đặc tính của vùng stub. Vùng
Totally Stubby mang những đặc tính là không nhận các thông tin tóm tắt (summary LSA),
Giáo trình khóa học BSCI Chƣơng 3 - OSPF
46
không nhận các thông tin từ bên ngoài (external LSA). Vùng Totally Stubby chỉ nhận các
thông tin mặc định (default route) và xem như là các thông tin tóm tắt (summary route).
Trong hình dưới, vùng 1 không nhận bất cứ thông tin tóm tắt (summary route) và các
thông tin từ bên ngoài (external route). Chỉ có các route mà vùng 1 nhận được từ các vùng lân
cận - intra area (các route được đánh dấu O trong bảng định tuyến) và các route mặc định
(default route) mới được chấp nhận tại ABR (các route được đánh dấu O IA trong bảng định
tuyến).
Chú ý rằng sự khác nhau giữa vùng stubby và vùng totally stubby là việc OSPF không tạo
ra các summary LSA trong vùng totally stubby. Lệnh no-summary được dùng để tránh việc
gửi các summary LSA trong area 1.
Cấu hình ABR (Router F) tạo Area 1 là vùng Totally Stubby
RouterF#
router ospf 1
area 1 stub no-summary
RouterG#
router ospf 1
area 1 stub
RouterH#
router ospf 1
Link State ID: 10.10.10.0 (External Network Number)
Advertising Router: 141.108.1.21
LS Seq Number: 80000001
Checksum: 0x4309
Length: 36
Network Mask: /24
Giáo trình khóa học BSCI Chƣơng 3 - OSPF
48
Metric Type: 2 (Larger than any link state path)
TOS: 0
Metric: 20
Forward Address: 141.108.1.21
External Route Tag: 0
Bit P được bật lên để báo hiệu chuyển đổi LSA Type 7 thành LSA Type 5.
- Nếu bit P = 0, router NSSA ABR sẽ không chuyển đổi thành LSA Type 5, điều này
xảy ra khi router NSSA ASBR cũng là router NSSA ABR.
- Nếu bit P = 1, router NSSA ABR (nếu có nhiều router loại này thì sẽ chọn router có
router ID nhỏ nhất) thì sẽ chuyển đổi LSA Type 7 thành LSA Type 5.
P là viết tắt của Propagation. Router ABR sẽ ra quyết định dựa trên giá trị của bit này.
Cấu hình NSSA
RouterF#
router ospf 1
area 1 nssa
RouterG#
router ospf 1
area 1 nssa
RouterH#
router ospf 1
area 1 nssa
RouterH#
router ospf 1
area 1 nssa
RouterI#
router ospf 1
area 1 nssa
Default Summary Route
Khi định nghĩa một vùng NSSA làm totally stubby area, các router NSSA ABR sẽ tạo ra
default summary route. Nếu NSSA vùng không định nghĩa làm totally stubby area, router
NSSA ABR sẽ không tạo ra default summary route.
Giáo trình khóa học BSCI Chƣơng 3 - OSPF
50 Cấu hình tạo Default Summary Route vào NSSA Area
RouterA#
router ospf 1
area 1 nssa no-summary
3.5. OSPF Media Types
Có 4 loại môi trường truyền dẫn OSPF là môi trường multiaccess, point-to-point,
nonbroadcast multiaccess và demand circuit.
3.5.1. Môi trƣờng Multiaccess
Môi trường multiaccess là môi trường truyền dẫn như ethernet, fast ethernet, gigabit
ethernet, FDDI. Trong môi trường mạng broadcast, OSPF sẽ tiến hành bầu chọn DR, BDR để
giảm thiểu lưu lượng trên đoạn mạng.
Hình 3.4 - OSPF chạy trên môi trƣờng multiaccess
Router A được chọn làm DR vì có độ ưu tiên cao nhất. Router B được chọn làm BDR, B
và C có độ ưu tiên bằng nhau nên BDR được chọn dựa trên router ID cao nhất là router B.
Các router sẽ thiết lập quan hệ với DR và BDR.
Giáo trình khóa học BSCI Chƣơng 3 - OSPF
52
Một cách khác để mô phỏng mô hình broadcast là sử dụng lệnh neighbor, cần cấu hình
lệnh này lên hub router là router A. Router A cần được cấu hình có độ ưu tiên cao để luôn là
DR.
Giáo trình khóa học BSCI Chƣơng 3 - OSPF
53 Cấu hình lệnh neighbor trên Hub Router
RouterA#
interface serial 0
encapsulation frame-relay
ip address 141.108.1.1 255.255.255.0
ip ospf priority 10
!
router ospf 1
neighbor 141.108.1.2
neighbor 141.108.1.3
neighbor 141.108.1.4
neighbor 141.108.1.5
b. Mô hình Point-to-Point
Trong mô hình này, mỗi PVC phải được định nghĩa là các point-to-point subinterface với
các subnet khác nhau. Khi cấu hình, không cần chỉ định network type vì các subinterface mặc
định có network type là point-to-point. Lợi ích của mô hình này là các VC (virtual circuit) có
thể cấu hình trên cổng giao tiếp. Nhược điểm là lãng phí nhiều không gian địa chỉ cho mỗi kết
nối point to point subinterface. Hơn nữa kích thước của các LSA tạo bởi router A sẽ lớn hơn
rất nhiều vì phải chứa Type 3 stub link cho mỗi kết nối point to point.
Cấu hình Point-to-Point Subinterface
neighbor 141.108.1.2
neighbor 141.108.1.3
neighbor 141.108.1.4
neighbor 141.108.1.5
3.6. OSPF Demand Circuit
Ban đầu quan hệ liền kề adjacency được thiết lập để trao đổi thông tin. Sau một khoảng
thời gian sẽ thiết lập lại quan hệ adjacency để trao đổi thông tin. Điều này rất hữu dụng để
giảm thiểu các chi phí không cần thiết nhằm sử dụng hiệu quả, tiết kiệm. Ví dụ khi sử dụng
công nghệ ISDN, mỗi khi kết nối ISDN hoạt động (up) thì cần trả chi phí, khi sử dụng
demand circuit sẽ giảm thiểu chi phí.
Các đặc tính của demand circuit:
1. Ngăn chặn các gói tin Hello.
Giáo trình khóa học BSCI Chƣơng 3 - OSPF
55
2. Ngăn chặn sự làm tươi các gói LSA.
Chỉ với network type là point to multipoint thì mới có tính năng định kỳ ngăn chặn các gói
tin Hello. Đối với network type khác gói tin Hello vẫn gửi được qua cổng giao tiếp. Sự làm
tươi các gói LSA sẽ không xảy ra định kỳ sau 30 phút khi cấu hình demand circuit. Có hai
tình huống mà các LSA sẽ được gửi đi:
1. Khi có sự thay đổi topology mạng.
2. Khi router trong OSPF domain không hiểu được demand circuit.
Ở trường hợp đầu không có gì đáng nói vì router phải gửi các thông tin LSA mới để cập
nhật cho các router cận kề về sự thay đổi topology mạng. Ở trường hợp hai, có một số cách để
giải quyết tình huống này.
Hình 3.7 - OSPF Demand Circuit
Ví dụ Indication LSA
RouterA#show ip ospf database asbr-summary
Adv Router is not-reachable
thời gian này là 10 giây. Trong môi trường non-broadcast như Frame Relay hay ATM, khoảng
thời gian này là 30 giây.
Gói tin hello sẽ định kỳ gửi đi đến tất cả các cổng giao tiếp của router có chạy OSPF. Khi
router phát hiện thấy có router láng giềng nhờ vào gói tin hello nhận được, truyền thông hai
chiều sẽ được thiết lập. Trong môi trường broadcast và NBMA, gói tin hello còn được sử
dụng để chọn ra các router chỉ định DR/BDR.
Sau khi thiết lập được truyền thông hai chiều, sẽ thiết lập quan hệ liền kề adjacency, việc
ra quyết định thiết lập quan hệ adjacency dựa trên trạng thái của router láng giềng và kiểu
công nghệ mạng được dùng để kết nối hai router. Nếu kiểu network là broadcast hay non-
broadcast, quan hệ adjacency sẽ được thiết lập giữa các router chỉ định DR/BDR. Các trường
hợp còn lại, quan hệ adjacency sẽ được thiết lập giữa các router láng giềng. Để thiết lập quan
hệ adjacency, đầu tiên router sẽ tiến hành đồng bộ hoá cơ sở dữ liệu bằng cách gửi các gói tin
Giáo trình khóa học BSCI Chƣơng 3 - OSPF
57
DBD mô tả cơ sở dữ liệu cho nhau. Tiến trình này gọi là tiến trình trao đổi cơ sở dữ liệu
database exchange process. Khi đó, hai router sẽ thiết lập quan hệ master/slaver. Mỗi gói tin
mô tả cơ sở dữ liệu được gửi đi bởi master sẽ chứa số tuần tự đánh dấu gói tin. Slaver sẽ báo
nhận gói tin này bằng cách gửi gói tin chứa số tuần tự này để hồi đáp.
Router sẽ có các trạng thái sau khi thiết lập quan hệ liền kề adjacency: Down State,
Attempt State, Init State, 2-way State, Exstart State, Exchange State, Loading State, Full
State.
Hình 3.8 - Các trạng thái thiết lập quan hệ trong OSPF
a. Down State
Router không nhận được các thông tin về router cận kề.
b. Attempt State
Trạng thái này chỉ tồn tại trong mạng NBMA. Ở trạng thái này, router sẽ không nhận được
các thông tin từ router cận kề nhưng vẫn nỗ lực tạo ra quan hệ với router cận kề bằng cách
Ở trạng thái này, router mô tả trạng thái cơ sở dữ liệu link-state thông qua gói tin DBD.
Mỗi gói tin DBD được đánh số tuần tự để phân biệt. Tại mỗi thời điểm chỉ cho phép gửi đi
một gói tin DBD. Gói tin Request cũng được gửi đi để yêu cầu cập nhật các gói tin LSA.
R2#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
Giáo trình khóa học BSCI Chƣơng 3 - OSPF
59
1.1.1.1 1 EXCHANGE/DR 0:00:30 10.10.3.1 Ethernet0
g. Loading State
Ở trạng thái này, gói tin LS Request được gửi đi để yêu cầu trạng thái mới nhất của LSA.
Router R1 gửi gói tin LS Request để nhận được trạng thái mới nhất của LSA.
R2#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
1.1.1.1 1 LOADING/DR 0:00:28 10.10.3.1 Ethernet0
h. Full State
Sau khi nhận được gói tin LS Update, cơ sở dữ liệu của hai router đã đồng bộ hoá và
router sẽ chuyển sang trạng thái Full.
R2#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
1.1.1.1 1 FULL/BDR 0:00:26 10.10.3.1 Ethernet0