Tại sao tất cả các khu vực phải kết nối với đường trục Khu vực 0 trong OSPF?


22

Câu hỏi này là một bài đăng lại theo đúng nghĩa đen của cùng một câu hỏi được hỏi trên Cộng đồng hỗ trợ của Cisco . Câu trả lời là duy nhất cho Stack Exchange.


Tại sao khu vực 0 là khu vực xương sống trong OSPF? Tại sao tất cả các khu vực khác phải kết nối với nó?

Tôi đã tìm kiếm đúng lý do tại sao tất cả các khu vực phải được kết nối với khu vực 0 trong OSPF. Tôi có một ý tưởng nhỏ, nhưng tôi không rõ ràng với toàn bộ khái niệm.

Nếu 2 khu vực không được kết nối qua khu vực 0 (không rõ ràng), làm thế nào OSPF hoạt động như một giao thức trạng thái liên kết làm tăng khả năng các vòng lặp định tuyến?

Câu trả lời:


39

Xương sống OSPF

Tại sao khu vực 0 là khu vực xương sống trong OSPF? Tại sao tất cả các khu vực khác phải kết nối với nó?

Điều này được giải thích rất rõ trong RFC 3509, Phần 1.2 1 :

1.2 Động lực

Trong các miền OSPF, cấu trúc liên kết vùng bị hạn chế do đó phải có vùng xương sống (vùng 0) và tất cả các vùng khác phải có kết nối vật lý hoặc ảo với đường trục. Lý do cho cấu trúc liên kết giống như ngôi sao này là do định tuyến giữa các khu vực OSPF sử dụng phương pháp vectơ khoảng cách và hệ thống phân cấp khu vực nghiêm ngặt cho phép tránh được vấn đề "đếm đến vô tận". OSPF ngăn chặn các vòng định tuyến giữa các khu vực bằng cách thực hiện cơ chế phân chia đường chân trời, cho phép các ABR chỉ tiêm vào xương sống Tóm tắt-LSA có nguồn gốc từ các tuyến trong khu vực và hạn chế tính toán SPF của ABR chỉ xem xét Tóm tắt-LSA trong khu vực xương sống cơ sở dữ liệu liên kết trạng thái.

OSPF thường được coi là một giao thức trạng thái liên kết . Điều mà một số người bỏ lỡ là OSPF sử dụng cả thuật toán giao thức trạng thái liên kếtgiao thức vector khoảng cách .

  • Các tuyến trong đường trục hoặc khu vực không có đường trục được tính như một giao thức trạng thái liên kết thực hiện ( thuật toán của ref Dijkstra ).
  • Khi OSPF phải thực hiện các tuyến đường không xương sống qua đường trục, nó sử dụng một số hành vi vectơ khoảng cách (tức là các phần của thuật toán Bellman Ford ) để truyền các số liệu LSA Type3 vào các khu vực không có đường trục.

Ví dụ đơn giản về hành vi vectơ khoảng cách của OSPF :

<-- Area 5 --><-- Area 0 --><--           Area 4           -->

R5-----------R1-----------R2------------R3---------------------R4
     Cost 3      Cost 5        Cost 7            Cost 12

               LSA-->          LSA-->
               Type3 LSA       Type3 LSA
               {From R1}       {From R2}
               R5 cost is 3    R5 cost is 8

Xem xét những gì xảy ra với tuyến đường / 32 Loopback cho R5.

  1. R5 gửi LSA Type1 chứa / 32 Loopback
  2. R1 (Khu vực 5 ABR), được kết nối với Khu vực 0; nó dịch LS1 Type1 thành LS3 Type3 với chi phí là 3.
  3. R2 (Khu vực 4 ABR) nhận Loại 3 LSA của R1 (số liệu 3) và thay đổi số liệu thành Loopback của R5, dựa trên chi phí của R2 thành R1 . Bây giờ Type3 LSA cho R5 của R2 có giá 8. Đây là hành vi vectơ khoảng cách tôi đã đề cập ở trên.

Yêu cầu tất cả các tuyến đường không phải đường trục đi qua đường trục là một cơ chế ngăn ngừa vòng lặp.

Kết nối các khu vực OSPF không xương sống tại ABR

Nếu 2 khu vực không được kết nối qua khu vực 0 (không rõ ràng), làm thế nào OSPF hoạt động như một giao thức trạng thái liên kết làm tăng khả năng các vòng lặp định tuyến?

Như chúng ta đã thấy ở trên, OSPF sử dụng hành vi vectơ khoảng cách để gửi các tuyến qua đường trục Khu vực 0. Các giao thức vectơ khoảng cách có các giới hạn nổi tiếng, chẳng hạn như bài toán đếm đến vô cực . OSPF sẽ dễ bị tổn thương với các vấn đề tương tự, nếu chúng ta không có ranh giới về hành vi của nó.


1 RFC 3509 mô tả hành vi ABR của Cisco IOS


18

Khu vực 0 được chọn là xương sống, số 0 hoặc 0.0.0.0 chỉ là một số.

Vì OSPF là trạng thái liên kết, LSDB phải giống hệt nhau trong một khu vực. Điều này là để đảm bảo tính toán SPF phù hợp và để tránh các vòng lặp định tuyến.

Nếu chạy OSPF một vùng, bất kỳ vùng nào cũng có thể được sử dụng, không có yêu cầu phải có vùng 0.

Khi chạy OSPF đa khu vực, phải sử dụng ABR. ABR là một bộ định tuyến có kề trong khu vực 0 và ít nhất một khu vực khác.

Các ABR lấy LSA loại 1 và 2 và thông báo chúng là LSA tóm tắt loại 3 ở các khu vực khác. Đây không phải là một bản tóm tắt các tiền tố, nó là một bản tóm tắt thông tin tô pô. Đây là trong thực tế hành vi vector khoảng cách.

Bởi vì các khu vực khác không có thông tin đầy đủ về nhau, tất cả lưu lượng truy cập giữa các khu vực phải đi qua khu vực 0. Nếu không, có thể có các vòng định tuyến vì không có cấu trúc liên kết đầy đủ.

Do thiết kế này, OSPF không phải chạy SPF đầy đủ khi các liên kết tăng / giảm ở các khu vực khác. Điều này làm tăng khả năng mở rộng.


Mục đích của vùng ospf 0 là ngăn chặn các vòng lặp định tuyến trong miền ospf của anh ta, tôi có đúng không?
Trojan

3
Mục tiêu chính của khu vực 0 là cung cấp kết nối cho các khu vực khác. Bằng cách làm cho thiết kế OSPF về cơ bản trông giống như hub và nói trong đó khu vực 0 là trung tâm, các vòng lặp định tuyến có thể được ngăn chặn.
Daniel Dib

9

Từ "OSPF: Giải phẫu giao thức định tuyến" của John Moy, người đã viết nhiều đặc tả của OSPF.

Việc trao đổi thông tin định tuyến giữa các khu vực về cơ bản là Khoảng cách Vector. Với Khoảng cách Vector, số lượng đường dẫn dự phòng càng lớn bạn càng có các thuộc tính hội tụ kém hơn. OSPF yêu cầu tất cả các khu vực gắn trực tiếp vào xương sống để nó giới hạn cấu trúc liên kết trong một cấu trúc liên kết đơn giản và nói. Điều này giúp loại bỏ các đường dẫn dư thừa và ngăn không cho nó phải chịu các vấn đề 'tính đến vô hạn'.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.