250 Node B chọn đư ờ ng đ ế n node F là đư ờ ng thông qua node C có chi phí là 5. Mọi đư ờ ng khác đ ề u có thể bị lặp vòng hoặc có chi phí cao hơn. Hình 2.2.4.a Hình 2.2.4.b 251 2.2.5. Các loại mạng OSPF Các OSPF router phải thiết lập mối quan hệ láng giềng đ ể trao đ ổ i thông tin đ ị nh tuyến. Trong mỗi một mạng IP kết nối vao router, nó đ ề u cố gắng ít nhất là trở thành một láng giềng hoặc là láng giềng thân mật với một router khác. Router OSPF quyết đ ị nh chọn router nào làm láng giềng thân mật là tuỳ thuộc vào mạng kết nối của nó. Có một số router có thể cố gắng trở thành láng giềng thân mật với mọi router láng giềng khác. Có một số router khác lại có thể chỉ cố gắng trở thành láng giềng thân mật với một hoặc hai router láng giềng thôi. Một khi mối quan hệ láng giềng thân mật đ ã đư ợ c thiết lập giữa hai láng giềng với nhau thì thông tin về trạng thái đư ờ ng liên kết mới đư ợ c trao đ ổ i. Giao tiếp OSPF nhận biết ba loại mạng sau: Mạng quảng bá đ a truy cập, ví dụ như mạng Ethernet. Mạng đ i ể m - n ố i - đ i ể m. Mạng không quảng bá đ a truy cập (NBMA – Nonbroadcast multi-access), ví dụ như Frame Relay. Loại mạng thứ 4 là mạng đ i ể m - đ ế n - nhi ề u đ i ể m có thể đư ợ c nhà quản tr ị m ạ ng cấu hình cho một cổng của router. • • • Hình 2.2.5.a. Ba loại mạng của OSPF. 252 Trong mạng đ a truy cập không thể biết đư ợ c là có bao nhiêu router sẽ có thể kết nối đư ợ c kết nối vào mạng. Trong mạng đ i ể m - đ ế n - đ i ể m chỉ có hai router kết nối với nhau. Trong mạng quảng bá đ a truy cập có rất nhiều router kết nối vào. Nếu mỗi router đ ề u thiết lập mối quan hệ thân mật với mọi router khác và thực hiện trao đ ổ i thông tin về trạng thái đư ờ ng liên kết với mọi router láng giềng thì sẽ quá tải. Nếu có 10 router thì sẽ cần 45 mối liên hệ thân mật, nếu có n router thì sẽ có n*(n-1)/2 mối quan hệ láng giềng thân mật cần đư ợ c thiết lập. Giải pháp cho vấn đ ề quá tải trên là bầu ra một router làm đ ạ i diện (DR – Designated Router). Router này sẽ thiết lập mối quan hệ thân mật với mọi router khác trong mạng quảng bá. Mọi router còn lại sẽ chỉ gửi thông tin về trạng thái đư ờ ng liên kết cho DR. Sau đ ó DR sẽ gửi các thông tin này cho mọi router khác trong mạng bằng đ ị a chỉ mutlticast 224.0.0.5. DR đ óng vai trò như một người phát ngôn chung. Việc bầu DR rất có hiệu quả nhưng cũng có một số nhược đ i ể m. DR trở thành một tâm đ i ể m nhạy cảm đ ố i với sự cố. Do đ ó, cần có một router thứ hai đư ợ c bầu ra đ ể làm router đ ạ i diện dự phòng (BDR – Backup Designated Router), router này sẽ đ ả m trách vai trò của DR nếu DR bị sự cố. Đ ể đ ả m bảo cả DR và BDR đ ề u nhận đư ợ c các thông tin về trạng thái đư ờ ng liên kết từ mọi router khác trong cùng một mạng, chúng ta sử dụng đ ị a chỉ multicast 224.0.0.6 cho các router đ ạ i diện. Hình 2.2.5.b. DR và BDR nhận các gói LSAs. 253 Trong mạng đ i ể m - n ố i - đ i ể m chỉ có 2 router kết nối với nhau nên không cần bầu ra DR và BDR. Hai router này sẽ thiết lập mối quan hệ láng giềng thân mật với nhau. Hình 2.2.5.c 2.2.6. Giao thức OSPF Hello Khi router bắt đ ầ u khởi đ ộ ng tiến trình đ ị nh tuyến OSPF trên một cổng nào đ ó thì nó sẽ gửi một gói hello ra cổng đ ó và tiếp tục gửi hello theo đ ị nh kỳ. Giao thức Hello đư a ra các nguyên tắc quản lý việc trao đ ổ i các gói OSPF Hello. Ở Lớp 3 của mô hình OSI, gói hello mang đ ị a chỉ multicast 224.0.0.5. Đ ị a chỉ này chỉ đ ế n tất cả các OSPF router. OSPF router sử dụng gói hello đ ể thiết lập một quan hệ láng giềng thân mật mới đ ể xác đ ị nh là router láng giềng có còn hoạt đ ộ ng hay không. Mặc đ ị nh, hello đư ợ c gửi đ i 10 giây 1 lần trong mạng quảng bá đ a truy cập và mạng đ i ể m - n ố i - đ i ể m. Trên cổng nối vào mạng NBMA, ví dụ như Frame Relay, chu kỳ mặc đ ị nh của hello là 30 giây. Trong mạng đ a truy cập, giao thức hello tiến hành bầu DR và BDR. Mặc dù gói hello rất nhỏ nhưng nó cũng bao gồm cả phần header của gói OSPF. Cấu trúc của phần header trong gói OSPF đư ợ c thể hiện trên hình 2.2.6.a. Nếu là gói hello thì trường Type sẽ có giá trị là 1. 254 Hình 2.2.6.a. Phần header của gói OSPF. Gói hello mang những thông tin đ ể thống nhất giữa mọi láng giềng với nhau trước khi có thể thiết lập mối quan hệ láng giềng thân mật và trao đ ổ i thông tin về trạng thái các đư ờ ng liên kết. Hình 2.2.6.b. Phần header của gói OSPF Hello. Các thông tin trong phần Hello Interval, Đea Interval và Router ID phải đồng nhất thì các router mới có thể thiết lập mối quan hệ láng giềng thân mật. 2.2.7. Các bước hoạt động của OSPF 255 Khi bắt đ ầ u khởi đ ộ ng tiến trình đ ị nh tuyến OSPF trên một cổng nào đ ó, nó sẽ gửi gói Hello ra cổng đ ó và tiếp tục gửi hello theo đ ị nh kỳ. Giao thức Hello là một tập hợp các nguyên tắc quản lý việc trao đ ổ i gói Hello. Gói Hello mang các thông tin cần thống nhất giữa mọi router láng giềng trước khi có thể thiết lập mối quan hệ thân mật và trao đ ổ i thông tin về trạng thái các đư ờ ng liên kết. Trong mạng đ a truy cập, giao thức Hello sẽ bầu ra m ộ t DR và BDR. DR và BDR duy trì mối quan hệ thân mật với mọi router OSPF còn lại trong cùng một mạng. Hình 2.2.7.a. Bước 1: phát hiện các router láng giềng. Trong từng mạng IP kết nối vào router, router cố gắng thiết lập mối quan hệ thân mật với ít nhất một láng giềng. 256 Hình 2.2.7.b. Bước 2: bầu ra DR và BDR. Quá trình này chỉ được thực hiện trong mạng đa truy cập. Các router đ ã có mối quan hệ thân mật lần lượt thực hiên các bước trao đ ổ i thông tin về trạng thái các đư ờ ng liên kết. Sau khi hoàn tất quá trình này các ở trạng thái gọi la full state. Mỗi router gửi thông tin quảng cáo về trạng thái các đư ờ ng liên kết trong gói LSAs (Link-State Advertisements) và gửi thông tin cập nhật các trạng thái này trong gói LSUs (Link-State Updates). Mỗi router nhận các gói LSAs này từ láng giềng rồi ghi nhận thông tin vào cơ sở dữl iệu của nó. Tiến trình này đư ợ c lặp lại trên m ọ i router trong mạng OSPF. Khi cơ sở dữ liệu về trạng thái các đư ờ ng liên kết đ ã đ áy đ ủ , mỗi router áp dụng thuật toán SPF đ ể tự tính toán chọn đư ờ ng tốt nhất d ự a trên cơ sở dữ liệu mà nó có. Đư ờ ng ngắn nhất là đư ờ ng có chi phí thấp nhất đ ế n mạng đ ích. 257 Hình 2.2.7.c. Bước 3: áp dụng thuật toán SPF vào cơ sở dữ liệu về trạng thái các đường liên kết để chọn đường tốt nhất đưa lên bảng định tuyến. Sau đ ó các thông tin đ ị nh tuyến cần phải đư ợ c bảo trì. Khi có một sự thay đ ổ i nào về trạng thái của đư ờ ng liên kết, router l ậ p tức phát thông báo cho mọi router khác trong mạng. Thời gian Dead interval trong giao thức Hello là một thông số đơ n giản đ ể xác đ ị nh một router láng giềng thân mật còn hoạt đ ộ ng hay không. 258 259 Hình 2.2.7.d. R1 phát hiện một liên kết bị đ ứ t và gửi LSU cho DR bằng đ ị a chỉ multicast 224.0.0.6. DR gửi báo nhận cho R1. Hình 2.2.7.e. Tiếp theo DR gửi LSU mới nhận cho tất cả các router còn lại trong cùng một mạng bằng địa chỉ multicast 224.0.0.5. Sau khi nhận được LSU, các router gửi báo nhận lại cho DR. . cập, giao thức hello tiến hành bầu DR và BDR. Mặc dù gói hello rất nhỏ nhưng nó cũng bao gồm cả phần header của gói OSPF. Cấu trúc của phần header trong gói OSPF đư ợ c thể hiện trên hình. router sẽ có thể kết nối đư ợ c kết nối vào mạng. Trong mạng đ i ể m - đ ế n - đ i ể m chỉ có hai router kết nối với nhau. Trong mạng quảng bá đ a truy cập có rất nhiều router kết nối vào đ i ể m - đ ế n - nhi ề u đ i ể m có thể đư ợ c nhà quản tr ị m ạ ng cấu hình cho một cổng của router. • • • Hình 2.2.5.a. Ba loại mạng của OSPF. 252 Trong mạng đ a truy cập không thể biết đư ợ c