Professional Documents
Culture Documents
Introduction To OSPF
Introduction To OSPF
OSPF là một giao thức định tuyến dạng link-state và nó là một trong những giao thức định tuyến mà bạn cần
hiểu nếu bạn muốn thi chứng chỉ CCNA. Trong bài này tôi sẽ giải thích về cơ bản của OSPF và bạn có thể học
được cách thức của nó hoạt động như thế nào:
Tôi không biết gì về bạn nhưng tôi thích hệ thống định vị. Một điều tốt
khi nghĩ về chúng là bạn có thể lái xe và không cần phải nhìn vào biển
báo giao thông. Điều tồi tệ là tôi hoàn toàn bị mất phương hướng khi nó
không hoạt động. Tôi đọc bản đồ hơi kém (hoặc có thể do tôi không
thích đọc nó) và nếu tôi phải tự tìm đường trong một thành phố lớn thì
tôi chịu.
Giao thức định tuyến link-state tương tự như hệ thống định vị, chúng ta
phải hoàn thành bản đồ trong mạng. Nếu bạn có full map về mạng thì
bạn chỉ cần tính toán đường đi ngắn nhất để đến tất cả các destination khác nhau. Điều này rất tuyệt vời bởi vì
nếu bạn biết tất cả các đường dẫn khác nhau và nó sẽ không có loop bởi vì bạn biết tất cả mọi thứ! Nhược điểm
là tốn nhiều CPU hơn các giao thức định tuyến dạng distance vector. Nó giống như một hệ thống định vị…Nếu
bạn tính toán 1 route từ New York đến Los Angeles nó sẽ lâu hơn khi bạn tính toán 1 route từ 1 con đường này
đến con đường kia trong cùng 1 thành phố.
Hãy xem ở link-state để xem chính xác ý nghĩa của nó như thế nào:
Tất cả các router cần phải có link-state advertisements này như vậy chúng có thể xây dựng link-state database
hoặc LSDB. Cơ bản nhất là tất cả các link-state advertisements là một phần của quá trình xây dựng bảng
LSDB.
Nếu tôi có nhiều OSPF routers, nó có thể không hiệu quả lắm mỗi khi các OSPF routers flood LSAs đến tất cả
các OSPF routers khác. Để tôi show cho bạn 1 ví dụ:
Điều gì sẽ xảy ra nếu tất cả các router chỉ gửi các stuff đến 1 OSPF router, sau đó nó sẽ forward đến tất cả các
OSPF router kia? Tất cả các OSPF routers sẽ biết về tất cả các thông tin định tuyến bên ngoài nhưng chúng ít
tốn kém OSPF traffic hơn. OSPF sẽ sử dụng vài thứ được gọi là DR (Designated Router). Tất cả các OSPF
router của chúng ta chỉ hình thành 1 “full” neighbor adjacency với DR và không hình thành với các router kia.
Chúng ta chỉ sử dụng DR/BDR trong mạng multi-access. Một ví dụ cho mạng multi-access là sử dụng 1 switch.
Và chúng ta không cần làm điều này trên kết nối point-to-point. Chúng chỉ có 1 router kết nối đến router đầu
bên kia vậy thì không có lý do gì để bầu chọn DR/BDR.
LSDB là bức tranh tổng thế của mạng, trong mạng chúng ta gọi là topology.
Bạn có thể so sánh LSDB với một bản đồ đầy đủ của quê hương của mình.
Chỉ có 1 giao thức định tuyến dạng link-state mà chúng ta đang thảo luận đó chính là OSPF (Open Shortest
Path First). Có 1 giao thức định tuyến dạng link-state nữa đó là IS-IS nhưng nó đã bị loại bỏ ở chương trình
CCNA, CCNP và CCIE bởi Cisco.
Phần giới thiệu về giao thức định tuyến link-state của tôi đã đủ, hãy xem OSPF và cách thức của nó hoạt động
như thế nào:
OSPF hoạt động với concept của areas và mặc định bạn luôn luôn có 1 area, thông thường nó là area 0 hoặc
chúng ta có thể gọi đó là backbone area.
Như vậy, tại sao chúng ta lại làm việc với area này? Hãy nhớ rằng, tôi đã giải thích cho bạn về hệ thống định vị
là gì. Nếu bạn nói với hệ thống định vị tính toán từ New York đến Los Angeles nó sẽ lâu hơn so với tính toán
đường đi từ con đường này đến con đường kia trong cùng 1 thành phố. Việc tính toán này được gọi là thuật
toán shortest path first hoặc SPF, vấn đề này cũng áp dụng cho OSPF. Các routers của chúng ta chỉ có một bức
tranh tổng thể về mô hình mạng trong cùng 1 area, bản đồ của bạn càng nhỏ thì thuật toán SPF của bạn hoạt
động càng nhanh.
Hãy nhớ rằng thuật toán SPF có từ những năm thập niên 70 và OSPF được phát minh ở đâu đó vào những năm
thập niên 80…hồi đó chúng ta không có Core 2 Duo/ Quad và i7 và những dòng cao cấp như ngày nay.
Trong hình bạn cũng có thể thấy ở trên bên phải có vùng “other routing domain”. Đây có thể là mạng khác
đang chạy 1 giao thức định tuyến khác (Có lẻ là RIP) và nó có thể import và export các route từ RIP vào trong
OSPF hoặc theo cách khác, Cách này gọi là redistribution.
Các routers trong backbone area (area 0) được gọi là backbone routers.
Routers ở giữa 2 areas (tương tự như 1 router ở giữa area 0 và area 1) thì được gọi là area border routers
hoặc ABR.
Router đang chạy OSPF và được kết nối trực tiếp đến mạng khác mà chạy giao thức định tuyến khác(Ví
dụ RIP) thì được gọi là autonomous system border routers hoặc ASBR.
Một khi bạn cấu hình OSPF, router sẽ bắt đầu gửi các gói tin hello. Nếu bạn cũng nhận được gói tin hello từ
routẻ kia thì bạn có thể thiết lập quan hệ láng giềng.
Tuy nhiên, có một vài trường trong gói tin hello và nhiều thứ của phải match với nhau mới có thể thiết lập quan
hệ láng giềng. Hãy đi vào các items trong gói tin hello và xem chúng là gì:
Router ID: Mỗi OSPF router cần phải có 1 ID duy nhất, nó có thể là địa chỉ IP cao nhất trên bất kỳ
active interface nào. Còn nữa thì tôi sẽ nói sau.
Hello/ Dead Interval: mỗi x giây chúng sẽ gửi 1 gói tin hello, nếu chúng không nghe được bất gói tin
hello từ mạng của chúng ta với x giây thì chúng sẽ khai báo bạn đã chết “dead” và chúng sẽ không thiết
lập quan hệ láng giềng nữa. Các giá trị này phải match cả hai đầu để hình thành láng giềng.
Neighbors: Tất cả các router khác đã thiết lập neighbors và được chỉ rõ ra trong gói tin hello.
Area ID: Đây có thể được gọi là khu vực mà bạn đang sinh sống. Giá trị này phải match cả 2 đầu thì
mới có thể hình thành neighbors.
Router Priority: Giá trị này được định nghĩa để ai có thể trở thành designated hoặc backup designated
router.
Mỗi OSPF router cần phải có một router ID duy nhất, nó có thể là địa chỉ IP cao nhất trên bất active interface.
Trên tất cả các router của Cisco bạn có thể tạo ra loopback interface giống như virtual interface. Bạn có thể cấu
hình địa chỉ IP cho nó và khi bạn thử ping thì nó sẽ phản hồi lại.
Nếu bạn có loopback interface trên OSPF router thì sau đó router sẽ sử dụng địa chỉ IP này để làm router ID
mặc dù nó không phải là địa chỉ IP cao nhất. Tại sao OSPF làm điều này? Loopback interface của bạn sẽ không
bao giờ bị down trừ khi router bị chết.
Việc sử dụng loopback interface bạn có thể làm 2 điều như sau:
Vậy khác nhau là gì? Nếu chúng ta quảng bá nó thì router kia sẽ có thể truy cập và ping được địa chỉ IP của
loopback interface này hoặc sử dụng nó để telnet đến router.
Chúng ta có cấu hình OSPF…chúng ta đã thiết lập quan hệ láng giềng với một loạt các routers và chúng đã trao
đổi thông tin link-state advertisement. Các routers của chúng ta đã xây dựng được LSDB và chúng có bức tranh
tổng thể về topology mạng của chúng ta. Bước tiếp theo là chạy thuật toán SPF và xem shortest path đến
destination là gì.
Bạn còn nhớ metrics? Metric là thứ mà giao thức định tuyến sử dụng để tìm đường đi tốt nhất. OSPF sử dụng
metric và nó gọi là cost dựa trên bandwidth của interface, nó hoạt động như sau:
Reference bandwidth là giá trị mặc định trên Cisco routers là 100Mbit interface. Bạn chia reference bandwidth
cho bandwidth của interface là ra được cost.
Hãy nhìn vào hình ở trên, chúng ta đang ngồi trong router ở bên trái và đang chạy thuật toán SPF để tìm đường
đi ngắn nhất đến destination. Chúng ta sẽ đi đường nào?
Sử dụng router ở trên cùng, chúng ta sẽ có cost là 10+8 = 18. Đường dẫn ở giữa là 5+5 =10. Router ở dưới có
cost là 20+20 =40. Đường dẫn ở giữa chắc chắn có cost thấp nhất như vậy đây là đường path mà chúng ta sẽ sử
dụng!
Hãy nhìn vào mô hình: Như bạn thấy đường dẫn ở trên cùng và ở giữa có cùng cost là 5+5=10. Chúng ta sẽ làm
gì chổ này đây? The path bằng nhau.
Nếu 1 đường dẫn có cost không bằng nhau thì chúng ta có thể làm thủ công là thay đổi cost hoặc bandwidth của
interface.
Một vấn đề cuối cùng mà tôi muốn nói với bạn đó là OSPF authentication:
Đó là tất cả những gì tôi muốn giải thích cho bạn về OSPF. Hy vọng nó sẽ hữu ích cho bạn.