Bài viết chuyên đề
Neighbor Discovery (ND) (Chuyên Đề Đào Tạo IPv6 – Phần 10)
25/03/2019 02:50:12
Neighbor Discovery (ND) (Chuyên Đề Đào Tạo IPv6 – Phần 10)
1. Tổng quát về Neighbor Discovery (ND)
Thủ tục thứ hai hoạt động trên nền những thông điệp ICMPv6 là Neighbor Discovery - ND. Neighbor Discovery là một thủ tục mới của địa chỉ IPv6. ND phụ trách toàn bộ giao tiếp giữa các node IPv6 trên cùng một đường link (các neighbor node). Những quy trình hoạt động giao tiếp này (giữa host với host, giữa host với router) là thiết yếu đối với hoạt động của thế hệ địa chỉ IPv6. ND đảm nhiệm những chức năng mà các thủ tục ARP, ICMP Router Discovery, và ICMP Redirect thực hiện trong địa chỉ IPv4. Đồng thời cũng cung cấp nhiều chức năng khác nữa.
Node sẽ sử dụng ND để:
- Thực hiện phân giải địa chỉ lớp link-layer của một neighbor node từ địa chỉ IPv6.
- Quyết định xem node lân cận có còn đạt tới được hay không.
Host sẽ sử dụng ND để:
- Tìm kiếm router trên đường kết nối.
- Tìm kiếm thông tin về địa chỉ, hay prefix địa chỉ và những thông tin cấu hình khác phục vụ cho việc cấu hình địa chỉ và hoạt động của host.
Router sẽ sử dụng ND để:
- Quảng bá sự hiện diện của mình, quảng bá những thông tin cấu hình cần thiết cho host, quảng bá prefix địa chỉ của đường link.
- Thông báo cho host về địa chỉ next-hop tốt hơn để có thể chuyển tiếp gói tin đến một đích nhất định.
ND sử dụng tập hợp 5 thông điệp ICMPv6 sau đây:
- Router Advertisement
- Router Solicitation
- Neighbor Solicitation
- Neighbor Advertisement
- Redirect
Những thông điệp này được trao đổi giữa các node tên đường link, trong các quy trình quyết định mối quan hệ giữa các neighbor node. Chúng ta sẽ tìm hiểu chi tiết về những thông điệp ICMPv6 này để nắm được các quy trình hoạt động của địa chỉ IPv6.
2. Thông điệp ICMPv6 sử dụng trong thủ tục ND
Thông điệp quảng bá của router (Router Advertisement-RA):
Thông điệp này tương ứng dạng ICMPv6 Type 134.
Router IPv6 ngoài chức năng chuyển tiếp gói tin cho các host trên một đường kết nối, còn đảm nhiệm một chức năng rất quan trọng là quảng bá thông tin giúp các host trên đường kết nối biết được sự hiện diện của router và nhận được những thông số trợ giúp cho hoạt động. Nhờ phương thức quảng bá thông tin từ router, host IPv6 có khả năng tự động cấu hình địa chỉ toàn cầu, cấu hình các tham số phục vụ cho giao tiếp.
Trong số những thông điệp ICMPv6 được trao đổi giữa các node trên đường kết nối, thông điệp Router Advertisement có một vai trò đặc biệt. Router Advertisement được router trên đường link gửi định kỳ tới địa chỉ đích multicast mọi node phạm vi link (FF02::1), có nghĩa gửi tới mọi node trên đường kết nối.
Router Advertisement được gửi cho những mục đích sau đây:
- Thông báo địa chỉ link layer của router
- Thông báo cách thức cấu hình địa chỉ toàn cầu cho node trên đường link.
- Thông báo network prefix cho các node trên đường link.
- Thông báo giá trị hop limit, MTU, những tham số hoạt động cho những node trên đường link.
Router thông báo địa chỉ của mình cho những node trên đường link, để các node có thể xác định được router mặc định sẵn sàng chuyển tiếp gói tin cho host. Router Advertisement cũng được gửi để xác định cách thức đang được sử dụng để cấu hình địa chỉ cho các node trên đường link (tự động cấu hình dạng stateless hay sử dụng stateful với DHCPv6 server…).
Khi đường link sử dụng phương thức tự động cấu hình địa chỉ không trạng thái (stateless), thông điệp Router Advertisement sẽ bao gồm cả network prefix của đường link. Thông điệp cũng chứa thông tin về hop limit và MTU để các node sử dụng trong quá trình giao tiếp.
Một đặc điểm ưu việt của địa chỉ ipv6 là khi một host khởi động, nó có thể tự mình khởi tạo ngay địa chỉ link local để sử dụng trong kết nối local. Khi host nhận được network prefix từ thông điệp Router Advertisement của router, prefix này sẽ được host kết hợp với định danh giao diện của mình (interface identifier) để tự động cấu hình nên địa chỉ unicast toàn cầu.
Thông điệp Router Advertisement chỉ có thể gửi bởi router và được gửi định kỳ. Tuy nhiên, router cũng sẽ tạo ngay thông điệp RA đáp trả yêu cầu của một host trên đường link nếu nó nhận được gói tin truy vấn router (Router Solicitation). Trong trường hợp đó, thông điệp RA sẽ được gửi tới địa chỉ đích unicast là địa chỉ của nơi gửi thông điệp Router Solicitation.
Thông điệp truy vấn router (Router Solicitation-RS):
Thông điệp này có ICMPv6 type 133.
IPv6 node truyền gói tin Router Solicitation để nhắc router trên cùng đường link lập tức tạo thông điệp Router Advertisement gửi thông tin cho host.
Thông điệp này sử dụng địa chỉ nguồn hoặc là địa chỉ unicast của giao diện gửi gói tin, hoặc, trong trường hợp địa chỉ này không tồn tại, nó sử dụng địa chỉ đặc biệt “unspecified - ::”. Địa chỉ đích thông thường là địa chỉ multicast mọi router phạm vi link (FF02::2). Giá trị Hop Limit của gói tin Router Solicitation được thiết lập là 255. Trên thực tế, router sẽ kiểm tra giá trị này, nếu không đúng gói tin sẽ bị hủy bỏ. Do quá trình tự động cấu hình và định tuyến phụ thuộc vào khả năng tìm thấy router và prefix địa chỉ, thông điệp này là cần thiết trước khi bất cứ giao tiếp nào được thiết lập.
Thông điệp truy vấn node lân cận (Neighbor Solicitation-NS):
Thông điệp này có ICMPv6 type 135.
Thông điệp Neighbor Solicitation được một node sử dụng để yêu cầu các node khác trên đường link cung cấp địa chỉ lớp link layer của chúng. Chức năng này giống như thủ tục ARP (Address Resolution Protocol) trong ipv4. Node được hỏi sẽ sử dụng thông điệp Neighbor Advertisement để trả lời về địa chỉ lớp link-layer của nó.
Thông điệp Neighbor Solicitation còn được sử dụng cho quá trình kiểm tra trùng lặp địa chỉ (Dublicate Address Detection) khi một node cần xác nhận rằng không có một node nào khác trên đường link được gắn trùng địa chỉ của nó. Hơn nữa, Neighbor Solicitation được sử dụng trong quy trình kiểm tra tính kết nối tới được của node lân cận (Neighbor Unreachability Detection).
Địa chỉ nguồn của thông điệp này hoặc là địa chỉ unicast giao diện truyền gói tin hoặc là địa chỉ đặc biệt unspecified - “::” (trong quy trình kiểm tra trùng lặp địa chỉ).
Thông điệp Neighbor Solicitation sẽ được gửi tới địa chỉ multicast khi một node cần phân giải một địa chỉ (từ địa chỉ ipv6 thành địa chỉ lớp link layer) hoặc gửi tới địa chỉ unicast khi một node muốn kiểm tra tính kết nối tới được của node lân cận (neighbor).
Các thông điệp Neighbor Solicitation và Advertisement được sử dụng cho nhiều mục đích: tự động cấu hình địa chỉ, kiểm tra trùng lặp địa chỉ, dò tìm khả năng kết nối tới được (reachability). Trong tất cả những quy trình đó, các thông điệp này chỉ được trao đổi trong phạm vi local link, và cần có trước khi các giao tiếp có thể được thiết lập.
Thông điệp quảng bá của node (Neighbor Advertisement-NA):
Thông điệp này có ICMPv6 type 136.
Node gửi gói tin Neighbor Advertisement để đáp trả gói tin Neighbor Solicitation. Khi trạng thái của một node thay đổi, nó cũng gửi thông điệp Neighbor Advertisement thông báo về thông tin thay đổi.
Địa chỉ nguồn của thông điệp là địa chỉ unicast, địa chỉ đích là địa chỉ unicast của node hỏi thông tin hoặc là địa chỉ multicast mọi node phạm vi link (FF02::1). Cũng như thông điệp Neighbor Solicitation, các gói tin này chỉ được gửi trong phạm vi link và cần có trước khi các giao tiếp được thiết lập.
Thông điệp Redirect:
Thông điệp này có ICMPv6 type 137.
Thông điệp Redirect luôn được gửi giữa các địa chỉ unicast. Thông điệp này được gửi bởi router để thông báo cho các node IPv6 rằng có một router khác tốt hơn có thể sử dụng làm next hop để gửi gói tin đến một đích nhất định. Địa chỉ nguồn là địa chỉ link-local của giao diện từ đó thông điệp được gửi. Địa chỉ đích là địa chỉ nguồn của gói tin đã khiến cho router phải gửi thông điệp Redirect.
3. Tìm hiểu về gói tin ND
Thông điệp ND có dạng như trên hình. Thông điệp ND bao gồm một ND header, và có hoặc không có các Option ND.
ND option:
ND option cung cấp thông tin mà thông điệp Neighbor Discovery cần truyền tải: địa chỉ MAC, network prefix của đường link, thông tin MTU của đường link, các tham số hoạt động, dữ liệu redirect.
ND option được cấu thành từ Type/Lengh/value
Trường Type chỉ định dạng của ND Option, hiện nay trong RFC2461-Neighbor Discovery for IP Version 6 (IPv6), có các dạng như trong bảng sau:
Type |
Tên Option |
1 |
Source Link-Layer Address |
2 |
Target Link-Layer Address |
3 |
Prefix Information |
4 |
Redirected Header |
5 |
MTU |
Type 1: Source Link-Layer Address chỉ định địa chỉ lớp link-layer của nơi gửi thông điệp ND. Option này có trong các thông điệp Neighbor Solicitation, Router Solicitation, và Router Advertisement. Các quy trình sử dụng những thông điệp trên cần có Option này để thông báo địa chỉ lớp link-layer của nơi gửi thông điệp ND để phục vụ cho quy trình (ví dụ quá trình phân giải địa chỉ).
Type 2: Target Link-Layer Address chỉ định địa chỉ lớp link-layer của node neighbor mà gói tin IPV6 nên được gửi tới. Option này có trong thông điệp Neighbor Advertisement và Redirect.
Type 3: Prefix Information
Option “Prefix Information” có trong thông điệp Router Advertisement để chỉ định prefix địa chỉ trên đường link kết nối với router, đồng thời cũng mang thông tin chỉ định về tự động cấu hình địa chỉ. Trong một thông điệp Router Advertisement, có thể có đồng thời nhiều Option Prefix Information để thông báo cùng lúc nhiều prefix địa chỉ trên một đường link.
Trong thông điệp có chứa Option Prefix Information, phần “value” sẽ là N nhóm 8 bít, trong đó chứa các thông tin về chiều dài prefix, thông tin về thời gian tồn tại hợp lệ của prefix, cờ để xác định xem prefix có được sử dụng để cấu hình địa chỉ tự động hay không, và một số các thông tin khác nữa.
Type 4: Redirected Header
Option này có trong thông điệp Redirect để xác định gói tin IPv6 khiến cho router phải gửi thông điệp redirect. Nó có thể bao gồm một phần hoặc tất cả gói tin IPv6, tùy thuộc vào kích cỡ gói tin đã được gửi ban đầu.
Type 5: Option MTU
Option này có trong thông điệp Router Advertisement để chỉ định giá trị MTU trên đường link. Giá trị của MTU này sẽ được dùng thay cho giá trị MTU cung cấp bởi giao diện phần cứng.
4. Những quy trình Neighbor Discovery cung cấp
Với năm thông điệp ICMPv6 mô tả như trên, thủ tục Neighbor Discovery thực hiện những quy trình sau đây:
- Tìm kiếm router (Router discovery)
Quy trình mà nhờ đó, một host khám phá ra local router trên đường link mà mình kết nối.
- Tìm kiếm prefix (Prefix discovery)
Quy trình mà nhờ đó, host tìm thấy network prefix của đường link mà mình kết nối.
- Tìm kiếm thông số (Parameter discovery)
Quy trình mà nhờ đó, host tìm được những tham số hoạt động khác như link MTU, giá trị hop limit mặc định để gửi gói tin.
- Tự động cấu hình địa chỉ (Address autoconfiguration)
Quy trình mà nhờ đó, node có thể cấu hình thông tin địa chỉ IP cho các giao diện, theo phương thức có hoặc không có sự hiện diện của máy chủ DHCPv6.
- Phân giải địa chỉ (Address resolution)
Quy trình mà nhờ đó, node có thể phân giải địa chỉ lớp link-layer của một neighbor từ địa chỉ IPv6 (tương đương chức năng của thủ tục ARP trong địa chỉ IPv4).
- Quyết định Next-hop (Next-hop determination)
Quy trình mà nhờ đó, node có thể quyết định địa chỉ IPv6 của hop tiếp theo gói tin sẽ được forward tới, dựa trên địa chỉ đích. Địa chỉ này sẽ hoặc là địa chỉ đích, hoặc là địa chỉ của của router mặc định trên đường link.
- Khám phá tính có thể đạt tới của node lân cận (Neighbor unreachability detection)
Quy trình mà nhờ đó, node có thể quyết định xem lớp IPv6 của một node lân cận có thể còn nhận được gói tin hay không.
- Kiểm tra trùng lặp địa chỉ (Duplicate address detection)
Quy trình mà nhờ đó, node có thể quyết định địa chỉ IPv6 dự định sử dụng hiện đã có một node nào khác đã sử dụng hay chưa.
- Chức năng Redirect (Redirect function)
Quy trình thông báo cho một host địa chỉ IPv6 next hop tốt hơn có thể sử dụng để tới được một đích cụ thể.
Xem tiếp Phần 11: http://www.waren.vn/chuyen-de/mot-so-quy-trinh-hoat-dong-cua-dia-chi-ipv6-chuyen-de-dao-tao-ipv6-phan-11.html