OSPF là một giao thức hoạt động khá là phức tạp, tuy nhiên có thể tóm tắt quá trình hoạt động của OSPF trải qua 5 phần tách biệt. Bao gồm:
- Thiết lập các Router lân cận
- Chọn lựa DR và BDR nếu cần thiết - Khám phá các tuyến
- Lựa chọn các tuyến tối ưu để sử dụng - Duy trì thông tin định tuyến
1. Qúa trình thiết lập quan hệ láng giềng
Đây là qua trình đầu tiên của OSPF. Để trở thành láng giềng của nhau, các Router OSPF phải trao đổi các bản tin Hello và trải qua các trạng thái Down và Init ( như đã trình bày phía trên ). Khi một Router OSPF nhân gói tin Hello mà trong đó có số ID của nó thì nó biết rằng
phía kia cũng có Router chạy OSPF, và nó thiết lập láng giềng. Sau khi trở thành láng giềng của nhau Router OSPF sẽ xác định xem có phải bình chọn DR, BDR hay không. Nếu phải bình chọn thì sẽ sang bước thứ 2.
2. Lựa chọn DR và BDR
Quá trình chọn DR, BDR xảy ra ở trạng thái Two – way, theo đó DR và BDR có thể chọn bởi người quản trị hoặc được chọn tự động thông qua giao thức Hello.
Chọn tự động: Theo cách này các DR được chọn bất kỳ, quá trình chọn dựa vào ID cao nhất và địa chỉ IP của Router trên đoạn mạng. Sau khi DR và BDR được chọn, tất cả các Router trên mạng đa truy nhập sẽ giao tiếp trực tiếp với DR sử dụng địa chỉ multicast ( 224.0.0.6 ).
Chọn bằng cách cấu hình: Để xác định Router nào là DR, cần thay đổi giá trị ưu tiên cho Router. Một giao diện Router có thể có một giá ưu tiên trong khoảng 0 - 255. Giá trị 0 cho biết Router không thể là DR hay BDR được, ngoài ra Router có gía trị ưu tiên lớn thì có sơ hội trở thành DR nhiều hơn. Giá trị ưu tiên mặc định trên giao diện của Router Cisco là 1.
3. Khám phá các tuyến đường
Để khám phá các tuyến các Router OSPF qua 4 trạng thái sau :
Exstart State: Khi một Router và hàng xóm của nó vào trạng thái này sự giao tiếp của chúng được mô tả như một lân cận nhưng chưa phải là lân cận đầy đủ. Exstart State sử dụng các gói tin DDP để trao đổi cơ sở dữ liệu. Ngoài ra hai Router hàng xóm sử dụng gói tin Hello thương lượng với nhau quan hệ chủ / tớ dựa trên địa chỉ IP cao nhất. Điều này chỉ xác định Router nào bắt đầu giao tiếp trước trong trạng thái trao đổi.
Exchange State : Trong trạng thái này các Router hàng xóm sử dụng các gói DDP để gửi cho nhau về thông tin trạng thái liên kết của chúng, hay nó cách khác các Router diễn tả cho nhau các cơ sở dữ liệu của chúng . Nếu một trong các Router này nhận được thông tin về một liên kết không có trong cơ sở dữ liệu của nó, Router sẽ yêu cầu một cập
nhật đầy đủ từ hàng xóm của nó. Thông tin định tuyến đầy đủ được trao đổi trong trạng thái Loading State.
Loading State: Sau khi cơ sở dữ liệu được chỉ ra cho mỗi Router, chúng có thể yêu cầu thông tin đầy đủ hơn bằng việc sử dụng các gói LSR. Khi một Router nhận được một gói LSR, nó gửi một cập nhật đáp ứng lại sử dụng gói LSU. Thực tế gói LSU chứa gói tin LSA.
Full Adjacency: Kết thúc trạng thái Loading State các Router là các lân cận đầy đủ. Lúc này mỗi Router giữ một danh sách các hàng xóm lân cận, được gọi là cơ sở dữ liệu về các lân cận ( adjacency database ) hay bảng các hàng xóm ( neighbor table ).
4. Lựa chọn tuyến đường tối ưu nhất
Sau khi một Router có một cơ sở dữ liệu trạng thái liên kết hoàn chỉnh, nó sẵn sàng tạo ra một bảng định tuyến để định tuyến thông tin. OSPF dùng giá trị metric gọi là cost để xác định đường tốt nhất đến đích, gía trị chi phí dựa trên băng thông đường truyền, nói chung chi phí giảm khi mà tốc độ của liên kết tăng.
Ta có chi phí ( metric ) trong OSPF được tính theo công thức: Metric = 10.000.000 / Bandwidth ( kps ).
Để tính toán chi phí thấp nhất đến đích các Router OSPF dùng thuật toán SPF ( Shortest Path Fist ), nó sẽ tính tổng chi phí giữa Router gốc đến mỗi mạng đích. Nếu có nhiều đường đến một đích, đường có chi phí nhỏ nhất được chọn, OSPF mặc định có thể cân bằng tải cho bốn tuyến có chi phí bằng nhau trong bảng định tuyến. Ngoài ra ta có thể thay đổi giá trị này lên tối đa là 6 tuyến ( trên Router Cisco ).
Sau khi các Router đã chọn được các tuyến tốt nhất bằng cách sử dụng thuật toán SPF nó chuyển sang trạng thái hoạt động tiếp theo.
5. Duy trì thông tin định tuyến
Sau khi cài đặt các tuyến đường vào trong bảng định tuyến ( Routing Table ), Router OSPF sẽ duy trì bảng này trong bộ nhớ RAM,
nếu như có bất kì sự thay đổi nào trong mạng thì Router OSPF sẽ làm lụt thông tin thay đổi đó cho các Router khác trong mạng biết để cập nhật cơ sở dữ liệu của mình. Cụ thể nó sẽ xác định một sự thay đổi trạng thái liên kết của nó với một trong các lý do sau:
- Router mất liên kết vật lý hay kết nối lớp 2 trên mạng nối với nó. Router gửi một gói tin LSU tới các DR trong mạng đa truy nhập với địa chỉ 224.0.0.6 sau đó các DR này gửi chuyển tiếp đến các Router OSPF khác với địa chỉ 224.0.0.5. Đối với mạng kết nối kiểu điểm - điểm thì nó gửi đến Router lân cận ( địa chỉ 224.0.0.5 ) từ đó chúng truyền lan toàn mạng.
- Router không còn nghe thấy bản tin của giao thức Hello nữa, Router gửi đi gói tin LSU tới DR trong mạng đa truy nhập và Router lân cận trong mạng điểm- điểm .
- Router nhận được một cập nhật LSA từ một hàng xóm lân cận thông báo cho nó về sự thay đổi trong mạng. Gói tin LSU đáp ứng được gửi ra các giao diện OSPF khác.
Ngoài ra khi trên mạng không có bất kì sự thay đổi nào thì sau 30 phút, Router sẽ gửi bản tin update tới lân cận để làm mới lại cơ sở dũ liệu.
6. Hạn chế của OSPF trong vùng đơn
Với việc chạy OSPF đơn vùng thì gây ra rất nhiều hạn chế:
- Tiêu tốn tài nguyên bộ nhớ và tài nguyên xử lý: trong môi trường mạng lớn, thường xuyên có sự thay đổi trên mạng ( như hiện tượng flap, thêm mạng … ), sau mỗi lần thay đổi thì Router OSPF sẽ phải chạy lại giải thuật SPF để tính toán lại đường đi. Điều này có thể làm tiêu tốn rất nhiều tài nguyên về bộ nhớ cũng như CPU.
- Làm tăng kích cỡ bảng định tuyến: Khi kích cỡ mạng lớn thì một điều đương nhiên là bảng định tuyến cũng lớn. Nếu trong bảng định tuyến của Router lên đến hàng trăm, hàng ngàn routes thì mỗi packet đến routes lại phải tra trong hàng trăm, ngàn routes để tìm ra tuyến đường phù hợp.
- Làm tăng cơ sở dữ liệu: cuối cùng là cơ sở dữ liệu rất lớn, vì mỗi router chạy giao thức kiểu link – state đều có bảng topologicy lên kích cỡ bảng này có thể trở lên cực lớn. Gây lãng phí tài nguyên của router, ngoài ra có những router ở vùng mà bản thân nó không cần phải biết nhiều các tuyến đường nhưng bản thân nó lại vẫn nhận được các tuyến đường này.