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. . 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. 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. độ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