Mục lục
Giới thiệu OSPF
OSPF là một giao thức định tuyến động, sử dụng link-state (trạng thái liên kết) để thay thế cho giao thức định tuyến dựa vào vectơ khoảng cách (distance vector) như là RIP (Routing Information Protocol). OSPF có lợi thế đáng kể so với RIP ở khả năng hội tụ nhanh và quy mô triển khai trên hệ thống mạng lớn hơn nhiều.
OSPF là một giao thức định tuyến link-state, sử dụng cách phân vùng area. OSPF cho phép chia miền định tuyến thành các phân vùng (area) riêng biệt, từ đó giúp kiểm soát lưu lượng liên quan đến viêc cập nhật thông tin định tuyến.
Trong từ link-state, thì
- Link: là một interface trên router, một phân đoạn mạng kết nối hai router hoặc một stub network
- State: thông tin về trạng thái của link như là network prefix, prefix length và cost.
Các thành phần trong OSPF
Tất cả các giao thức định tuyến đều có các thành phần tương tự nhau. Tất cả đều sử dụng routing protocol messages (bản tin định tuyến) để trao đổi thông tin đường đi. Các messeages này giúp xây dựng bảng dữ liệu, sau đó dữ liệu đó được xử lý bằng thuật toán định tuyến.
OSPF trao đổi thông tin định tuyến bằng 5 loại gói tin:
- Hello packet – Gói xin chào
- Database description packet – Gói mô tả cơ sở dữ liệu
- Link-state request packet – Gói yêu cầu trạng thái liên kết
- Link-state update packet – Gói cập nhật trạng thái liên kết
- Link-state acknowledgment packet – Gói xác nhận trạng thái liên kết
Các gói này được sử dụng tìm ra các router hàng xóm và cũng để trao đổi thông tin định tuyến để duy trì thông tin chính xác về mạng.
OSPF messages được sử dụng để tạo và duy trì ba cơ sở dữ liệu sau:
Cơ sở dữ liệu | Bảng | Mô tả |
---|---|---|
Adjacency Database | Neighbor Table |
|
Link-state Database (LSDB) | Topology Table |
|
Forwarding Database | Routing Table |
|
Router xây dựng topology table bằng cách sử dụng kết quả tính toán dựa trên thuật toán đường đi ngắn nhất trước (SPF) của Dijkstra. Thuật toán SPF dựa trên chi phí tích lũy để đến đích.
Thuật toán SPF tạo ra một cây SPF bằng cách đặt mỗi Router ở gốc của cây và tính toán đường đi ngắn nhất đến mỗi nút. Cây SPF sau đó được sử dụng để tính toán các tuyến đường tốt nhất. OSPF đặt các tuyến tốt nhất vào forwarding database, cơ sở dữ liệu này được sử dụng để tạo routing table (bảng định tuyến).
Cách hoạt động của OSPF
Để duy trì thông tin định tuyến, các router OSPF hoàn thành quá trình link-state routing để đạt đến trạng thái hội tụ. Sau đây là các bước:
- Thiết lập các lân cận láng giềng
- Trao đổi quảng bá trạng thái liên kết
- Xây dựng cơ sở dữ liệu trạng thái liên kết
- Thực thi thuật toán SPF
- Chọn con đường tốt nhất
Single-Area và Multiarea OSPF
Để hoạt động hiệu quả và có khả năng mở rộng tốt hơn, OSPF hỗ trợ định tuyến phân cấp sử dụng area (phân vùng). Vùng OSPF là một nhóm router chia sẻ cùng thông tin trạng thái liên kết trong LSDB. OSPF có thể được thực hiện theo một trong hai cách sau:
Single-Area OSPF (OSPF một vùng) – Tất cả router nằm trong một vùng (area). Sử dụng area 0.
Multiarea OSPF (OSPF đa vùng) – OSPF được triển khai bằng cách sử dụng nhiều vùng (area), theo kiểu phân cấp. Tất cả các area phải kết nối với backbone area (area 0). Các router kết nối các khu vực được gọi là Area Border Routers (ABR).
Multiarea OSPF mang lại những lợi ích sau.
- Bảng định tuyến nhỏ hơn – vì có ít mục trong bảng định tuyến. Điều này có được là do các địa chỉ mạng có thể được summary (tóm tắt) giữa các area. Tính năng tóm tắt route không được bật theo mặc định.
- Giảm chi phí cập nhật trạng thái liên kết – Thiết kế Multiarea OSPF với các khu vực nhỏ hơn sẽ giảm thiểu các yêu cầu xử lý và bộ nhớ.
- Giảm tần suất tính toán SPF – Multiarea OSPF cô lập các thay đổi cấu trúc liên kết trong một khu vực. Cũng như giảm sự quá tải LSA dừng ở khu vực biên.
Các trạng thái trong OSPF
Trạng thái | Mô tả |
---|---|
Trạng thái Down |
|
Trạng thái Init |
|
Trạng thái Two-Way |
|
Trạng thái | Mô tả |
---|---|
Trạng thái ExStart |
|
Trạng thái Exchange |
|
Trạng thái Loading |
|
Trạng thái Full |
|
Thiết lập Neighbor
Để xác định xem Neighbor (hàng xóm) OSPF nào có trên liên kết hay không, Router sẽ gửi một gói Hello có chứa Router ID của nó ra trên tất cả các interface được bật OSPF. Gói Hello được gửi đến địa chỉ multicast IPv4 dành riêng cho tất cả các router OSPF 224.0.0.5. Chỉ các router OSPFv2 sẽ xử lý các gói này.
OSPF Router ID được sử dụng để xác định duy nhất từng Router trong một OSPF Area. Router ID là một số 32 bit được định dạng giống như địa chỉ IPv4.
Khi một Router hàng xóm đã bật OSPF nhận được gói Hello có Router ID không nằm trong danh sách hàng xóm của nó, Router sẽ cố gắng thiết lập qua hệ lân cận với Router khởi tạo.
Quá trình Router thiết neighbour trên một mạng multiaccess – là nơi có xảy ra quá trình bầu chọn DR và BDR gồm các bước sau:
Bước | Thay đổi trạng thái | Mô tả |
---|---|---|
1 | Down sang Init State |
|
2 | Init State |
|
3 | Two-Way State |
|
4 | Bầu chọn DR & BDR |
|
Đồng bộ OSPF Database
Sau trạng thái Two-Way, các Router chuyển sang trạng thái đồng bộ Database (cơ sở dữ liệu). Đây là một quá trình ba bước, như sau:
- Quyết định Router đầu tiên gởi đồng bộ: Router có Router ID cao nhất sẽ gửi DBD của nó trước.
- Trao đổi DBD: Khi trao đổi database, những router phải xác nhận từng DBD bằng gói LSAck.
- Gửi LSR: Khi Router so sánh thông tin trong gói DBD với LSDB nội bộ. Nếu DBD có thêm thông về link mới, Router sẽ chuyển sang trạng Loading.
Sau khi tất cả các LSR đã được trao đổi và thỏa mãn, các router được coi là đồng bộ và ở trạng thái Full state. Các bản cập nhật (LSU) được gửi:
- Khi một thay đổi được nhận thấy (Sự tăng của Updates)
- Cứ sau 30 phút
Sự cần thiết của bầu chọn DR và BDR
Multiacess Network có thể tạo ra hai thách thức đối với OSPF liên quan đến việc tràn ngập LSA, như sau:
- Tạo nhiều quan hệ láng giềng (adjacencies) – Mạng Ethernet có khả năng kết nối nhiều router OSPF qua một liên kết chung. Việc tạo các nhiều adjacencies với mọi router sẽ dẫn đến quá nhiều LSA được trao đổi giữa các router trên cùng một mạng.
- Tràn ngập LSA trên diện rộng – Router chạy link-state sẽ gởi tràn ngập LSA khi OSPF được khởi tạo hoặc khi có thay đổi về cấu trúc liên kết.
- Khi tăng số lượng router cũng làm tăng số lượng LSA được trao đổi giữa các Router. Sự tràn ngập LSA gây ra sự hỗn loạn và ảnh hưởng đáng kể đến hoạt động của OSPF.
Vậy nên, trên multiaccess networks, OSPF sẽ bầu chọn một DR và BDR
- DR (Designated Router) làm điểm thu thập và phân phối cho tất các LSA được gửi và nhận. Một BDR cũng được bầu chọn trong trường hợp DR bị lỗi. Tất cả các router sẽ khác trở thành DROTHER. DROTHER là router không phải là DR cũng không phải là BDR.
- Router có Router ID cao nhất hoặc độ ưu tiên cao nhất được bầu làm DR, và router có Router ID cao nhì được bầu làm BDR.
- Ví dụ trên hình, Router A thông báo cho tất cả các DR OSPF qua multicast IP 224.0.0.6. DR thông báo cho những Router khác thông qua 224.0.0.5.
- Lưu ý: DR chỉ được sử dụng để phân phối LSA. Router sẽ vẫn sử dụng next-hop router tốt nhất được chỉ ra trong bảng định tuyến để chuyển tiếp tất cả các gói khác.
OSPFv3
- OSPFv3 tương tự với OSPFv2 để sử dụng cho IPv6.
- OSPFv3 sẽ chạy song song với OSPFv4 trên một router