1. Khái niệm
OSPF – Open Shortest Path First là một giao thức định tuyến link – state điển hình. Đây là một giao thức được sử dụng rộng rãi trong các mạng doanh nghiệp có kích thước lớn. Mỗi router khi chạy giao thức sẽ gửi các trạng thái đường link của nó cho tất cả các router trong vùng (area). Sau một thời gian trao đổi, các router sẽ đồng nhất được bảng cơ sở dữ liệu trạng thái đường link (Link State Database – LSDB) với nhau, mỗi router đều có được bản đồ mạng của cả vùng. Từ đó mỗi router sẽ chạy giải thuật Dijkstra tính toán ra một cây đường đi ngắn nhất (Shortest Path Tree) và dựa vào cây này để xây dựng nên bảng định tuyến.
2. Hoạt động của OSPF
2.1. Chọn Router – id:
Khi router chạy OSPF thì phải có một giá trị duy nhất dùng để định danh cho router trong cộng đồng các router chạy OSPF. Giá trị này được gọi là Router – id. Router – id trên router chạy OSPF có định dạng của một địa chỉ IP.
Mặc định, tiến trình OSPF trên mỗi router sẽ tự động bầu chọn giá trị router – id là địa chỉ IP cao nhất trong các interface đang active, ưu tiên cổng loopback. Để đổi lại router – id của tiến trình, phải thực hiện khởi động lại router hoặc gỡ bỏ tiến trình OSPF rồi cấu hình lại, khi đó tiến trình bầu chọn router – id sẽ được thực hiện lại với các interface đang hiện hữu trên router.
Có một cách khác để thiết lập lại giá trị router – id là sử dụng câu lệnh “router-id” để thiết lập bằng tay giá trị này trên router:
Router (config) # router ospf 1
Router (config-router) # router-id A.B.C.D
Bên cạnh đó, nếu tiến trình OSPF đã chạy và router – id đã được thiết lập trước đó, ta phải khởi động lại tiến trình OSPF thì mới áp dụng được giá trị router – id mới được chỉ ra trong câu lệnh “router – id”. Câu lệnh khởi động lại tiến trình OSPF:
Router (config) # clear ip ospf proccess
Reset ALL OSPF proccess? [no]: yes
2.2. 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 và duy trì mối quan hệ này
. 2.3. 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. LSDB phải hoàn toàn giống nhau giữa các router cùng vùng. 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.
2.4. Tính toán xây dựng bảng định tuyến
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).
3. Cấu hình định tuyến OSPF
Để thực hiện chạy OSPF trên các router, chúng ta sử 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: 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, ta thực hiện “network” địa chỉ mạng của cổng đó. Với OSPF ta 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, ta 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. Cách tính này chỉ đúng cho một dải IP liên tiếp, không phải đúng cho mọi trường hợp.
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
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
Trương Thị Hồng Nhung – VnPro