test

Giới thiệu về OSPF

OSPF là giao thức định tuyến động chạy theo kiểu link-state, nó là 1 trong những giao thức định tuyến quan trọng mà bạn cần phải hiểu, rât nhiều các doanh nghiệp hiện nay đều sử dụng OSPF, nó có thể chạy trên nhiều loại thiết bị, nên khá phổ biến. Trong bài này tôi sẽ giới thiệu cho các bạn về OSPF.
Bạn biết tới hệ thống định vị và bản đồ chứ. Nó giúp chúng ta có thể di chuyển từ điểm này tới điểm khác với 1 đường đi ngắn nhất và nhanh nhât dù cho hệ thống giao thông của chúng ta phức tạp tới mức nào.
Giao thức định tuyến loại link-state cũng vậy. Bạn có 1 hệ thống mạng phức tạp, nếu bạn có đầy đủ thông tin của hệ thống bạn chỉ cần tính toán đường đi ngắn nhất cho tất cả các điểm đích đến. Nếu so với giao thức loại distance vector thì nó ưu thế hơn nhiều, vì distance-vector bạn không thể nắm toàn bộ được topo trong database.
Giờ hãy xem ví dụ nhé.

  • Link: Nó là các interface của các router.
  • State: Mô tả về các interface và làm thế nào để chúng có thể kết nối được với router hàng xóm.
Giao thức loại link-state sẽ gửi link-state advertisement (LSA) tới tất cả các link-state router khác. Khi tất cả các router đã nhận được gói tin LSA nó có thể xây dựng lên link-state database (LSDB)
Nhưng nếu như bạn có nhiều router chạy OSPF không có nghĩa là mỗi 1 router sẽ gửi quảng báo LSA tới toàn bộ các router khác, như vậy sẽ khá tốn tài nguyên hệ thống, bạn có thể làm 1 kiểu khác.

Như trên bạn thấy là có 8 routers chạy OSPF, mỗi router sẽ tạo neibghbor với các routers khác, gửi các gói tin hello đi, đẩy LSA và xây dựng LSDB, vậy chuyện gì sẽ xảy ra?
Oa. Ở đây chúng ta đã có full-mesh của OSPF neighbor. Mỗi router sẽ đẩy LSAs cho toàn bộ các router khác, chúng ta sẽ có rất nhiều OSPF traffic, nó ko tốt 1 tí nào. Như tối đã nói ở trên, chúng ta có 1 cách khác để giải quyết vấn đề này,
A ha. Nhìn ít nhất là đỡ rối mắt hơn phải ko các bạn. Ở đây 1 router sẽ nhận nhiệm vụ gửi và nhận các gói tin LSA cho các routers khác. Nó sẽ nhận toàn bộ các gói tin LSA của các routers, cập nhật và củng chỉ nó gửi LSA cho các routers khác. Các router khác chỉ gửi và nhận LSA với duy nhất 1 router đó mà thôi. Như vậy traffic OSPF trong mạng đã giảm đi khá nhiều mà vẫn không ảnh hưởng tới hoạt động của OSPF phải không nào. Ở đây router chuyên nhận và gửi LSA của các router khác ta gọi là DR (Designated Router). Tất cả các router khác chỉ cần tạo neighbor với BR là ok rồi.
Với mô hình DR router thì toàn bộ traffic OSPF có thể giảm xuống phải không nào. Nhưng sẽ thế nào khi mà DR router trong OSPF bị lỗi, lúc này các router khác lại không thiết lập neighbor với nhau. Hệ thống mạng lại trục trặc rồi. Để giải quyết vấn đề này chúng ta có thêm khái niệm BDR (Bacup Designated Router) Đây chính là router sẽ làm nhiệm vụ backup cho DR router khi mà DR router gặp trục trặc. Như vậy giờ các router khác còn phải tạo neighbor với cả DR và BDR.
Giờ chúng ta đi vào các khái niệm khác nhé.
Trong OSPF có 1 khái niệm là areas, mặc định ospf sẽ luôn có 1 area đó là erea 0, nó cũng được gọi là backbone area

Chúng ta sẽ có nhiều areas, như area 1, 2, 3... Tất cả chúng đều phải kết nói với backbone area, Nếu bạn muốn area1 và 2 kết nối được vơi nhau, chúng đều phải kết nối với đi qua area0. 
Vậy tại sao chúng ta lại cần làm việc với area, hãy ghi nhớ chúng ta có LSA, và LSA có nhiều loại khác nhau, giả sử bạn có 100 routers cùng trong area0, tất cả chúng sẽ gửi LSA tới DR và BDR, như vậy bảng định tuyến của mỗi router sẽ chứa rất nhiều route. Với việc chia erea thì bảng định tuyến của mỗi router chỉ chứa các route của area nó nằm trong đó. Còn lại nó sẽ nhân route từ việc redistrbuild từ border area. Việc đó sẽ giảm đáng kể độ lớn của bảng định tuyến, giúp giảm tài nguyên lưu trữ phần cứng trên router.
Một khi bạn cấu hình OSPF trên router thì nó sẽ bắt đầu gử gói tin hello tới các interface bật OSPF. Nếu như 1 router khác nhận được gói tin hello đó, chúng sẽ bắt đầu quá trình thiết lập neighbor.



Phía trên là các thông tin liên quan tới gói tin hello được gửi và nhận. Hãy xem ý nghĩa từng giá trị nhé
  • Router ID: Mỗi router trong OSPF cần có 1 ID định danh. Nếu chúng ta không đặt thì nó sẽ lấy địa chỉ IP cao nhất trong mỗi interface.
  • Hello/Dead interval: Cứ x giây thì router lại gửi gói tin hello đi để kiểm tra trạng thái neighbor. Và nếu cứ sau x giây nào đó router của bạn không nhận được gói tin hello từ hàng xóm thì nghĩa là hàng xóm của bạn đang có vấn đề (Router hỏng, link die). 2 giá trị này giữa 2 router cần phải khớp nhau trong quá trình thiết lập neighbor.
  • Neighbor: Tất cả các router khác đều là neighbor trên router của bạn khi nhận và gửi được gói tin hello.
  • Area ID: Giá trị này thể hiện area router đang nằm trong nó. Giá trị này cũng cần khớp nhau trong quá trình tạo neighbor
  • Router Priority: Giá trị này sẽ quy định xem router nào sẽ trở thành DR hay BDR trong mạng
  • DR and BDR IP address: Địa chỉ IP của DR và BDR.
  • Authentication password: Bạn có thể sử dụng text hoặc MD5 để tạo xác thực giữa 2 routers chạy OSPF. Trong quá trình tạo neighbor giữa 2 routers, giá trị này cần phải khớp nhau.
  • Stub area flag: OSPF có nhiều loại erea khác nhau, cả 2 router đều phải đồng ý với loại erea trên mỗi loại router.
Như tôi đã diễn dải bên trên, mỗi OSPF router đều cần 1 router ID. Mặc định router sẽ lấy IP cao nhất để làm router ID. Nhưng để ổn định hệ thống khi bạn thay đổi IP, thường chúng ta sẽ sử dụng loopback interface để làm router ID.
Ok rồi.Tất cả mọi thứ đều ổn, chúng ta đã cấu hình OSPF trên 2 routers, chúng đã thiết lập neighbor thành công và bắt đầu trao đổi LSA. Sau khi trao đổi xong chúng sẽ xây dựng LSDB và có full topology của hệ thống. Bước tiếp theo là chạy thuật toàn SPF để xem đường đi nào ngắn nhất giữa các routers.
Hãy ghi nhớ 1 thông số cực quan trọng đó là metrics. Metri là giá trị mà router sử dụng để tính toán đường đi tốt nhất. OSPF sử dụng metric được gọi là cost, cost được tính toán cơ bản trên bandwidth của interface
Cost = Reference Bandwidth / Interface Bandwidth
Reference Bandwidth  là giá trị mặc định trên switch là 100Mb. Vậy switch sẽ tính toán cost như thế nào.
Nếu bạn có 100Mb interface cho OSPF. cost = 100Mb / 100Mb = 1
Nếu bạn có 10Mb interface cho OSPF. Cost = 100Mb / 10Mb = 10
Nếu bạn có 1Mb interface cho OSPF. Cost = 100Mb / 1Mb = 100
Cost có giá trị thấp hơn thì sẽ tốt hơn trong quá trình tính đường của OSPF.
Hãy nhìn ví dụ trên nhé. Chúng ta 1 router bên trái đang tìm kiếm đường đi ngắn nhất tới đích bên phải. Vậy đường đi nào nó sẽ chọn. Bạn có thể nhìn ngay rồi đúng ko nào.
Vậy trường hợp này thì sao?
Chúng ta có 2 đường với cost bằng nhau phải không nào? Chúng sẽ thực hiện load balancing. Chúng ta cũng có các chú ý liên quan tới load balancing trong OSPF.

  • Đường đi phải có cost bằng nhau.
  • 4 đường đi có cost bằng nhau sẽ được lưu trong bảng routing.
  • Tối da chỉ có 16 đường có cost bằng nhau.
  • Để tạo cost bằng nhau chúng ta có thể chỉnh cost của link.
Nếu như cost đường đi không bằng nhau. chúng ta có thẻ chỉnh cost bằng tay trên mỗi interface. IOS 15 trở lên giờ đã hỗ trợ tối ra 32 đường có cost bằng nhau trong OSPF.
1 điểm cuối cùng tôi muốn nhấn mạnh với các bạn đó là xác thực
  • Xác thực có thể sử dụng cả text và MD5
  • Bạn có thể bật xác thực trên nhiều area hoặc 1 erea.
Đó là toàn bộ các phần cơ bản liên quan trới OSPF. Đây là 1 phần cực quan trọng trong công việc hàng ngày của các network engineer. Vì thế các bạn cần phải đặc biệt chú ý nhé.
Trân trọng!
Giới thiệu về OSPF Giới thiệu về OSPF Reviewed by phucvm on tháng 8 25, 2019 Rating: 5

Không có nhận xét nào:

Được tạo bởi Blogger.