Giao thức định tuyến OSPF là giao thức định tuyến động thuộc nhóm Link State. Trên mỗi Router đều có bản đồ mạng của cả vùng (bảng định tuyến) thông qua việc đồng nhất bảng cơ sở dữ liệu trạng thái đường link (LSDP - Link State Database). Từ bản đồ mạng này Router sẽ tự tính toán ra đường đi ngắn nhất và xây dựng bảng định tuyến cho nó. Giao thức OSPF được sử dụng rộng rãi trong các công ty cho hệ thống mạng lớn. - OSPF (Open shortest path first) là chuẩn mở do IEEE đưa ra Hoạt động ở nhóm classless AD = 110 Metric phụ thuộc vào Bandwith Sử dụng thuật toán Dijkstra để tìm đường đi ngắn nhất. 1. Router-id trên OSPF - Để chạy OSPF nó phải tạo ra 1 định danh để chạy gọi là Router-id có định dạng A.B.C.D (vd: IPv4:192.168.1.1) để tạo ra Router-id có 2 cách Cách 1: Router tự động tạo Cách 2: Do mình cấu hình 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 Vd: 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 Vd: 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 : Do mình cấu hình Router-id không nhất thiết là phải chọn IP có trên interface Vd: lookback 0=4.1.1.1 ;lookback1=4.2.2.2; f0/0=172.16.1.1; f0/1=192.168.1.1 Ta 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 như sau: Router (config) # router ospf 1 Router (config-router) # router-id A.B.C.D 2. Thiết lặp quan hệ láng giềng trong OSPF (neighbor ) - Khi cả 2 Router đã chạy OSPF thì chúng bắt đầu gửi gói tin Hello để thiết lập neighbor. - Đinh kì của gói tin Hello là 10s/1 lần - OSPF sử dụng địa chỉ multilcast : 224.0.0.5 khác với RIPv2 224.0.0.9 - Gói tin hello của OSPF chỉ dùng để định neighbor còn RIPv2 thì gói tin hello của nó có cả bảng định tuyến bên trong. - Để làm neighbor của nhau thì gói tin hello của 2 router phải giống nhau 1 số thông số: · Area_id: Backbone area: Phải có ít nhất 1 vùng. Kí hiệu : 0 Non-backbone are: phải kết nối trực tiếp với vùng Backbone area. Kí hiệu: 1-2^52. => sẽ có 1 còn Router đứng giữa 2 vùng Backbone Router: là Router nằm trong vùng backbone area. Internal Router: là Router nằm trong vùng non-backbone area. Area Boder Router(ABR): Router nằm giữa ranh giới backbone area và non-backbone area . Autonomous System Boder Router(ASBR): là Router biên giới giữa định tuyến OSPF và 1 giao thức định tuyên khác( nghĩa là nó vừa chạy OSPF vừa chạy RIPv2 chẳng hạn) · 2 router phải cùng subnet và subnet-mask Ví dụ 1: R1=192.168.1.110/25 192.168.130/25 => Major-network = 192.168.1.0/24 => mượn 1 bít --> bước nhảy = 128 => Có 2 mạng 192.168.1.0/25 và 192.168.1.128/25 ==> 2 router không thể là neighbor của nhau được vì 2 IP trên khác mạng Ví dụ 2: 192.168.1.110/25 và 192.168.1.11/26 2 router cùng mạng nhưng không thể làm neighbor của nhau vì không cùng subnet-mask · Có cùng hello-timer/die-timer(10s/40s · Cùng loại xác thực: plain-text hay MD5 3. Quá trình tìm đường đi tối ưu B1: thiết lập được neighbor của nhau. Sau đó liệt kê các neighbor vào trong neighbor của mình. Lúc này, mối quan hệ giữa các neighbor gọi là 2-way. B2: Bắt đầu gửi thông tin trạng thái đường link để dựng lên 1 bảng database(bảng topology). B3: từ bảng topology nó bắt đầu dùng thuật toán Dijkstra để tìm ra đường đi tối ưu để đưa ra bảng định tuyến. B4: bảng LSDB chứa các LSA. Để có LSA thì nó phải trải qua các giai đoạn sau : Sau khi ở trạng thái 2-way thì nó bắt đầu gửi thông tin cho nhau để hình thành lên 1 bảng database gọi là LSDB(Link-state database) + Router sẽ gửi thông tin trạng thái đường link của nó cho các neighbor gọi là LSA (Link state Advertisement). + Trước khi gửi LSA nó sẽ gửi 1 bản tin DBD(Database Description) để mô tả những thông tin mà nó có được cho router neighbor. + Khi neighbor nhận được DBD nếu nó thấy thông tin nào trong DBD mà nó không có thì nó sẽ gửi LSR(link state request) để xin thông tin thiếu. + Khi router nhận được request LSR thì nó phải cho những thông tin thiếu cho router xin bằng LSA nằm bên trong LSU(Link state update). LSU giống như là 1 phương tiện để chở LSA trả về cho. + Khi router xin nhận được LSU thì nó bỏ phần LSU lấy phần LSA. Khi nhận xong nó phải trả lời lại là đã nhận được bằng LSACK(link state acknowledgment) ==>Sau khi có LSDB thì router có thể tự chọn được đường đi tốt nhất dựa vào thuật toán Dijkstra 4. Tính Cost trong OSPF - Trong OSPF không còn gọi là Metrict mà 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 = 10^8/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). Ví dụ : Để tính cost từ R1--> C1 ta tính ngược lại là Từ C1 --> đi vào fa1/0 R3(+cost=1) --> đi ra Se2/0 R3--> đi vào Se2/0 R2(+cost=64) --> đi ra fa0/0 R2 --> đi vào f0/0 R1(+cost=1). Ở đây Router sẽ chọn đường có cost = 3 . Để có thể loadbalancing trong sơ đồ này ta cần thay đổi Bandwith: việc thay đổi bandwith nào chỉ nhằm mục đích thay đổi giá trị cost nó không ảnh hưởng gì đến traffic của interface Cost: ở đường dưới ta thấy tại f1/0 của R3 cost=1 ta không thể hạ cost được nữa vì cost = 1 là giá trị minimum. Vì vầy trong sơ đồ trên ta nên tăng cost ở f0/0 lên sao cho tổng cost của 2 đường đều = 66. 5. Cấu hình định tuyến OSPF Để thực hiện chạy OSPF trên các Router Cisco, 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 cisco 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 Chúc các bạn thành công!
Giao thức định tuyến OSPF (Open Shortest Path First) - OSPF là giao thức IGP để phân phối các thông tin định tuyến bên trong một mạng AS. OSPF là một giao thức định tuyến trạng thái liên kết. - Thông tin của topo mạng sẽ được các router tính toán chọn đường đi tốt nhất để gửi data đến đích, thường dựa vào thuật toán Dijkstra. - Thuận lợi chính của giao thức trạng thái liên kết là các router biết được các thông tin về topo mạng, nên nó có thể tính toán được đường đi tốt nhất mà thõa mãn các yêu cầu đặc biệt. - Bất lợi của nó là nếu có thêm các router của mạng thì sẽ làm tăng lên số lượng và tần số của bảng tin update và cũng kéo dài thời gian tính toán chọn đường. Bài viết liên quan: - Các giao thức định tuyến (Routing Protocol) - Tổng quan về giao thức định tuyến (Routing Protocols Overview)