Giao thức OSPF là gì? Cách thức hoạt động OSPF

27/09/2021

Banner tặng quà hosting giá rẻ

OSPF là một giao thức định tuyến link – state điển hình, được sử dụng rộng rãi trong các mạng doanh nghiệp lớn. Trong chương trình CCNA, đây cũng là một chủ đề được đề cập nhiều. Do đó, nắm vững OSPF là gì cũng như nguyên tắc hoạt động của nó sẽ giúp các bạn đang theo học chương trình CCNA hoàn thành tốt việc học của mình, đồng thời đáp ứng tốt nhu cầu công việc trong thực tế.

OSPF là gì ?

OSPF là viết tắt của Open Shortest Path First. Nó là một giao thức định tuyến được sử dụng rộng rãi và được hỗ trợ. Đây là một giao thức định tuyến nội, có nghĩa là nó được sử dụng trong một khu vực hoặc một mạng. Nó dựa trên thuật toán link state routing, trong đó mỗi bộ định tuyến chứa thông tin của mọi domain và dựa trên thông tin này, nó xác định đường đi ngắn nhất. Mục tiêu của định tuyến là tìm hiểu các tuyến đường.

OSPF đạt được bằng cách tìm hiểu về mọi bộ định tuyến và mạng con trong toàn bộ mạng. Mọi bộ định tuyến đều chứa thông tin giống nhau về mạng. Cách bộ định tuyến tìm hiểu thông tin này bằng cách gửi LSA (Link State Advertisements). Các LSA này chứa thông tin về mọi bộ định tuyến, mạng con và thông tin mạng khác. Khi các LSA đã bị đầy, OSPF lưu trữ thông tin trong cơ sở dữ liệu trạng thái liên kết được gọi là LSDB. Mục tiêu chính là có cùng thông tin về mọi bộ định tuyến trong một LSDB.

OSPF hoạt động như thế nào?

Router chạy theo giao thức định tuyến OSPF thì nó phải trải qua 4 bước sau:

  • Router ID
  • Thiết lập quan hệ láng giềng (Neighbor)
  • Trao đổi LSDB (Link State Database)
  • Xây dựng bảng định tuyến

Cụ thể:

Banner Hosting cao cấp tốc độ cao

Chọn Router – id

Để chạy OSPF nó phải tạo ra 1 định danh để chạy gọi là Router-id có định dạng của một địa chỉ IP A.B.C.D (vd: IPv4:192.168.1.1). Để tạo ra Router-id có 2 cách sau đây:

Cách 1: Router tự động tạo

  • Dựa vào interface nào có địa chỉ IP cao nhất thì nó lấy IP đó làm Router-id
    Ví dụ: Router có f0/0=10.0.0.1 f0/1=172.16.1.1 s0/0/0=192.168.1.1
    => Router-id = 192.168.1.1
  • Nếu Router có Loopback tồn tại và cho tham gia định tuyến thì Router-id ưu tiên cho Loopback 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
    => Router-id = 4.2.2.2

Cách 2 : Tự cấu hình

  • Định danh Router-id không nhất thiết là phải chọn IP có trên interface.
    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 có thể cấu hình để chọn Router-id = 100.100.100.100. Ip này không thuộc interface nào của router cả.
  • Lệnh cấu hình thực hiện như sau:

Router (config) # router ospf 1
Router (config-router) # router-id A.B.C.D

Thiết lập quan hệ láng giềng (neighbor)

Router chạy OSPF sẽ gửi gói tin hello ra tất cả các cổng chạy OSPF, mặc định 10s/lần. Gói tin này được gửi đến địa chỉ multicast dành riêng cho OSPF là 224.0.0.5, đến tất cả các router chạy OSPF khác trên cùng phân đoạn mạng. Mục đích của gói tin hello là giúp cho router tìm kiếm láng giềng, thiết lập cũng như duy trì mối quan hệ này.

Hai router được gọi là láng giềng phải thỏa mãn các điều kiện sau:

  • Cùng Area-id: Khi mạng lớn người ta chia làm nhiều vùng, vùng nào hỏng thì chỉ vùng đó chịu tác động. Mỗi một vùng sẽ đặt cho một Area-id. Vùng trung tâm có Area-id phải bằng 0. Mọi vùng khác phải có đường truyền trực tiếp về vùng 0 thì mới truyền được dữ liệu.
  • Cùng Subnet: 2 IP phải cùng Subnet mới ping và trao đổi được thông tin.
  • Phải cùng thông số: Hello/Dead-time ở trên 2 cổng, mặc định là 10s/40s.
  • Phải cùng Xác thực trên 2 cổng: Dành cho mạng lớn (metro). Khi đặt xác thực các router khác không lấy được thông tin.
  • Phải cùng cờ Stub Area Flag: dành cho OSPF đa vùng.

Để xem được neighbor dùng lệnh: Show IP OSPF Neighbor.

Trao đổi LSDB

LSDB là một tấm bản đồ mạng và router sẽ căn cứ vào đó để tính toán định tuyến. Giữa các router cùng vùng thì LSDB phải hoàn toàn giống nhau. Các router sẽ không trao đổi với nhau cả một bảng LSDB mà sẽ trao đổi với nhau từng đơn vị thông tin gọi là LSA (Link State Advertisement). Các đơn vị thông tin này lại được chứa trong các gói tin cụ thể gọi là LSU (Link State Update) mà các router thực sự trao đổi với nhau.

Tính toán xây dựng bảng định tuyến

Trong OSPF không còn gọi là Metrict, thay vào đó gọi là Cost (Cost trên interface).

Cost được tính khi đi vào 1 cổng và đi ra không tính.

Metric = cost = 108/Bandwidth (đơn vị bps).

Ethernet (BW = 10Mbps) → cost = 10.

Fast Ethernet (BW = 100Mbps) → cost = 1.

Serial (BW = 1.544Mbps) → cost = 64 (bỏ phần thập phân trong phép chia).

Router hình thành mạng liên quan

Điều đầu tiên xảy ra trước khi mối quan hệ được hình thành là mỗi bộ định tuyến chọn ID bộ định tuyến.

ID bộ định tuyến (RID): ID bộ định tuyến là một số xác định duy nhất mỗi bộ định tuyến trên mạng. ID bộ định tuyến ở định dạng địa chỉ IPv4. Có một số cách để đặt ID bộ định tuyến, cách đầu tiên là đặt ID bộ định tuyến theo cách thủ công và cách khác là để bộ định tuyến tự quyết định.

Sau đây là logic mà bộ định tuyến chọn để đặt ID bộ định tuyến:

Chỉ định thủ công: Bộ định tuyến sẽ kiểm tra xem ID bộ định tuyến có được đặt theo cách thủ công hay không. Nếu nó được đặt theo cách thủ công, thì đó là một ID bộ định tuyến. Nếu nó không được đặt theo cách thủ công, thì nó sẽ chọn địa chỉ IP giao diện lặp lại trạng thái ‘lên’ cao nhất. Nếu không có giao diện lặp lại, thì nó sẽ chọn địa chỉ IP giao diện không lặp lại trạng thái ‘lên’ cao nhất.

Hai bộ định tuyến được kết nối với nhau thông qua điểm tới điểm hoặc nhiều bộ định tuyến được kết nối có thể giao tiếp với nhau thông qua giao thức OSPF. Hai bộ định tuyến chỉ kề nhau khi cả hai bộ định tuyến gửi gói HELLO cho nhau. Khi cả hai bộ định tuyến nhận được thông báo của gói HELLO, thì chúng ở trạng thái hai chiều. Vì OSPF là một giao thức định tuyến link state, vì vậy nó cho phép tạo ra mối quan hệ láng giềng giữa các bộ định tuyến. 

Hai bộ định tuyến chỉ có thể là neighbor của nhau khi chúng thuộc cùng một mạng con, chia sẻ cùng một khu vực ID, subnet mask, bộ định thời gian và xác thực. Mối quan hệ OSPF là mối quan hệ được hình thành giữa các bộ định tuyến để chúng có thể biết nhau. Hai bộ định tuyến có thể là hàng xóm của nhau nếu ít nhất một trong số chúng là bộ định tuyến được chỉ định hoặc bộ định tuyến được chỉ định dự phòng trong mạng hoặc được kết nối thông qua liên kết point-to-point.

Các loại liên kết trong OSPF

Khi đã tìm hiểu giao thức định tuyến OSPF là gì. Cần biết các loại liên kết trong OSPF Liên kết về cơ bản là một kết nối, vì vậy kết nối giữa hai bộ định tuyến được gọi là liên kết.

Có bốn loại liên kết trong OSPF:

1.Point-to-point link: Liên kết điểm-điểm kết nối trực tiếp hai bộ định tuyến mà không có máy chủ hoặc bộ định tuyến nào ở giữa.

2.Transient link: Khi một số bộ định tuyến được gắn vào một mạng, chúng được gọi là liên kết tạm thời. Liên kết tạm thời có hai cách triển khai khác nhau:

  • Cấu trúc liên kết không thực tế: Khi tất cả các bộ định tuyến được kết nối với nhau, nó được gọi là cấu trúc liên kết không thực tế.
  • Cấu trúc liên kết thực tế: Khi một số bộ định tuyến được chỉ định tồn tại trong mạng thì nó được gọi là cấu trúc liên kết thực tế. Ở đây bộ định tuyến được chỉ định là bộ định tuyến mà tất cả các bộ định tuyến được kết nối với nhau. Tất cả các gói được gửi bởi các bộ định tuyến sẽ được chuyển qua bộ định tuyến được chỉ định.

3. Stub link: Đây là một mạng được kết nối với một bộ định tuyến duy nhất. Dữ liệu đi vào mạng thông qua một bộ định tuyến duy nhất và rời khỏi mạng thông qua cùng một bộ định tuyến.

4. Virtual link: Nếu liên kết giữa hai bộ định tuyến bị hỏng, quản trị viên sẽ tạo ra một đường dẫn ảo giữa các bộ định tuyến và đường dẫn đó cũng có thể là một đường dài.

Định dạng tin nhắn OSPF

Sau đây là các trường ở định dạng thông báo OSPF:

định dạng tin nhắn OSPF

Version: Đây là trường 8 bit chỉ định phiên bản giao thức OSPF.

Type: Đây là trường 8 bit. Nó chỉ định loại gói OSPF.

Message: Nó là một trường 16 bit xác định tổng độ dài của thông báo, bao gồm cả header. Do đó, tổng độ dài bằng tổng độ dài của thông điệp và Header.

Source IP address: Nó xác định địa chỉ mà các gói được gửi đi. Nó là một địa chỉ IP định tuyến gửi.

Area identification: Nó xác định khu vực mà quá trình định tuyến diễn ra.

Checksum: Nó được sử dụng để sửa lỗi và phát hiện lỗi.

Authentication type: Có hai loại xác thực, tức là 0 và 1. Ở đây, 0 có nghĩa là không có nghĩa là không có xác thực nào khả dụng và 1 có nghĩa là chỉ định xác thực dựa trên mật khẩu.

Authentication: Nó là một trường 32 bit chứa giá trị thực của dữ liệu xác thực.

Banner Hosting giá rẻ bảo mật với Anti DDoS

Gói tin OSPF

gói tin OSPF

Có năm loại gói tin khác nhau trong OSPF:

  • Hello
  • Database Description
  • Link state request
  • Link state update
  • Link state Acknowledgment

1. Hello

Gói Hello được sử dụng để tạo mối quan hệ láng giềng và kiểm tra khả năng tiếp cận của neighbor. Do đó, gói Hello được sử dụng khi kết nối giữa các bộ định tuyến cần được thiết lập.

2. Database Description

Sau khi thiết lập kết nối, nếu router láng giềng đang giao tiếp với hệ thống lần đầu tiên, nó sẽ gửi thông tin cơ sở dữ liệu về cấu trúc liên kết mạng đến hệ thống để hệ thống có thể cập nhật hoặc sửa đổi cho phù hợp.

3. Link state request

Link state request được gửi bởi bộ định tuyến để lấy thông tin của một tuyến được chỉ định. Giả sử có hai bộ định tuyến, tức là bộ định tuyến 1 và bộ định tuyến 2, và bộ định tuyến 1 muốn biết thông tin về bộ định tuyến 2, vì vậy bộ định tuyến 1 gửi yêu cầu trạng thái liên kết đến bộ định tuyến 2. Khi bộ định tuyến 2 nhận được yêu cầu trạng thái liên kết, thì nó gửi thông tin trạng thái liên kết đến bộ định tuyến 1.

4. Link-state update

Link state update được bộ định tuyến sử dụng để quảng cáo trạng thái của các liên kết của nó. Nếu bất kỳ bộ định tuyến nào muốn phát trạng thái của các liên kết của nó, nó sẽ sử dụng bản cập nhật trạng thái liên kết.

5. Link state Acknowledgment

Xác nhận trạng thái liên kết làm cho việc định tuyến đáng tin cậy hơn bằng cách buộc mỗi bộ định tuyến gửi xác nhận trên mỗi bản cập nhật trạng thái liên kết. Ví dụ: bộ định tuyến A gửi bản cập nhật trạng thái liên kết tới bộ định tuyến B và bộ định tuyến C, sau đó đổi lại, bộ định tuyến B và C gửi xác nhận trạng thái liên kết đến bộ định tuyến A, để bộ định tuyến A biết rằng cả hai bộ định tuyến đã nhận được bản cập nhật trạng thái liên kết.

Những trạng thái của OSPF

Thiết bị chạy giao thức OSPF trải qua các trạng thái sau:

Down: Nếu thiết bị ở trạng thái ngừng hoạt động, nó chưa nhận được gói HELLO. Down không có nghĩa là thiết bị bị ngừng hoạt động, nó có nghĩa là quá trình OSPF vẫn chưa được bắt đầu.

Init: Nếu thiết bị ở trạng thái init, điều đó có nghĩa là thiết bị đã nhận được gói HELLO từ bộ định tuyến khác.

2WAY: Nếu thiết bị ở trạng thái 2WAY, có nghĩa là cả hai bộ định tuyến đã nhận được gói HELLO từ bộ định tuyến khác và kết nối được thiết lập giữa các bộ định tuyến.

Exstart: Khi quá trình trao đổi giữa các bộ định tuyến bắt đầu, cả hai bộ định tuyến sẽ chuyển sang trạng thái Khởi động. Ở trạng thái này, chủ và khách được chọn dựa trên ID của bộ định tuyến. Master kiểm soát chuỗi số và bắt đầu quá trình trao đổi.

Exchange: Trong trạng thái trao đổi, cả hai bộ định tuyến gửi danh sách các LSA cho nhau có chứa mô tả cơ sở dữ liệu.

Loading: Ở trạng thái tải, LSR, LSU và LSA được trao đổi.

Full: Sau khi hoàn tất việc trao đổi LSA, các bộ định tuyến sẽ chuyển sang trạng thái đầy đủ.

Cấu hình định tuyến OSPF

Để thực hiện chạy OSPF trên các router, bạn cần dùng câu lệnh sau:

Router (config) # router ospf process-id

Router (config-router) # network dia_chi_IP wildcard_mask area area_id

Trong đó, Process – id chính là số hiệu của tiến trình OSPF chạy trên router, chỉ có ý nghĩa local trên router.

Để cho một cổng tham gia OSPF, bạn thực hiện “network” địa chỉ mạng của cổng đó. Với OSPF bạn phải sử dụng thêm wildcard – mask để lấy chính xác subnet tham gia định tuyến. Để tính được giá trị wildcard mask, bạn cần lấy giá trị 255.255.255.255 trừ đi giá trị subnet – mask 255.255.255.0 từng octet một sẽ được kết quả cần tìm. Tuy nhiên, cách tính này chỉ đúng cho một dải IP liên tiếp, không phải mọi trường hợp đều đúng.

Cấu hình OSPF của router như sau:

Cấu hình router R1: sử dụng OSPF

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 R12: sử dụng OSPF

Banner Hosting Cao Cấp tặng Plugin

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

Như vậy là bạn đã hiểu được OSPF là gì và cách thức hoạt động của nó, hy vọng bài viết này mang lại nhiều thông tin hữu ích cho bạn, chúc bạn thành công!

5/5 - (1 bình chọn)

Banner Hosting Giá Rẻ tặng plugin RankMath Pro

Mình là Bo - admin của Quản Trị Linux. Mình đã có 10 năm làm việc trong mảng System, Network, Security và đã trải nghiệm qua các chứng chỉ như CCNP, CISSP, CISA, đặc biệt là chống tấn công DDoS. Gần đây mình trải nghiệm thêm Digital Marketing và đã hòan thành chứng chỉ CDMP của PearsonVUE. Mình rất thích được chia sẻ và hỗ trợ cho mọi người, nhất là các bạn sinh viên. Hãy kết nối với mình nhé!
Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận