Bài viết chuyên đề

ICMPv6 (Chuyên Đề Đào Tạo IPv6 – Phần 8)

22/03/2019 03:03:29

ICMPv6 (Chuyên Đề Đào Tạo IPv6 – Phần 8)

1. Tổng quát về thủ tục ICMPv6

Như chúng ta đã biết, Internet Control Message Protocol (ICMP), là một thủ tục bắt buộc tổ hợp cùng với giao thức IP. Các thông điệp ICMP, truyền tải bằng những gói tin, được sử dụng cho mục đích thông báo liên quan đến hoạt động và những vận hành không trôi chảy của mạng. ICMP được sử dụng rộng rãi trong IPv4 với mục đích báo lỗi và điều khiển truyền tải IP. Khi có lỗi xảy ra trong quá trình truyền tải gói tin IP, router đang xử lý hoặc node nhận gói tin sẽ thông báo vấn đề cho node gửi để node gửi có thể truyền lại gói tin hoặc tiếp tục thực hiện những chu trình xử lý lỗi khác. ICMP bao gồm những thông điệp phản hồi (echo message) phục vụ cho những chương trình chẩn đoán mạng như ping, traceroute, và những thông điệp báo lỗi. 

Một số chức năng của ICMP như sau:

  • Thông báo lỗi mạng.
  • Thông báo tắc nghẽn mạng.
  • Hỗ trợ xử lý sự cố.
  • Thông báo thời gian timeout.

ICMPv6 (Internet Control Message Protocol version 6) là một phần tổ hợp của cấu trúc IPv6 và phải được hỗ trợ bởi mọi thực thi ipv6. Cũng như ICMPv4, ICMPv6 thực hiện chức năng báo lỗi, hỗ trợ xử lý sự cố ... Không chỉ vậy, những thông điệp ICMPv6 cong đóng một vai trò thiết yếu đối với hoạt động của địa chỉ IPv6. Hoạt động của thế hệ địa chỉ IPv6 phụ thuộc rất nhiều vào những thông điệp ICMPv6. Ngoài những chức năng thông thường của ICMPv4, ICMPv6 còn cung cấp nhiều chức năng không tồn tại trong ipv4 hoặc được cung cấp bởi các lớp thấp hơn ví dụ thực thi quá trình phân giải địa chỉ. So với IPCMv4, ICMPv6 được đơn giản hoá bằng cách bỏ bớt đi những dạng thông điệp không còn hoặc rất hiếm khi sử dụng.

RFC2463 mô tả thủ tục ICMPv6. ICMPv6 cung cấp cơ cấu hoạt động cho hai thủ tục sau đây trong IPv6 :

  • Multicast Listener Discovery (MLD) - Thủ tục quản lý quan hệ thành viên multicast, phục vụ cho định tuyến multicast
  • Neighbor Discovery (ND) - Đảm nhiệm thực thi giao tiếp giữa các node trong một đường link.

2. Gói tin ICMPv6

Mô tả cấu trúc gói tin ICMPv6.

ICMPv6 header

ICMPv6 header có hai trường phục vụ phân loại các dạng gói tin IPMPv6. Đó là trường Type (8 bít) và trường Code (8 bít).

  • Type: Giá trị bít đầu tiên của trường type sẽ xác định đây là thông điệp lỗi (bít đầu có giá trị 0, toàn bộ giá trị trường type từ 0-127), hay thông điệp thông tin (bít đầu có giá trị 1, toàn bộ giá trị trường type từ 128-255)
  • Code: 8 bít trường code sẽ phân dạng sâu hơn gói tin ICMPv6, định rõ đây là gói tin dạng gì trong từng loại thông điệp trên.

Thông điệp ICMPv6 được xác định bằng giá trị 58 của trường Next Header của header liền kề phía trước.

3. Thông điệp ICMPv6

 

Cũng như ICMPv4, ICMPv6 bao gồm những thông điệp đảm nhiệm báo cáo tình trạng hoạt động của mạng, báo cáo lỗi, hỗ trợ chẩn đoán mạng. Tuy nhiên, nhằm phục vụ thực hiện những quy trình hoạt động cơ bản của địa chỉ IPv6, ICMPv6 còn bao gồm những dạng thông điệp mới, phục vụ cho các thủ tục và những quy trình giao tiếp của các node IPv6 (Neighbor Discovery, Multicast Listener Discovery). Chúng ta sẽ tìm hiểu chi tiết hơn về những dạng thông điệp được sử dụng trong các quy trình hoạt động cơ bản của địa chỉ IPv6. 

Phân loại thông điệp ICMPv6:

Thông điệp ICMPv6 được xác định bằng giá trị 58 của trường Next Header của header liền kề phía trước. 

ICMPv6 là thủ tục đa mục đích, được sử dụng để báo cáo lỗi xảy ra trong quá trình xử lý gói tin, thực hiện chẩn đoán, thực hiện thủ tục Neighbor Discovery, và báo cáo quan hệ multicast. Xác thông điệp ICMP đươc phân chia làm hai loại: Thông điệp lỗi và Thông điệp thông tin.

Thông điệp lỗi 

Các thông điệp lỗi được sử dụng để báo lỗi trong quá trình chuyển tiếp và phân phối gói tin ipv6, thực hiện bởi node đích hoặc router. Các thông điệp này có giá trị của 8 bít trường Type từ 0 đến 127 (high order bit được đặt giá trị 0). Các thông điệp lỗi bao gồm: Destination Unreachable, Packet Too Big, Time Exceeded, and Parameter Problem.

Dạng (type)

Mô tả

Giá trị trường code

1

Destination unreachable

0 – Không có tuyến tới đích
1 – Giao tiếp tới đích bị cấm

2 – Chưa gán
3 - Địa chỉ không đạt tới được.
4 – Port không đạt tới được.

2

Packet too big

0

3

Time exceeded

0 – Vượt quá giới hạn hop limit
1 – Thời gian tạo lại gói tin vượt quá giới hạn cho phép

4

Parameter problem

0 – Lỗi header
1 – Không nhận dạng được Next Header
2 – Không nhận ra IPv6 option

Thông điệp thông tin  

Thông điệp thông tin ICMPv6 được sử dụng để cung cấp chức năng chẩn đoán và những chức năng mở rộng khác, đó là Multicast Listener Discovery - MLD và Neighbor Discovery - ND. Trường Type của gói tin ICMPv6 thông tin sẽ có giá trị trong khoảng 128 - 255 (high order bit được thiết lập giá trị 1). 

Thông điệp thông tin có thể chia thành 2 nhóm: Thông điệp thông tin cơ bản bao gồm những thông điệp chẩn đoán mạng và Thông điệp thông tin mở rộng bao gồm những thông điệp phục vụ cho các quy trình hoạt động của địa chỉ IPv6 thuộc hai thủ tục: MLD và Neighbor Discovery.

   *  Thông điệp thông tin cơ bản:

Echo Request/Reply là những thông điệp thông tin cơ bản. Chúng được sử dụng bở những chương trình như IPv6 ping và traceroute, để chẩn đoán mạng. 

    *  Thông điệp thông tin mở rộng: 

Thông điệp thông tin mở rộng phục vụ cho các quá trình cần thiết cho hoạt động của thế hệ địa chỉ Ipv6, bao gồm những thông điệp quản lý nhóm multicast, phục vụ cho thủ tục Multicast Listener Discovery (MLD) và những thông điệp phục vụ cho các quy trình giao tiếp của các node trên một đường kết nối của thủ tục Neighbor Discovery (ND).

Type

Mô tả

Code

130

Multicast Listener Query.

0

131

Multicast Listener Report.

0

132

Multicast Listener Done.

0

133

Router Solicitation.

0

134

Router Advertisement.

0

135

Neighbor Solicitation.

0

136

Neighbor Advertisement.

0

137

Redirect.

0

Thông điệp quản lý nhóm multicast

Multicast Listner Discovery, Multicast Listner Report, Multicast Listner Done là những thông điệp được sử dụng trong thủ tục MLD (Multicast Listener Discovery) để quản lý nhóm multicast, phục vụ cho định tuyến multicast.   

Thông điệp Neighbor Discovery

Router Solicitation, Router Advertisement, Neighbor Solicitation, Neighbor Advertisement, Redirect là những thông điệp này được sử dụng trong thủ tục Neighbor Discovery, là thủ tục thực hiện chức năng giao tiếp giữa các node lân cận trong một đường kết nối.

4. Nhiệm vụ của ICMPv6

CMPv6 cung cấp cơ cấu làm việc cho hai thủ tục MLD, ND. Thông điệp ICMPv6 thực hiện những nhiệm vụ sau trong hoạt động của địa chỉ ipv6:

  • Tìm Path MTU (Path MTU Discovery) 

Router ipv6 không tiến hành phân mảnh gói tin. Do vậy, ipv6 node cần phải biết giá  trị MTU nhỏ nhất (được gọi là Path MTU) trên toàn bộ đường truyền dẫn) để quyết định kích thước gói tin được gửi tới một đích cụ thể. 

Thông điệp ICMPv6 Packet Too Big được sử dụng trong thủ tục tìm Path MTU. 

  • Thông báo lỗi (Error Notification): 

ICMPv6 cũng đảm nhiệm những thông báo tình trạng lỗi trong hoạt động liên quan đến lớp IP, như khám phá đích hiện không sẵn sàng. 
Những thông điệp Destination Unreachable, Packet Too Big, Parameter Problem, và Time Exceeded là một phần của quá trình xử lý lỗi. Thông điệp Packet Too Big còn có vai trò trong quá trình tìm Path MTU.  

  • Thông báo thông tin: 

Nhằm mục đích dò lỗi và phân tích mạng, ICMPv6 bao gồm những thông điệp thông tin. Thông điệp Echo Request và Echo Reply được sử dụng cho mục đích này.

  • Tìm kiếm router và prefix địa chỉ : 

Việc tìm kiếm router và thông tin về prefix địa chỉ (Router & prefix discovery) là một phần trong thủ tục Neighbor Discovery. 
Mục tiêu của quá trình tìm kiếm router là để tìm ra được router lân cận trong đường kết nối (neighbor router) sẵn sàng chuyển tiếp gói tin cho host.  
Những thông tin này được sử dụng trong quá trình tự động cấu hình địa chỉ (auto configuration) và định tuyến. Thông điệp Router Solicitation và Router Advertisement được sử dụng cho mục đích này.

  • Tự động cấu hình địa chỉ (Address auto configuration): 

Tự động cấu hình địa chỉ là một phần của thủ tục Neighbor Discovery. 

Mục đích của nó là tự động gán địa chỉ cho giao diện. Quá trình này có hai dạng thức: không trạng thái (stateless) và có trạng thái (stateful).

Stateful là hình thức tự động cấu hình địa chỉ có sự hỗ trợ của server DHCPv6. Để cấu hình được địa chỉ, host cần sự hỗ trợ và trạng thái cung cấp bởi DHCPv6. Do vậy, dạng thức cấu hình này được gọi là stateful.

Tự động cấu hình địa chỉ dạng stateless là một đặc tính quan trọng và rất điển hình của thế hệ địa chỉ ipv6, vốn không tồn tại trong địa chỉ ip phiên bản 4. Trong đó host có khả năng tự tìm kiếm thông tin và cấu hình địa chỉ cho giao diện của mình không cần sự hỗ trợ của bất cứ server nào, và bắt đầu từ không có thông tin trạng thái. Do vậy dạng thức cấu hình này được gọi là stateless. Chúng ta sẽ đề cập chi tiết hơn đến quy trình này trong mục sau. 

Thông điệp Neighbor Solicitation và Advertisement, cùng một số thông điệp khác được sử dụng cho mục đích này. Các quy trình tìm kiếm router, prefix (Router and Prefix Discovery), quy trình kiểm tra trùng lặp địa chỉ (Duplicate Address Detection) cũng tham dự vào quá trình tự động cấu hình địa chỉ.

  • Kiểm tra trùng lặp địa chỉ (Duplicate Address Detection): 

Là một phần trong quá trình tự động cấu hình địa chỉ. Node chuẩn bị được gắn địa chỉ kiểm tra xem có sự trùng lặp của địa chỉ được gắn cho giao diện hay không.
Thông điệp Neighbor Solicitation và Advertisement được sử dụng cho mục đích này

  • Phân giải địa chỉ (Address Resolution): 

Trong quá trình phân giải địa chỉ, node tìm kiếm thông tin quyết định địa chỉ lớp  link-layer của một đích dựa trên địa chỉ IP tương ứng. Không thể có lưu lượng lớp cao được truyền tải cho tới khi nơi gửi biết được địa chỉ vật lý của đích hoặc của next hop router. 

Thông điệp Neighbor Solicitation và Advertisement được sử dụng cho mục đích này.

  • Kiểm tra tính kết nối được của node lân cận (Neighbor Reachability Detection): 

Host kiểm tra tính kết nối tới được của đích và router local bằng quy trình Neighbor Unreachability, vốn là một phần của thủ tục Neighbor Discovery.   

Thông điệp Neighbor Solicitation và Advertisement được sử dụng cho mục đích này.

  • Redirect: 

Trong quy trình Redirect, một router sẽ thông báo cho host biết hop tốt hơn để có thể đi tới một đích nhất định. Đây là một phần của thủ tục Neighbor Discovery.  

Thông điệp Redirect được sử dụng cho quá trình Redirect.

Xem tiếp phần 9: http://www.waren.vn/chuyen-de/thu-tuc-multicast-listener-discovery-mld-chuyen-de-dao-tao-ipv6-phan-9.html