OSPF là từ viết tắt của cụm từ Open Shortest Path First. Đây là giao thức định tuyến nội, tức là được sử dụng trong phạm vi một khu vực hay một hệ thống mạng.
OSPF là giao thức định tuyến link – state được dùng phổ biến trong hệ thống mạng của các doanh nghiệp. Vậy giao thức OSPF là gì? Cách thức hoạt động của nó như thế nào? Mời bạn cùng tìm hiểu trong bài tổng hợp sau nhé.
Giao thức OSPF là gì ?
OSPF là từ viết tắt của cụm từ Open Shortest Path First. Đây là giao thức định tuyến nội, tức là được sử dụng trong phạm vi một khu vực hay một hệ thống mạng.
Giao thức OSPF hoạt động dựa vào thuật toán link state routing. Theo đó, mỗi bộ định tuyến sẽ chứa các thông tin của tất cả tên miền. Dựa vào những thông tin này, OSPF sẽ xác định quãng đường ngắn nhất. Điều này có nghĩa, mục tiêu chính của định tuyến là tìm hiểu về tuyến đường.
OSPF tìm hiểu toàn bộ bộ định tuyến cùng các mạng con có trong hệ thống mạng. Các bộ định tuyến sẽ chứa thông tin về mạng giống nhau. Chúng tiến hành tìm hiểu thông tin thông qua hoạt động gửi Link State Advertisements (LSA). Các LSA chứa thông tin về tất cả bộ định tuyến, mạng con, kể cả hệ thống mạng khác. Khi LSA bị đầy, giao thức OSPF sẽ thực hiện lưu trữ thông tin vào cơ sở dữ liệu có trạng thái liên kết (LSDB), với mục đích là chứa thông tin các bộ định tuyến một cách đồng nhất trong từng LSDB.
Cách thức hoạt động của giao thức định tuyến OSPF
Một Router chạy bằng giao thức OSPF đều trải qua 4 bước:
1. Bước 1: Chọn Router-ID
Giao thức OSPF muốn hoạt động thì phải tạo ra một định danh gọi là Router-ID, với định dạng tương tự như địa chỉ IP.
Có 2 cách tạo Router-ID:
Cách 1: Router tự tạo
Router xem xét interface nào có IP cao nhất thì tự động lấy địa chỉ IP đó làm Router-ID.
Ví dụ: Router có các interface với IP như sau
f0/0=10.0.0.1
f0/1=172.16.1.1
s0/0/0=192.168.1.1
Như vậy, Router sẽ lấy 192.168.1.1 làm Router-id.
Trong trường hợp, Router có Loopback và tham gia định tuyến thì nó ưu tiên sử dụng Loopback làm Router-ID trước
Ví dụ:
lookback 0=4.1.1.1
lookback1=4.2.2.2
f0/0=172.16.1.1
f0/1=192.168.1.1
Như vậy, Router-id sẽ là 4.2.2.2
Cách 2 : Người dùng tự cấu hình
Quá trình định doanh Router-ID có thể không cần phải chọn IP sẵn có trên interface, mà bạn có thể tự cấu hình nó.
Ví dụ:
lookback 0=4.1.1.1
lookback1=4.2.2.2
f0/0=172.16.1.1
f0/1=192.168.1.1
Bạn tùy ý chọn 100.100.100.100 (không thuộc về bất kỳ interface có trong Router) và cấu hình nó là Router-ID. Ip
Câu lệnh cấu hình như sau:
Router (config) # router ospf 1
Router (config-router) # router-id A.B.C.D
2. Bước 2: Thiết lập quan hệ láng giềng (neighbor) trong giao thức OSPF
Router chạy giao thức định tuyến OSPF thực hiện gửi gói tin HELLO đến các cổng chạy OSPF trên cùng phân đoạn mạng, với tần suất mặc định 10s/lần. Mục đích của quá trình này là để Router tìm kiếm láng giềng, sau đó thiết lập và duy trì mối quan hệ.
Hai Router được xếp là láng giềng khi chúng đáp ứng các điều kiện:
- Cùng Area-ID: Một hệ thống mạng lớn thường được chia thành nhiều vùng để giảm thiểu ảnh hưởng khi có sự cố xảy ra. Mỗi vùng được đặt là một Area-ID. Trong đó, vùng trung tâm sẽ có Area-ID là 0. Tất cả các vùng khác muốn truyền được dữ liệu thì phải có đường truyền trực tiếp đến vùng trung tâm (tức vùng 0).
- Cùng Subnet: Khi 2 IP có cùng Subnet thì chúng mới có thể trao đổi thông tin và ping.
- Cùng thông số: Mặc định Hello/Dead-time ở 2 cổng là 10s/40s.
- Cùng xác thực trên 2 cổng: Điều kiện này dành cho các mạng metro (mạng lớn). Khi xác thực được thiết lập thì thông tin sẽ không bị các Router khác lấy.
- Cùng cờ Stub Area Flag: Điều kiện này áp dụng cho OSPF đa vùng.
Nếu muốn xem các Router có quan hệ láng giềng, bạn sử dụng câu lệnh: Show IP OSPF Neighbor.
3. Bước 3: Trao đổi LSDB
LSDB đóng vai trò như tấm bản đồ mạng để Router có căn cứ tính toán định tuyến. Vì thế, LSDB sẽ giống nhau đối với các Router cùng vùng. Mỗi Router tiến hành trao đổi, giao tiếp với nhau theo từng đơn vị thông tin, được gọi là LSA. Tất cả LSA này được chứa trong những gói tin LSU (Link State Update) cụ thể mà các Router đã trao đổi thực tế.
Bước 4: Tính toán xây dựng bảng định tuyến trong giao thức OSPF
OSPF gọi Cost (Cost trên interface) thay cho Metrict. Cost chỉ được tính khi đi vào một cổng, và không tính khi đi ra.
Cost = 108/Bandwidth (đơn vị bps).
Khi Ethernet có Bandwidth = 10Mbps → cost = 10.
Khi Fast Ethernet có Bandwidth = 100Mbps → cost = 1.
Khi Serial có Bandwidth = 1.544Mbps → cost = 64 (phần thập phân sau khi làm phép tính chia sẽ được bỏ).
Cấu hình giao thức định tuyến OSPF: Các loại liên kết trong OSPF
Sau khi đã biết về giao thức OSPF là gì và cách thức hoạt động của nó, bạn cần tìm hiểu thêm các liên kết có trong giao thức định tuyến này. Về cơ bản, liên kết trong OSPF chính là kết nối. Trong OSPF có 4 loại liên kết, bao gồm:
- Point-to-point link
Là liên kết điểm – điểm, đóng vai trò kết nối trực tiếp 2 bộ định tuyến, và ở giữa không có bất kỳ bộ định tuyến hoặc máy chủ nào.
- Transient link
Là kiểu liên kết tạm thời. Đây là liên kết của một vài bộ định tuyến gắn vào một hệ thống mạng. Có 2 cách triển khai liên kết tạm thời:
– Cấu trúc liên kết không thực tế: Là hình thức liên kết mà toàn bộ các bộ định tuyến kết nối với nhau.
– Cấu trúc liên kết thực tế: Là hình thức liên kết mà một vài bộ định tuyến đã chỉ định có trong hệ thống mạng. Các bộ định tuyến chỉ định thực hiện kết nối nhau. Đồng thời, những gói tin được các bộ định tuyến khác gửi sẽ được chuyển qua bộ định tuyến chỉ định.
– Stub link
Là một hệ thống mạng kết nối với duy nhất một bộ định tuyến. Theo đó, dữ liệu khi đi vào hay rời mạng đều thông qua bộ định tuyến duy nhất này.
– Virtual link
Khi liên kết giữa 2 bộ định tuyến hỏng thì quản trị viên sẽ thiết lập một liên kết ảo giữa các bộ định tuyến. Liên kết ảo này có thể là một đường dài.
Định dạng tin nhắn của giao thức định tuyến OSPF
Định dạng thông báo OSPF gồm các trường sau:
- Version: Là trường 8 bit, giữ vai trò chỉ định phiên bản của giao thức định tuyến OSPF.
- Type: Là trường 8 bit, giữ vai trò chỉ định loại gói OSPF.
- Message: Là trường 16 bit, giúp xác định độ dài của thông báo (kể cả header).
- Source IP address: Thực hiện nhiệm vụ xác định địa chỉ IP của gói tin được gửi đi.
- Area identification: Xác định khu vực diễn ra quá trình định tuyến.
- Checksum: Thực hiện việc phát hiện lỗi và sửa lỗi.
- Authentication type: Có 2 loại xác thực là 0 và 1.
Trong đó:
– 0: Không có xác thực nào khả dụng.
– 1: Chỉ định xác thực dựa vào mật khẩu.
- Authentication: Là trường 32 bit, đóng vai trò chứa giá trị của dữ liệu xác thực.
Tìm hiểu gói tin của giao thức OSPF
Giao thức định tuyến OSPF có 5 loại gói tin, bao gồm:
- Hello
Gói này được dùng để thiết lập quan hệ láng giềng, kiểm tra khả năng tiếp cận của láng giềng. Vì vậy, gói tin Hello chỉ được sử dụng khi muốn tạo kết nối giữa các bộ định tuyến.
Khi kết nối được thiết lập, trong lần giao tiếp đầu tiên giữa Router láng giềng với hệ thống, nó sẽ tiến hành gửi đến hệ thống thông tin về cấu trúc liên kết mạng. Dựa vào dữ liệu này, hệ thống thực hiện việc cập nhật, điều chỉnh cho phù hợp.
- Link state request
Gói tin này do bộ định tuyến gửi nhằm mục đích lấy thông tin từ bộ định tuyến được chỉ định.
- Link-state update
Đây là gói tin được bộ định tuyến sử dụng cho mục đích quảng bá trạng thái các liên kết của chính nó. Khi có một bộ định tuyến muốn phát trạng thái các liên kết thì nó dùng đến bản cập nhật trạng thái liên kết.
- Link state Acknowledgment
Là gói tin xác nhận trạng thái liên kết giúp tăng độ tin cậy của quá trình định tuyến, thông qua việc yêu cầu từng bộ định tuyến tiến hành gửi xác nhận lên bản cập nhật trạng thái liên kết.
Các trạng thái của giao thức OSPF
Các trạng thái mà mỗi thiết bị chạy OSPF đều trải qua là:
- Down: Là trạng thái thông báo quá trình OSPF chưa được bắt đầu.
- Init: Là trạng thái báo thiết bị đã nhận gói HELLO từ bộ định tuyến khác.
- 2WAY: Là trạng thái báo hai bộ định tuyến đã nhận gói HELLO từ bộ định tuyến khác, đồng thời, liên kết giữa các bộ định tuyến đã được tạo.
- Exstart: Hai bộ định tuyến đã chuyển sang trạng thái Khởi động sẽ thực hiện chọn máy chủ và khách. Tiếp đến, Master thực hiện kiểm soát chuỗi số và quá trình trao đổi được bắt đầu.
- Exchange: Đây là trạng thái trao đổi. Ở trạng thái này, hai bộ định tuyến tiến hành gửi danh sách LSA chứa mô tả cơ sở dữ liệu cho nhau.
- Loading: Là trạng thái tải. Lúc này, các LSR, LSU, LSA của hai bộ định tuyến sẽ được trao đổi.
- Full: Là trạng thái của bộ định tuyến sau khi quá trình trao đổi LSA hoàn tất.
Cấu hình giao thức định tuyến OSPF
Để cấu hình OSPF trên các Router, bạn sử dụng câu lệnh dưới đây:
Router (config) # router ospf process-id
Router (config-router) # network dia_chi_IP wildcard_mask area area_id
Trong đó:
- Process – id: Là số hiệu của OSPF chạy trên Router.
Để một cổng tham gia giao thức OSPF, bạn tiến hành kết nối địa chỉ mạng của nó. Tuy nhiên, bạn cần dùng thêm wildcard mask để có thông tin subnet tham gia định tuyến. Muốn tính giá trị wildcard mask, bạn lấy 255.255.255.255 trừ giá trị subnet – mask (255.255.255.0). Lưu ý, cách này chỉ áp dụng đối với trường hợp có một dải IP liên tiếp.
Cấu hình giao thức OSPF của Router:
- Cấu hình Router R1:
Cú pháp câu lệnh như sau:
R1(config)#router ospf 1
R1(config-router)#network 192.168.1.0 0.0.0.255 area 0
R1(config-router)#network 192.168.3.0 0.0.0.255 area 0
- Cấu hình router R2:
Cú pháp câu lệnh như sau:
R2(config)#router ospf 1
R2(config-router)#network 192.168.2.0 0.0.0.255 area 0
R2(config-router)#network 192.168.3.0 0.0.0.255 area 0