3.1 Các điểm khác biệt giữa OSPF cho IPv6 và cho IPv4
OSPFv3 là một giao thức link state được định nghĩa trong RFC 2740. OSPFv3 được xây dựng trên OSPFv2 của IPv4. Các điểm khác biệt giữa OSPFv3 và OSPFv2 là:
Metric ở mỗi link được admin gán cho và không phải là duy nhất. Metric đó bao gồm: thời gian trễ - Delay, đường truyền - BW, chi phí Cost, và tổng phải nhỏ hơn 65.535.
OSPFv3 thường chạy trên mỗi link, chứ không trên mỗi subnet.
IPv6 kết nối các giao diện tới các link. Nhiều IP subnet có thể được gán trên cùng 1 link. OSPFv3 chạy trên từng link chứ không phải trên từng subnet, một giao diện OSPFv3 bây giờ kết nối tới 1 link thay vì tới 1 IP subnet.
Sự gỡ bỏ ngữ nghĩa của định địa chỉ (Addressing)
Địa chỉ IPv6 không còn được bao gồm trong header của OSPFv3 nữa. Chúng chỉ được chấp nhận như thông tin về tải trọng(payload).
Router-LSA và Network-LSA tuy vẫn còn tồn tại nhưng nó không còn chứa địa chỉ IPv6 ở trong đó nữa. OSPF Router-ID, Area ID và Link State ID vẫn là 1 số 32 bit, do đó chúng không thể mang các giá trị địa chỉ của IPv6(vì địa chỉ IPv6 lên tới 128bit). Designated Routers(DR) và Backup Designated Routers(BDR) luôn luôn được định ra bởi Router ID chứ không còn bởi địa chỉ IP của chúng.
Phạm vi Flooding
Mỗi loại LSA bao gồm 1 mã xác định để chỉ ra phạm vi cho việc flooding của nó. Mã này được gắn vào trong trường LS type. Có 3 phạm vi flooding được đưa ra là : Link-Local, Area và AS.
Sử dụng địa chỉ Link-Local:
OSPFv3 cho rằng mỗi interface đều được gán 1 địa chỉ Link-Local Unicast. Tất cả các gói tin OSPFv3 sẽ sử dụng địa chỉ này như là địa chỉ nguồn của mình. Các router học được các địa chỉ Link-Local này từ các router neighbor của chúng và sử dụng các địa chỉ này như là địa chỉ Next-Hop, các gói tin được gửi qua các Virtual Link, tuy nhiên chúng sử dụng cả địa chỉ Global và Site-Local như là địa chỉ nguồn của các gói tin OSPFv3.
Cấu trúc của gói OSPF được sửa đổi để loại bỏ sự độc lập trong việc phân địa chỉ IPv4.
Các thay đổi về định dạng LSA
•Kiểu 3 (Summary Link) đã được đổi tên thành Inter-Area-Prefix- LSA.
•Kiểu 4 (AS Summary Link) được đổi tên thành Inter-Area-Router- LSA.
• Có 2 dạng LSA mới mang thông tin về tiền tố IPv6 trong payload của chúng. Link-LSA(Kiểu 8) mang thông tin địa chỉ IPv6 của link cục bộ và Intra-Prefix-LSA (Kiểu 9) mang thông tin về tiền tố của Router và của các link.
Xử lý các unknown LSA
Thay vào việc hủy các gói tin OSPFv3 không thuộc 1 dạng LSA đã biết trước thì trong IPv6, OSPFv3 đã mềm dẻo hơn trong việc xử lý những trường hợp này bằng việc thêm vào 1 bít handling LSA mới trong trường LS Type cho phép gói tin này được truyền rộng đi (flooding)
Giao thức OSPF không cung cấp sự xác thực (Authentication)
Sự xác thực đã được gỡ bỏ ra khỏi gói tin OSPFv3 vì nó dựa vào cơ chế xác thực đã có sẵn của IPv6.
3.2 Thuật toán SPF (Dijkstra)
Ta coi 1 mạng như là 1 đồ thị với các đỉnh đại diện cho các Router, đường nối giữa các Node có trọng số được coi như là Metric trong OSPF. Nhiệm vụ của Router là với 1 đích biết trước, nó phải chỉ ra được chính xác con đường có chi phí thấp nhất (đường ngắn nhất) để tới được đích. Việc tính toán đường đi ngắn nhất giữa 2 đỉnh sẽ được thực hiện bởi một thuật toán có
tên là Dijkstra. Thuật toán được xây dựng dựa trên việc gán cho các đỉnh các nhãn tạm thời. Nhãn của mỗi đỉnh cho biết cận trên của độ dài đường đi ngắn nhất từ đỉnh xuất phát tới nó. Các nhãn này sẽ được biến đổi theo một thủ tục lặp mà ở mỗi bước lặp có 1 nhàn tạm thời trở thành nhãn cố định. Nếu nhãn của một đỉnh nào đó trở thành cố định thì nó sẽ cho ta không phải cận trên mà là độ dài đường đi ngắn nhất từ đỉnh xuất phát tới nó.
3.3 Cấu trúc thông điệp OSPFv3
Các router sử dụng OSPF để trao đổi với nhau các thông tin LSA và tiến hành xây dựng, duy trì mối quan hệ của mình với các neighbor của chúng.
• Encapsulation(đóng gói) với gói tin IPv6.
Các gói tin OSPFv3 được đóng gói trực tiếp trong IPv6 bởi một giao thức có số hiệu 89. Số này sẽ được chèn vào trường Next Header ở trong header của gói IPv6. Gói tin OSPFv3 sử dụng địa chỉ link-local của interface mà nó được gửi ra như là địa chỉ nguồn. Tùy vào từng trường hợp mà các thông điệp OSPFv3 được gửi tới một địa chỉ unicast của một neighbor xác định hay là một nhóm địa chỉ multicast. Có hai nhóm địa chỉ multicast sau đây sẽ được sử dụng trong OSPFv3:
- AllSPFRouters (FF02::5) : Tất cả các router chạy OSPFv3 đều phải lắng nghe và xử lý địa chỉ này. Thông điệp Hello luôn luôn được gửi tới địa chỉ này (trừ khi miền đang xét là miền non-broadcast). Địa chỉ này còn được sử dụng trong một vài các gói tin trong quá trình flooding.