b. Giao thức thông tin định tuyến phiên bản RIPv2
3.6.1 Khái niệm Neighbor
-Các thiết bị được kết nối trực tiếp với nhau gọi là Neighbor
3.6.2 Cấu trúc dữ liệu Neighbor
Trong cấu trúc dữ liểu của Neghbor gồm các thành phần sau
Neighbor ID: là Router ID của Neighbor.
Neighbor IP: là địa chỉ IP của giao diện nối tới mạng của Neighbor. Khi một gói OSPF
Area ID: để hai Router trở thành các Neighbor của nhau, Area ID trong gói Hello nhận
được phait phù hợp với Area ID của giao diện nhận
Interface: là giao diện gắn vào mạng của mạng chưa Neighbor.
Neighbor Priority: là Router Priority của Neighbor được chỉ ra trong gói tib Hello. State: là trạng thái chức năng của Neighbor sẽ được trình bày ở phần sau.
Poll Interval: Gía trị này chỉ sử dụng đối với các Neighbor trong mạng NBMA. Vì các
Neighbor không thể tự động khám phá trong mạng NBMA nếu các Neighbor này ở trạng thái Down, do vậy gói Hello sẽ được gửi tới các Neighbor sau mỗi khoảng thời gian nhất định. Khoảng thời gian này gọi là Poll Interval.
Neighbor Options: là các khả năng OSPF tuỳ chọn được hỗ trợ Neighbor. Các tuỳ chọn
này được trình bày ở phần sau.
Anactivity Time: la Time có chuy kỳ là Router Dead Interval. Time được reset khi nhận
được gói tin Hello từ Neighbor. Nếu Inctivity Time hết hiệu lực mà chưa nhận được gói tin Hello, Neighbor sẽ được khai báo là Down.
Designated Router: Địa chỉ này chứa trong trường DR của gói tin Hello.
Backup Designate Router: Địa chỉ này chứa trong trương BDR của gói tin Hello.
Master / Slave: Quan hệ chủ- tớ (được thoả thuận trong trạng thái Exstart) thiết lập
Neighbor nào sẽ điều khiển việc đồng bộ cơ sở dữ liệu.
DD Sequence Number: là số trình tự gói Database Description (DD) đang được gửi tới
Neighbor.
Last Received Database Description Packet: Các bít Initilize, More, Master, các Option
và số trình tự của gói tin DD nhận được cuối cùng được ghi trong cơ sở dữ liệu Neighbor. Thông số này dùng để xác định gói tin DD tiếp theo có phải là bản sao của gói trước.
Link State Retransmission List: là danh sách các LSA đã được tràn lụt trên Adjacency
nhưng chưa được công nhận. LSA sẽ được truyền lại sau khoảng thời gian RxmInterval cho đến khi chúng nhận được công nhận hoặc Adjacency bị phá vỡ.
Database Summary List: là danh sách các LSA được gửi tới Neighbor trong gói DD
trong quá trình đồng bộ cơ sở dữ liệu. Các LSA tạo nên cơ sở dữ liệu trạng thái liên kết khi Router chuyển sang trạng thái Exchange.
Link State Request List: Là danh sách các LSA trong các gói DD của Neighbor “mới”
hơn các LSA trong cơ sở dữ liệu trạng thái liên kết. Các gói yêu cầu trạng thái liên kết được gửi tới Neighbor yêu cầu các bản copy của các LSA này. Khi nhận được các LSA yêu cầu trong các gói cập nhận trạng thái liên kết,danh sách yêu cầu trạng thái liên kết sẽ được rút dần cho đến hết.
3.6.3 Các trạng thái Neighbor
Một Router sẽ chuyển Router qua một số trạng thái trước khi Neighbor được coi là Full Adjacency. Các trạng thái đó bao gồm: Down, Attemt, Init, 2-Way, Extart, Exchange, Loadinh, và Full.
Down: là trạng thái đầu tiên của Neighbor khi cuộc hôi thoại (giữa Router và Neighbor)
chỉ ra rằng không có gói Hello nào được gửi từ Neighbor trong Router Dead Interval cuối cùng. Các gói Hello không gửi tới Neighbor bị Down trừ trường hợp các Neighbor này thuộc mạng NBMA. Trong trường hợp này, các gói Hello được gửi theo chu kỳ Poll Interval. Nếu Neighbor chuyển xuống trạng thái Down từ trạng thái cao hơn thì danh sách truyền lại trạng thái liên kết, mô tả cơ sở dữ liệu, và yêu cầu trạng thái liên kết bị xoá bỏ.
Attempt: trạng thái đầu tiên của Neighbor trong mạng NBMA, ở đây các Neighbor được
cấu hình bằng tay. Một Router (đủ khả năng để trở thành DR) sẽ chuyển một Neighbor sang trạng thái Attemp khi một giao diện nối tới Neighbor được kích hoạt đầu tiên khi Router là DR hoặc BDR. Một khi Router sẽ gửi các gói tin một Neighbor ở trạng thái Attempt theo chu kỳ HelloInterval thay vì PollInterval.
Hình 3.2 Sự chuyển đổi trạng thái từ Down sang Full
Init: Trạng thái này chỉ ra rằng đã nhận được gói Hello từ Neighbor trong Router Dead
Interval cuối cùng nhưng kết nối hai chiều chưa được thiết lập. Router sẽ chứa Router ID của tất cả các Neighbor ở trạng thái này hoặc trạng thái cao hơn trong trường hợp Neighbor của gói Hello.
2-Way: Trạng thái này chỉ ra rằng Router đã “nhìn thấy ” Router ID của nó trong trường
Neighbor của gói Hello mà Neighbor đã gửi tới. Điều này có nghĩa là kết nối hai chiều đã được thiết lập. Trong mạng đa truy nhập, Neighbor phải ở trạng thái này hoặc cao hơn để có thể được chọn là DR hoặc BDR. Việc nhận một gói DD từ một Neighbor ở trạng thái Init sẽ chuyển Neighbor này sang trạng thái 2-Way.
ExStart: Ở trạng thái này, Router và các Neighbor của nó thiết lập quan hệ Masterr/ Slave và xác định số trình tự DD đầu tiên để chuẩn bị cho việc trao đổi các gói DD. Neighbor có địa chỉ giao diện cao nhất sẽ là Master
Exchange: Router gửi các gói DD mô tả toàn bộ cơ sở dữ liệu trạng thái liên kết của nó tới các Neighbor đang ở trạng thái Exchange. Router cùng gửi các gói yêu cầu trạng thái liên kết tới các Neighbor ở trạng thái này để yêu cầu các LSA mới nhất.
Loading: Router sẽ gửi các gói yêu cầu trạng thái liên kết tới các Neighbor ở trạng thái này để yêu cầu các LSA mới hơn đã chỉ ra ở trạng thái Exchange nhưng chưa nhận được Full: Neighbor ở trạng thái này là Adjaenyce hoàn toàn và các Adjacency sẽ xuất hiện trong các Router LSA và Network LSA.
Hình 3.3 Sự chuyển đổi trạng thái từ Init sang Full
Biến cố vào Ý nghĩa
IE1
IE2
Chỉ xảy ra đối với các Neighbor kết nối với mạng NBMA, IE1 xảy ra bởi một trong các điều kiện sau:
1. Giao diện nối tới mạng NBMA được kích hoạt đầu tiên và Neighbor đủ điều kiện tham gia bầu cử DR.
2. Router là DR hoặc BDR,và Neighbor không đủ điều kiện tham gia bầu cử để trở thành DR
Một gói Hello hợp lệ được nhận từ Neighbor. Neighbor không thể liên lạc được nữa.
IE3 IE4 IE5 IE6 IE7 IE8 IE9 IE10 IE11
Router nhận nhìn thấy Router ID của nó đầu tiên trong gói Helli của Neighbor hoặc nhận được gói DD từ Neighbor.
Neighbor không thể thiết lập Adjacency. Xảy ra bởi một trong các điều kiện sau:
1. Trạng thái Neighbor chuyển trước tiên sang trạng thái 2-Way.
2. Trạng thái giao diện thay đổi.
Adjacency sẽ được hình thành với Neighbor này.
Quan hệ chủ tớ được thiết lập và số trình tự DD được trao đổi. Việc trao đổi các gói DD được hoàn thành.
Các khoản mục còn tồn tại trong danh sách yêu cầu trạng thái liên kết.
Danh sách yêu cầu trạng thái liên kết rỗng.
Adjaceny sẽ được phá vỡ và được Reset lại, IE12 xảy ra bởi một trong các điều kiện sau:
1. Nhận được gói DD có số trình tự DD không đúng
2. Nhận được gói DD có trường Option khác với trường Option của gói DD cuối cùng.
3. Nhận được gói DD khác ngoài gói đầu tiên có bit Init được thiết lập.
4. Nhận được gói yêu cầu một LSA không có trong cơ sở dữ liệu.
IE13
IE14 IE15
IE16
Nhận được một gói Hello từ Neighbor trong đó Router ID của Router nhận không có trong trường Neighbor.
Xảy ra trạng thái giao diện thay đổi
Adjacency với Neighbor này sẽ tiếp tục tồn tại hay tiếp tục hình thành
Adjacency với Neighbor này sẽ không tiếp tục tồn tại hay không tiếp tục hình thành.
Quyết định Ýnghĩa
DP1
DP2
Một Adjacency sẽ được thiết lập với Neighbor hay không ? Một Adjacency sẽ được hình thành nếu một trong các điều kiện sau xảy ra:
1. Loại mạng là Point to Point. 2. Loại mạng là Point to Multipoint. 3. Loại mạng là liên kết ảo.
4. Router là DR trong mạng của Neighbor. 5. Router là BDR trong mạng của Neighbor. 6. Neighbor là DR.
7. Neighbor là BDR.
Danh sách yêu cầu trạng thái liên kết đối với Neighbor này rỗng không ?
Adjacency với Neighbor có tiếp tục tồn tại hay không?
3.6.4 Thiết lập mối quan hệ thân mật (Adjacency) của các Neighbor
Các Neighbor trong các mạng Point to Point, Point to Multipoint, và liên kết ảo luôn thiết lập Adjacency với nhau trừ phi các tham số trong các gói Hello của chúng không phù hợp.
Trong các mạng quảng bá và NBMA, DR và BDR sẽ thiết lập Adjacency với tất cả các Neighbor còn các Drother sẽ không thiết lập Adjacency với các Drother khác.
Quá trình xây dựng Adjacency sử dụng ba loại gói OSPF sau: 1. Gói mô tả cơ sở dữ liệu DD (loại 2).
2. Gói yêu cầu trạng thái liên kết (loại 3). 3. Gói cập nhật trạng thái liên kết loại 4).
Gói DD đặc biệt quan trọng trong quá trình xây dựng Adjacency. Các gói DD chứa Header của các LSA trong cơ sở dữ liệu trạng thái liên kết của Router gốc. Router nhận sẽ nhận các gói DD và kiểm tra các Header này để quyết định xem liệu nó đã có bản copy mới nhất của LSA trong cơ sở dữ liệu của nó. Ngoài ra gói DD còn chứa ba cờ được sử dụng để quản lý quá trình xây dựng Adjacency. Ba cờ đó là:
1. Bit I (Initial bit): I=1 chỉ ra rằng gói DD đầu tiên gửi.
2. Bit M (More bit): M=1 chỉ ra rằng đây không phải gói DD cuối cùng được gửi. 3. Bit MS (Master/ Slave bit):MS =1 chỉ ra rằng gói DD được gửi từ Router là
Master.
Khi cuộc đàm phán MasterSlave bắt đầu ở trạng thái Exstart, cả hai Neighbor sẽ cùng yêu cầu trở thành Master bằng cách gửi một gói DD rỗng với bit MS = 1. Neighbor có Routrer ID thấp hơn sẽ là Slave truyền trở lại gói DD có MS = 0 và số trình tự DD được lập theo số trình tự của Master. Gói DD này sẽ là gói DD đầu tiên chứa các bản tóm tắt LSA. Khi cuộc đàm phấn Master/ Slave hoàn thành, trạng thái Neighbor sẽ chuyển sang Exchange.
Ở trạng thái Exchange, các Neighbor sẽ tiến hành đồng bộ cơ sở dữ liệu của chúng. Danh sách tóm tắt cơ sở dữ liệu được ghi cùng với các Header của tất cả các LSA trong cơ sở dữ liệu của Router. Các gói DD chứa danh sách các Header của các LSA được gửi tới Neighbor.
Nếu một Router thấy rằng Neighbor của nó có một LSA không có trong cơ sở dữ liệu của nó, hoặc thấy rằng Neighbor có bản copy của một LSA (đã biết) mới hơn, nó đặt LSA này vào danh sách yêu cầu trạng thái liên kết. Sau đó nó gửi yêu cầu trạng thái liên kết để yêu của bản copy của LSA này. Các gói cập nhật trạng thái liên kết vận chuyển các LSA được yêu cầu. Khi nhận được các LSA yêu cầu,Router sẽ xóa Header của các LSA nhận được khỏi danh sách yêu cầu trạng thái liên kết.
Tất cả các LSA gửi đi trong gói cập nhật trạng thái liên kết phải được xác nhận. Do vậy, các LSA đã được truyền được ghi vào danh sách truyền lại trạng thái liên kết. Khi một LSA được xác nhận, nó sẽ được xóa khỏi danh sách này. LSA có thể được xác nhận theo hai cách:
• Xác định rõ ràng: Khi nhận được gói xác nhận trạng thái liên kết chứa LSA Header.
• Xác nhận ngầm: Khi nhận được gói cập nhật trạng thái liên kết chứa phiên bản LSA giống với phiên bản đã gửi. (Cả hai LSA đều mới hơn các LSA khác).
Master điều khiển quá trình đồng bộ và đảm bảm chỉ có gói DD được truyền đi vào thời điểm đó. Khi Slave nhận một gói DD từ Master, Slave xác nhận này bằng cách gửi một gói DD có cùng số trình tự tới Master. Nếu Master không nhận được xác nhận của gói này trong khoảng thời gian RxInterval, nó sẽ gửi tiếp bản copy của gói đó đến Slave. Slave gửi các gói DD chỉ để đáp lại các gói DD mà nó nhận từ Master. Nếu gói DD nhận được có số trình tự mới, Slave gửi gói DD có cùng số trình tự với gói này. Nếu số trình tự của gói nhận được giống với gói xác nhận trước đó, gói xác nhận được truyền lai.
Khi quá trình đồng bộ hoàn tất, một trong hai sự chuyển đổi trạng thái sau sẽ diễn ra:
• Nếu vẫn còn các mục trong danh sách yêu cầu tạng thái liên kết, Router sẽ chuyển trạng thía của Neighbor sang trạng thía Loading.
• Nếu danh sách yêu cầu trạng thái là rỗng, Router sẽ chuyển trạng thái của Neighbor sang trạng thái Full.
Master biết rằng quá trình đồng bộ đã hoàn tất khi nó gửi tất cả các gói DD cần thiết để diễn tả đầy đủ cơ sở dữ liệu trạng thái liên kết của nó tới Slave và nhận được gói DD với bit M=0. Slave biết rằng quá trình đồng bộ đã hoàn tất khi nó nhận được gói DD có bit M =0 và gửi gói DD xác nhận có bit M = 0.
Hình dưới đây chỉ ra vi dụ về một trình đồng bộ cơ sở dữ liệu cùng với sự chuyển đổi cơ sở dữ liệu cùng với sự chuyển đổi trạng thái Neighbor.
Hình 3.4 Ví dụ một quá trình đồng bộ cơ sở dữ liệu
Quá trình đồng bộ cơ sở dữ liệu ở hình trên gồm các bước sau:
1. RT1 được kích hoạt trong mạng đa truy nhập và gửi một gói Hello. Do nó chưa biết được về một Neighbor nào, nên trường Neighbor của gói là rỗng, trường DR và BDR được lập bằng 0.0.0.0.
2. RT2 nhận được gói Hello từ RT1, nó tạo ra một cấu trúc dữ liệu Neighbor cho RTT1 và chuyển trạng thái của RT1 thành Init. RT2 gửi một gói Hello chứa Router ID của RT1 trong trướng Neighbor và địa chỉ giao diện của nó chứa trong trường DR.
3. Khi nhận được gói tin Hello từ RT2, RT1 sẽ biết được Router ID của mình. RT1 tạo một cấu trúc dữ liệu Neighbor cho RT2 và chuyển trạng thái của RT2 sang trạng thái Exstart để chuẩn bị cho việc đàm phán Master/ Slave.Sau đó nó tạo ra một gói DD rỗng (không chứa các Header của các LSA ) có số trình tự là x, bit I =1 (chỉ ra răng đây không phải là gói DD đầu tiên của RT1), bit M=1 (chỉ ra rằng đây không phải là gói DD cuối cùng), bit MS=1 (chỉ ra rằng RT1 muốn làm Master).
4. RT2 chuyển trạng thái của RT1 sang trạng thái Exstart trong lúc nhận gói DD. Sau đó nó gửi một gói DD phản hồi có số trình tự là y. RT2 có Router ID cao hơn RT1 nên nó đặt bit MS=1. Do gói DD này dùng cho quá trình đàm phán Master/Slave nên nó cũng rỗng như gói đầu tiên.
5. RT1 chấp nhận RT2 làm Master và chuyển trạng thái của RT2 sang Exchange. RT1 tạo một gói DD có số trình tự là y, bit MS= 0 (chỉ ra rằng nó là Slave). Gói này sẽ chứa các LSA Header từ danh sách tóm tắt trạng thái liên kết của RT1. 6. RT2 chuyển trạng thái của RT1 sang trạng thái Exchange trong khi nhận gói DD
của RT1. Nó gửi một gói DD chứa các LSA Header từ danh sách tóm tắt trạng thái liên kết của nó và tăng số trình tự DD lên y+1.
7. RT1 gửi một gọi xác nhận với số trình tự là y+1 tới RT2. Qúa trình tiếp tục như vậy. Khi RT2 gửi gói DD với các LSA Header cuối cùng trong danh sách tóm tắt trạng thái liên kết của nó, nó đặt bit M = 0.
8. RT1 nhận được gói cuối cùng này và biết rằng quá trình Exchange đã hoàn tất. Khi này nó đã có các khoản mục cần thiết trong danh sách yêu cầu trạng thái liên kết của nó. Nó chuyển RT2 sang trạng thái Loading và gửi gói xác nhận chứa các LSA Header cuối cùng của nó.
9. Khi nhận được gói DD cuối cùng này của RT1, RT2 chuyển trạng thái của RT1 sang Full vì nó nó không còn khoản mục nào trong danh sách yêu cầu trạng thái liên kết.
10. RT1 gửi các yêu cầu trạng thái liên kết và RT2 gửi các gói cập nhật trạng thái liên kết có chứa các LSA yêu cầu cho đến khi danh sách yêu cầu trạng thái liên kết của RT1 rỗng. Sau đó RT1 sẽ chuyển trạng thái của RT2 sang Full.
3.7 Vùng (Area)
3.7.1 Đinh nghĩa Area
Trong một mạng cỡ lớn với nhiều Router và chạy giao thức định tuyến OSPF do đó