Bài viết CCNA-OSPF
Tài liệu tham khảo cho học viên CCNA của VnPro
OSPF dùng giải thuật SPF để tính tóan đường đi. Giải thuật này còn được gọi là giải thuật Dijkstra. Các routing protocol nhóm link state không broadcast tòan bộ thông tin về bảng định tuyến giống như RIP/IGRP và thay vào đó, OSPF sẽ dùng một quá trình để khám phá các láng giềng (neighbor). Các láng giềng cũng có thể được định nghĩa tĩnh.
Router láng giềng là các router khác, cũng chạy OSPF, có chung subnet với router hiện hành. Khi các router đã thiết lập quan hệ láng giềng với nhau, các router bắt đầu trao đổi các thông tin về đồ hình (topology) của mạng. Giải thuật SPF sẽ chạy trên các database này để tính ra các đường đi tốt nhất.
Khi một interface được chỉ định chạy OSPF, các bước sau diễn ra:
1. Xác định neighbors
a. Bắt đầu ở Down state, router không trao đổi gì với ai.
b. Sang Init state, router gửi hello packet để xác định neighbor. OSPF gửi packet Hello lần đầu tiên và chờ nhận một gói Hello packet từ một OSPF router khác, chuẩn bị cho việc thiết lập quan hệ : Two way hay Adjacency. Init state chỉ giúp router tìm các neighbor của nó thôi. Ở giai đọan này, router chưa thiết lập adjacency
c. Two-way state, router nhận hello hình thành neighbors. Khi này các Router nhận ra neighbor, nhưng không thể share routing information cho nhau được. ; không có bầu chọn DR/BDR trong state này. =>DR là router chính để phân phối cho các router còn lại.
2. Hình thành Adjacency
a. Vào Extart state: Gửi và nhận DBD (DataBase Description), từ đó chọn ra master/slave. Master được quyền gửi các DBD trước.
b. Sang Exchange state: Master gửi DBD cho các slave, slave nhan DBD, so sánh với các thông tin của nó, đồng thời gửi LSAck lại cho master
c. Loading state: Nếu một trong hai bên có thông tin đúng hơn, bên kia sẽ gửi yêu cầu LSRequest, bên này trả lại LSUpdate, bên kia nhận và trả lại LSAck. Trạng thái b, c lặp cho đén khi chúng có cùng thông tin.
d. Full state: Khi này, các router đã có database như nhau, chúng trở thành adjacency của nhau.
Chỉ những Router là adjacency của nhau mới share routing information cho nhau
- Trong serial link (point to point), các Router OSPF cũng tự bầu chọn DR/BDR, không nhất thiết là trong multiaccess
DR, BDR để làm gì?
Khái niệm DR, BDR chỉ dùng khi interface của router nối vào broadcast-multiaccess segment. Để trao đổi được thông tin vói nhau, các router OSPF phải là các adjacent của nhau. Giả sử trong segment có N router chạy OSPF và cùng thuộc một area. Nếu không có DR/BDR, các router phải thiết lập quan hệ adjacency với nhau ==> có N*(N-1)/2 mối quan hệ. Và khi N*(N-1)/2 mqhệ này cùng gửi thông tin update thì ảnh hưởng đến performance của mạng là điều không tránh khỏi. Vì thế, DR sẽ đứng ra làm trung gian, nhận và phân phối các LSA từ các router thành viên (cùng segment), sau đó phân phối đến các router còn lại. BDR chỉ là backup cho DR. Thay vì có N*(N-1)/2 quan hệ, bạn chỉ có N-1 quan hệ vì các router chỉ tạo adjacency với DR thôi.
Vậy nhưng ở mức neighbor, các router vẫn gửi các hello packet cho nhau (10s một lần)
Trong ospf có sử dụng ba ID:
* Router ID : Được gửi đi từ các router trong các gói tin hello.Nó có độ dài 32bit.No có giá trị bằng địa chỉ địa chỉ IP lớn nhất được sủ dụng trên router.Nếu trên router có giao diện loopback được cấu hình thì router ID bằng địa chỉ IP của giao diện loopback đó.Trong trường hợp có nhiều giao diện loopback thì nó lấy địa chỉ lớn nhất của giao diện loopback làm router ID.Router ID được sử dụng để phân biệt các router nằm trong cùng một autonmous system.
* Process ID : là tham số cấu hình khi ta đánh lệnh router ospf process-id.
*Area ID: là tham số để group một nhóm các router vào cùng một area.Các router này cùng chia sẻ hiểu biết về các đường học được trong miền OSPF.
Việc chia thành nhiều area là để tiện việc quản lý đồng thời nó giúp ta giới hạn kích thước của topology database, giả sử nếu ta có duy nhất một vùng với kích thước lớn thì lúc đó ta cũng sẽ có một topology database rất lớn tương ứng khiến cho việc xử lý của router chậm đi.......
Trong ospf định nghĩa một số vùng cơ bản sau:
Metric của OSPF là cost.
Cost được tính dựa trên công thức 10 exp 8 / BW (đọc là: mười lũy thừa tám chia cho băng thông). Băng thông trong công thức trên là băng thông của interface hoặc băng thông được chỉ ra bởi lệnh bandwidth.
Tác giả: Đặng Quang Minh
Tài liệu tham khảo cho học viên CCNA của VnPro
OSPF dùng giải thuật SPF để tính tóan đường đi. Giải thuật này còn được gọi là giải thuật Dijkstra. Các routing protocol nhóm link state không broadcast tòan bộ thông tin về bảng định tuyến giống như RIP/IGRP và thay vào đó, OSPF sẽ dùng một quá trình để khám phá các láng giềng (neighbor). Các láng giềng cũng có thể được định nghĩa tĩnh.
Router láng giềng là các router khác, cũng chạy OSPF, có chung subnet với router hiện hành. Khi các router đã thiết lập quan hệ láng giềng với nhau, các router bắt đầu trao đổi các thông tin về đồ hình (topology) của mạng. Giải thuật SPF sẽ chạy trên các database này để tính ra các đường đi tốt nhất.
Khi một interface được chỉ định chạy OSPF, các bước sau diễn ra:
1. Xác định neighbors
a. Bắt đầu ở Down state, router không trao đổi gì với ai.
b. Sang Init state, router gửi hello packet để xác định neighbor. OSPF gửi packet Hello lần đầu tiên và chờ nhận một gói Hello packet từ một OSPF router khác, chuẩn bị cho việc thiết lập quan hệ : Two way hay Adjacency. Init state chỉ giúp router tìm các neighbor của nó thôi. Ở giai đọan này, router chưa thiết lập adjacency
c. Two-way state, router nhận hello hình thành neighbors. Khi này các Router nhận ra neighbor, nhưng không thể share routing information cho nhau được. ; không có bầu chọn DR/BDR trong state này. =>DR là router chính để phân phối cho các router còn lại.
2. Hình thành Adjacency
a. Vào Extart state: Gửi và nhận DBD (DataBase Description), từ đó chọn ra master/slave. Master được quyền gửi các DBD trước.
b. Sang Exchange state: Master gửi DBD cho các slave, slave nhan DBD, so sánh với các thông tin của nó, đồng thời gửi LSAck lại cho master
c. Loading state: Nếu một trong hai bên có thông tin đúng hơn, bên kia sẽ gửi yêu cầu LSRequest, bên này trả lại LSUpdate, bên kia nhận và trả lại LSAck. Trạng thái b, c lặp cho đén khi chúng có cùng thông tin.
d. Full state: Khi này, các router đã có database như nhau, chúng trở thành adjacency của nhau.
Chỉ những Router là adjacency của nhau mới share routing information cho nhau
- Trong serial link (point to point), các Router OSPF cũng tự bầu chọn DR/BDR, không nhất thiết là trong multiaccess
DR, BDR để làm gì?
Khái niệm DR, BDR chỉ dùng khi interface của router nối vào broadcast-multiaccess segment. Để trao đổi được thông tin vói nhau, các router OSPF phải là các adjacent của nhau. Giả sử trong segment có N router chạy OSPF và cùng thuộc một area. Nếu không có DR/BDR, các router phải thiết lập quan hệ adjacency với nhau ==> có N*(N-1)/2 mối quan hệ. Và khi N*(N-1)/2 mqhệ này cùng gửi thông tin update thì ảnh hưởng đến performance của mạng là điều không tránh khỏi. Vì thế, DR sẽ đứng ra làm trung gian, nhận và phân phối các LSA từ các router thành viên (cùng segment), sau đó phân phối đến các router còn lại. BDR chỉ là backup cho DR. Thay vì có N*(N-1)/2 quan hệ, bạn chỉ có N-1 quan hệ vì các router chỉ tạo adjacency với DR thôi.
Vậy nhưng ở mức neighbor, các router vẫn gửi các hello packet cho nhau (10s một lần)
Trong ospf có sử dụng ba ID:
* Router ID : Được gửi đi từ các router trong các gói tin hello.Nó có độ dài 32bit.No có giá trị bằng địa chỉ địa chỉ IP lớn nhất được sủ dụng trên router.Nếu trên router có giao diện loopback được cấu hình thì router ID bằng địa chỉ IP của giao diện loopback đó.Trong trường hợp có nhiều giao diện loopback thì nó lấy địa chỉ lớn nhất của giao diện loopback làm router ID.Router ID được sử dụng để phân biệt các router nằm trong cùng một autonmous system.
* Process ID : là tham số cấu hình khi ta đánh lệnh router ospf process-id.
*Area ID: là tham số để group một nhóm các router vào cùng một area.Các router này cùng chia sẻ hiểu biết về các đường học được trong miền OSPF.
Việc chia thành nhiều area là để tiện việc quản lý đồng thời nó giúp ta giới hạn kích thước của topology database, giả sử nếu ta có duy nhất một vùng với kích thước lớn thì lúc đó ta cũng sẽ có một topology database rất lớn tương ứng khiến cho việc xử lý của router chậm đi.......
Trong ospf định nghĩa một số vùng cơ bản sau:
- Stub Area: đây là vùng sẽ không nhận những routing update từ bên ngoài (Type 5) nhưng vẫn nhận update từ những Area láng giềng (Type 3).
2. Stotaly stub Area: đây có thể coi là vùng cựu đoan nhất nó không nhật bất cứ routing update nào, và trong bảng routing của nó chỉ có một routing ra ngoai duy nhất là default route. vùng này thích hợp cho những site ở xa có ít network và cần sự giới hạn kết nối ra bên ngoài.
3. NSSA Stub Area: đây là vùng được sử dụng khi kết nối đên ISP hoặc khi có sự redistribute giữa các routing protocol khác nhau. vùng này sẽ nhận các route từ bên ngoài dưới dạng type 7 và sẽ chuyển đổi type 7 này thành type 5 để quảng bá vào các Area khác tại con NNSA ABR.
4. Backbone Area: đây chính là vùng Area 0 và nó connect tới tất cả các area khác còn lại, nếu một area nào đó muốn nối tới Area0 nhưng không nối trực tiếp được thì lúc đó ta phải tao virtual link cho Area này.
Metric của OSPF là cost.
Cost được tính dựa trên công thức 10 exp 8 / BW (đọc là: mười lũy thừa tám chia cho băng thông). Băng thông trong công thức trên là băng thông của interface hoặc băng thông được chỉ ra bởi lệnh bandwidth.
Tác giả: Đặng Quang Minh