4.1 Neighbor Discovery Protocol
4.1.1 Adress Resolution & Neighbor Discovery Protocol
Neighbor Discovery Protocol là giao thức được định nghĩa cho IPv6. Các Node
mạng dùng giao thức này để phát hiện ra Link-layer Address của các Node lân cận. Giao thức này còn giúp kiểm soát được tình trạng các Node trên mạng (các Node này ở trạng thái Reachable hay Unreachable), nhận biết sự thay đổi của Link-layer Address. Giao thức này hoạt động dựa vào các bản tin ICMPv6.
Bên cạnh các vấn đề liên quan đến tương tác giữa các Node trong một kết nối,
Giao thức này còn được thiết kế để giải quyết các vấn đề sau:
- Router Discovery: Giúp cho các Node xác định Router lân cận trên cùng một
kết nối.
- Prefix Discovery: Giúp cho Node phát hiện ra các IPv6 prefix, để có thể chuyển gói tin đến đích.
- Parameter Discovery: Giúp các Node học được các thông số cần thiết của mạng
(Ví dụ giá trị MTU, Hop limits…).
- Address Autoconfiguration: Giúp tự động cấu hình địa chỉ cho một Interface.
- Address Resolution: Tính năng này tương tự ARP và RARP dùng trong IPv4.
Tính năng này giúp các Node phân giải qua lại giữa Link-layer Address và
Network Layer Address (IPv6).
- Next-hop Detemination: Đây là thuật toán dùng để ánh xạ một IPv6
Destination Address vào IPv6 Address của một Node lân cận, Node mà các gói
tin phải đi qua để đến được đích. Next-hop trong trường hợp này có thể là một
Router trung gian hoặc cũng có thể là một trạm đầu cuối.
- Neighbor Unreachable Detection: Tính năng này giúp các Node phát hiện ra
tình trạng Unreachable của Node lân cận. Trong trường hợp Node lân cận rơi
vào trạng thái này, Node dự phòng có thể được dùng để chuyển các gói tin qua
mạng. Nếu không có Node dự phòng, hệ thống sẽ kích hoạt tính năng Address
Resolution Protocol.
- Duplication Address Detection: Tính năng này giúp nhận biết địa chỉ IP mà
Node sử dụng có trùng với Node nào khác hay không.
- Redirect: Giúp tái định tuyến các gói tin để có thể đạt được một Route ưu thế
hơn. (Tính năng này thường được dùng nhất trong giai đoạn mạng đang hội tụ,
khi mạng đã hoạt động ổn định, ít khi xảy ra hiện tượng này vì route tối ưu đã
được lưu vào cache).
Neighbor Discovery Protocol định nghĩa 5 loại bản tin ICMP sau:
- Router Solicitation message và Router Advertisement message.
- Neighbor Solicitation message và Neighbor Advertisement message.
- Redirect message.
Mục đích sử dụng của mỗi loại bản tin được mô tả như sau:
- Router Solicitation: Khi một Interface của Node (Router hoặc Host) được
kích hoạt, Node tạo ra Router Solicitation message yêu cầu các Router phát
Router Advertisment message để nó có thể cập nhật thông tin ngay mà
không cần chờ hết thời gian được định sẵn.
- Router Advertisement: Bản tin này được các Router gửi đi nhằm thông báo
cho nhau sự hiện diện của nó trên mạng. Bản tin này mang thông tin về các
thông số của kết nối, thông tin về các Prefix kết nối đến nó cũng như các
địa chỉ được gán cho các Interface. Nó còn mang các thông số của mạng
như: Hop limits, MTU... Bản tin này được gửi định kỳ sau một khoảng thời
gian định sẵn. Trong trường hợp nhận được bản tin Router Solicitation, bản
tin Router Advertisement cũng được gửi đi ngay mà không cần đến thời gian
định sẵn.
- Neighbor Solicitation: Node dùng bản tin này để xác định Link-layer
Address của các Node lân cận, còn dùng để kiểm tra trạng thái Reachable
của các Node lân cận mà Link-layer Address của các Node đó đã được lưu
trong Cáche.
- Neighbor Advertisement: Khi một Node nhận được bản tin Neighbor
Solicitation. Node đáp ứng lại bằng bản tin Neighbor Advertisement. Trong
trường hợp một Node phát đi bản tin Unsolocitation Neighbor Advertisement
để thông báo về sự thay đổi Link-layer Address, bản tin Neighbor
Advertisement cũng được dùng để đáp lại.
- Redirect: Router dùng bản tin này để thông báo cho Host một ứng cử viên
tốt hơn mà Host có thể chọn làm Next-hop, từ đó có được một route tốt hơn
để truyền các gói tin.
4.1.2 Hoạt động của Neighbor Discovery Protocol
Trong môi trường mạng hỗ trợ Multicast, mỗi Router multicast đi gói tin mang
bản tin Router Advertisement để thông báo trạng thái sẵn sàng của nó. Một Host nhận được Router Advertisement từ tất cả các Router, nó xây dựng một danh sách các Default Router. Tần suất phát bản tin Router Advertisement của các Router cho phép Host nhận biết sự hiện diện của nó trong vài phút, nhưng không đủ nhạy để Host có thể phát hiện ra sự hỏng hóc hoặc lỗi của các Router. Do đó, có một cách riêng để nhận biết những sự cố đó (Neighbor Unreachability Detection).
Router Advertisement chứa danh sách các Prefix dùng cho các kết nối, hoặc
(và) các Autonomous Address Configuration. Nodes phân giải qua lại giữa Networklayer Address và Link-layer Address bằng cách multicast bản tin Neighbor Solicitation yêu cầu các Node cung cấp thông tin về Link-layer Address của nó. Bản tin Neighbor Solicitation được multicast đến địa chỉ Solicitate-Node multicast của các Router, các Router khi nhận được bản tin này sẽ trả về Node nguồn những thông tin về Link-layer Address bằng cách gửi bản tin Neighbor Advertisement đến địa chỉ Unicast của Node nguồn đó. Trong bản tin Neighbor Solicitation cũng có chứa thông tin về Link-layer Address của Node nguồn. Do đó, với một cặp bản tin Neighbor Solicitation và Neighbor Advertisement, các Node gửi và nhận biết được Link-layer Address của nhau.
Hình 4.1.2 Mô tả quá trình tái định hướng (Redirection Proccess).
Host thiết lập Default route tới Router B. Trong khi đó, nếu Host muốn gửi các
gói tin đến subnet 3ffe::1, route tối ưu trong trường hợp này là thông qua Router A. Do Default route chỉ đến Router B, Host muốn gửi các gói tin đến Subnet
3ffe::1, Host đẩy các gói tin đến Next-hop router là Router B (bước 1), Router B dùng thông tin trong bảng định tuyến của mình để chuyển các gói tin đến Subnet 3ffe::1 (bước 2). Nhưng muốn có route tối ưu, Host phải đẩy các gói tin sang Router A. Router B gửi ICMPv6 Redirect message đến Host (bước 3), thông báo Host phải chuyển các gói tin sang Router A thay vì chuyển sang Router B (default Next-hop). Khi nhận được bản tin này, Host lưu thông tin này vào Cáche. Sau này các gói tin cần chuyển sang Subnet 3ffe::1, Host đẩy các gói tin sang Router A.
4.1.1 Adress Resolution & Neighbor Discovery Protocol
Neighbor Discovery Protocol là giao thức được định nghĩa cho IPv6. Các Node
mạng dùng giao thức này để phát hiện ra Link-layer Address của các Node lân cận. Giao thức này còn giúp kiểm soát được tình trạng các Node trên mạng (các Node này ở trạng thái Reachable hay Unreachable), nhận biết sự thay đổi của Link-layer Address. Giao thức này hoạt động dựa vào các bản tin ICMPv6.
Bên cạnh các vấn đề liên quan đến tương tác giữa các Node trong một kết nối,
Giao thức này còn được thiết kế để giải quyết các vấn đề sau:
- Router Discovery: Giúp cho các Node xác định Router lân cận trên cùng một
kết nối.
- Prefix Discovery: Giúp cho Node phát hiện ra các IPv6 prefix, để có thể chuyển gói tin đến đích.
- Parameter Discovery: Giúp các Node học được các thông số cần thiết của mạng
(Ví dụ giá trị MTU, Hop limits…).
- Address Autoconfiguration: Giúp tự động cấu hình địa chỉ cho một Interface.
- Address Resolution: Tính năng này tương tự ARP và RARP dùng trong IPv4.
Tính năng này giúp các Node phân giải qua lại giữa Link-layer Address và
Network Layer Address (IPv6).
- Next-hop Detemination: Đây là thuật toán dùng để ánh xạ một IPv6
Destination Address vào IPv6 Address của một Node lân cận, Node mà các gói
tin phải đi qua để đến được đích. Next-hop trong trường hợp này có thể là một
Router trung gian hoặc cũng có thể là một trạm đầu cuối.
- Neighbor Unreachable Detection: Tính năng này giúp các Node phát hiện ra
tình trạng Unreachable của Node lân cận. Trong trường hợp Node lân cận rơi
vào trạng thái này, Node dự phòng có thể được dùng để chuyển các gói tin qua
mạng. Nếu không có Node dự phòng, hệ thống sẽ kích hoạt tính năng Address
Resolution Protocol.
- Duplication Address Detection: Tính năng này giúp nhận biết địa chỉ IP mà
Node sử dụng có trùng với Node nào khác hay không.
- Redirect: Giúp tái định tuyến các gói tin để có thể đạt được một Route ưu thế
hơn. (Tính năng này thường được dùng nhất trong giai đoạn mạng đang hội tụ,
khi mạng đã hoạt động ổn định, ít khi xảy ra hiện tượng này vì route tối ưu đã
được lưu vào cache).
Neighbor Discovery Protocol định nghĩa 5 loại bản tin ICMP sau:
- Router Solicitation message và Router Advertisement message.
- Neighbor Solicitation message và Neighbor Advertisement message.
- Redirect message.
Mục đích sử dụng của mỗi loại bản tin được mô tả như sau:
- Router Solicitation: Khi một Interface của Node (Router hoặc Host) được
kích hoạt, Node tạo ra Router Solicitation message yêu cầu các Router phát
Router Advertisment message để nó có thể cập nhật thông tin ngay mà
không cần chờ hết thời gian được định sẵn.
- Router Advertisement: Bản tin này được các Router gửi đi nhằm thông báo
cho nhau sự hiện diện của nó trên mạng. Bản tin này mang thông tin về các
thông số của kết nối, thông tin về các Prefix kết nối đến nó cũng như các
địa chỉ được gán cho các Interface. Nó còn mang các thông số của mạng
như: Hop limits, MTU... Bản tin này được gửi định kỳ sau một khoảng thời
gian định sẵn. Trong trường hợp nhận được bản tin Router Solicitation, bản
tin Router Advertisement cũng được gửi đi ngay mà không cần đến thời gian
định sẵn.
- Neighbor Solicitation: Node dùng bản tin này để xác định Link-layer
Address của các Node lân cận, còn dùng để kiểm tra trạng thái Reachable
của các Node lân cận mà Link-layer Address của các Node đó đã được lưu
trong Cáche.
- Neighbor Advertisement: Khi một Node nhận được bản tin Neighbor
Solicitation. Node đáp ứng lại bằng bản tin Neighbor Advertisement. Trong
trường hợp một Node phát đi bản tin Unsolocitation Neighbor Advertisement
để thông báo về sự thay đổi Link-layer Address, bản tin Neighbor
Advertisement cũng được dùng để đáp lại.
- Redirect: Router dùng bản tin này để thông báo cho Host một ứng cử viên
tốt hơn mà Host có thể chọn làm Next-hop, từ đó có được một route tốt hơn
để truyền các gói tin.
4.1.2 Hoạt động của Neighbor Discovery Protocol
Trong môi trường mạng hỗ trợ Multicast, mỗi Router multicast đi gói tin mang
bản tin Router Advertisement để thông báo trạng thái sẵn sàng của nó. Một Host nhận được Router Advertisement từ tất cả các Router, nó xây dựng một danh sách các Default Router. Tần suất phát bản tin Router Advertisement của các Router cho phép Host nhận biết sự hiện diện của nó trong vài phút, nhưng không đủ nhạy để Host có thể phát hiện ra sự hỏng hóc hoặc lỗi của các Router. Do đó, có một cách riêng để nhận biết những sự cố đó (Neighbor Unreachability Detection).
Router Advertisement chứa danh sách các Prefix dùng cho các kết nối, hoặc
(và) các Autonomous Address Configuration. Nodes phân giải qua lại giữa Networklayer Address và Link-layer Address bằng cách multicast bản tin Neighbor Solicitation yêu cầu các Node cung cấp thông tin về Link-layer Address của nó. Bản tin Neighbor Solicitation được multicast đến địa chỉ Solicitate-Node multicast của các Router, các Router khi nhận được bản tin này sẽ trả về Node nguồn những thông tin về Link-layer Address bằng cách gửi bản tin Neighbor Advertisement đến địa chỉ Unicast của Node nguồn đó. Trong bản tin Neighbor Solicitation cũng có chứa thông tin về Link-layer Address của Node nguồn. Do đó, với một cặp bản tin Neighbor Solicitation và Neighbor Advertisement, các Node gửi và nhận biết được Link-layer Address của nhau.
Hình 4.1.2 Mô tả quá trình tái định hướng (Redirection Proccess).
Host thiết lập Default route tới Router B. Trong khi đó, nếu Host muốn gửi các
gói tin đến subnet 3ffe::1, route tối ưu trong trường hợp này là thông qua Router A. Do Default route chỉ đến Router B, Host muốn gửi các gói tin đến Subnet
3ffe::1, Host đẩy các gói tin đến Next-hop router là Router B (bước 1), Router B dùng thông tin trong bảng định tuyến của mình để chuyển các gói tin đến Subnet 3ffe::1 (bước 2). Nhưng muốn có route tối ưu, Host phải đẩy các gói tin sang Router A. Router B gửi ICMPv6 Redirect message đến Host (bước 3), thông báo Host phải chuyển các gói tin sang Router A thay vì chuyển sang Router B (default Next-hop). Khi nhận được bản tin này, Host lưu thông tin này vào Cáche. Sau này các gói tin cần chuyển sang Subnet 3ffe::1, Host đẩy các gói tin sang Router A.
Comment