TIÊU CHUẨN QUỐC GIA TCVN 9802-7:2020 VỀ GIAO THỨC INTERNET PHIÊN BẢN 6 (IPV6) – PHẦN 7: GIAO THỨC BẢN TIN ĐIỀU KHIỂN INTERNET
TIÊU CHUẨN QUỐC GIA
TCVN 9802-7:2020
GIAO THỨC INTERNET PHIÊN BẢN 6 (IPv6) – PHẦN 7: GIAO THỨC BẢN TIN ĐIỀU KHIỂN INTERNET
Internet protocol version 6 (IPv6) – Part 7: Internet Control Message Protocol
Lời nói đầu
TCVN 9802-7:2020 được xây dựng trên cơ sở RFC 4443 (2006) “Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification” của Nhóm đặc trách về kỹ thuật Internet (IETF).
TCVN 9802-7:2020 do Viện Khoa học Kỹ thuật Bưu điện, Học viện Công nghệ Bưu chính Viễn thông biên soạn, Bộ Thông tin và Truyền thông đề nghị, Tổng cục Tiêu chuẩn Đo lường Chất lượng thẩm định, Bộ Khoa học và Công nghệ công bố.
Hiện nay, bộ TCVN 9802 về “Giao thức Internet phiên bản 6 (IPv6)” gồm các tiêu chuẩn:
– TCVN 9802-1:2013,
Phần 1: Quy định kỹ thuật;
– TCVN 9802-2:2015,
Phần 2: Kiến trúc địa chỉ IPv6;
– TCVN 9802-3:2015,
Phần 3: Giao thức phát hiện nút mạng lân cận;
– TCVN 9802-4:2015,
Phần 4: Giao thức phát hiện MTU của tuyến;
– TCVN 9802-5:2017,
Phần 5: Giao thức phát hiện đối tượng nghe multicast;
– TCVN 9802-6:2020,
Phần 6: Giao thức tự động cấu hình địa chỉ không giữ trạng thái IPv6;
– TCVN 9802-7:2020,
Phần 7: Giao thức bản tin điều khiển Internet.
GIAO THỨC INTERNET PHIÊN BẢN 6 (IPv6) – PHẦN 7: GIAO THỨC BẢN TIN ĐIỀU KHIỂN INTERNET
Internet protocol version 6 (IPv6) – Part 7: Internet Control Message Protocol
1 Phạm vi áp dụng
Tiêu chuẩn này quy định những đặc tả kỹ thuật của Giao thức bản tin điều khiển Internet trong IPv6 (gọi tắt là ICMPv6).
Tiêu chuẩn này được dùng để đánh giá tính tuân thủ của các thiết bị nút IPv6
2 Tài liệu viện dẫn
Các tài liệu viện dẫn sau là cần thiết cho việc áp dụng tiêu chuẩn này. Đối với các tài liệu viện dẫn ghi năm công bố thi áp dụng bản được nêu. Đối với các tài liệu viện dẫn không ghi năm công bố thì áp dụng phiên bản mới nhất, bao gồm cả các sửa đổi (nếu có).
TCVN 9802-1:2013, “Giao thức Internet phiên bản 6 (IPv6) – Phần 1: Quy định kỹ thuật”.
TCVN 9802-2:2015, “Giao thức Internet phiên bản 6 (IPv6) – Phần 2: Kiến trúc địa chỉ IPv6”.
RFC 1122, “Requirements for Internet Hosts – Communication Layers”, October 1989 (Các yêu cầu cho Host kết nối Internet – Các tầng truyền thông).
3 Thuật ngữ và định nghĩa
Tiêu chuẩn này sử dụng các thuật ngữ, định nghĩa về địa chỉ và định tuyến trong TCVN 9802-2:2015, các thuật ngữ, định nghĩa trong TCVN 9802-1:2013 và các thuật ngữ, định nghĩa dưới đây.
3.1
Thiết bị nút IPv6 (IPv6 node)
Thiết bị thực thi IPv6. Thiết bị nút IPv6 bao gồm router IPv6 (gọi tắt là router) và host IPv6 (gọi tắt là host).
CHÚ THÍCH: Thuật ngữ Thiết bị nút IPv6 (IPv6 node) tương đương với thuật ngữ Nút mạng (Node) nêu tại điều 3.1 trong TCVN 9802-1:2013.
3.2
Router IPv6 (IPv6 router)
Thiết bị nút IPv6 có khả năng chuyển tiếp các gói tin IPv6 không được định địa chỉ cho thiết bị nút IPv6 đó.
CHÚ THÍCH: Thuật ngữ Router IPv6 (IPv6 router) tương đương với thuật ngữ Bộ định tuyến (Router) nêu tại điều 3.2 của TCVN 9802-1:2013.
3.3
Host IPv6 (IPv6 host)
Bất kỳ thiết bị nút IPv6 nào không phải là router IPv6.
CHÚ THÍCH: Thuật ngữ Host IPv6 (IPv6 host) tương dương với thuật ngữ Máy chủ (Host) nêu tại điều 3.3 trong TCVN 9802-1:2013.
3.4
Thùng Token (Token-bucket)
Thuật toán sử dụng trong mạng chuyển mạch gói và mạng viễn thông, được sử dụng để kiểm tra dữ liệu truyền tuân theo các giới hạn đã xác định về băng thông vả tính truyền cụm.
3.5
Phần bù 1 (one’s complement)
Một số trong hệ nhị phân, có được bằng cách đào tất cả các bit có trong số nhị phân (0 đổi thành 1 và 1 đổi thành 0).
4 Chữ viết tắt
AH | Mào đầu xác thực | Authentication Header |
ESP | Đóng gói tải bảo mật | Encapsulating Security Payload |
ICMP | Giao thức bản tin điều khiển Internet | Internet Control Message Protocol |
ICMPv6 | Giao thức bản tin điều khiển Internet cho IPv6 | Internet Control Message Protocol for IPv6 |
IPsec | Bảo mật giao thức Internet | Internet Protocol Security |
IPv4 | Giao thức Internet phiên bản 4 | Internet Protocol version 4 |
IPv6 | Giao thức Internet phiên bản 6 | Internet Protocol version 6 |
MTU | Đơn vị truyền tải tối đa | Maximum Transmission Unit |
TCP | Giao thức điều khiển truyền tải | Transmission Control Protocol |
UDP | Giao thức dữ liệu người dùng | User Datagram Protocol |
5 Quy định chung
Các thiết bị nút IPv6 sử dụng ICMPv6 để thông báo các lỗi gặp phải của các gói tin đang xử lý, và để thực hiện các chức năng khác trong tầng internet, như chức năng chẩn đoán (ICMPv6 “ping”). ICMPv6 là phần không thể thiếu của IPv6, và mọi thiết bị nút IPv6 PHẢI thực thi đầy đủ những đặc tính kỹ thuật của giao thức cơ bản này (tất cả các bản tin và cách xử lý được yêu cầu trong tiêu chuẩn này).
5.1 Định dạng chung của bản tin
Mỗi bản tin ICMPv6 được đi trước bởi một mào đầu IPv6 và không có hoặc có nhiều mào đầu mở rộng IPv6. Mào đầu ICMPv6 được nhận diện bởi giá trị của trường Next Header (bằng 58) trong mào đầu IPv6 đi ngay phía trước.
Các bản tin ICMPv6 có định dạng chung như sau:
Hình 1 – Định dạng chung bản tin ICMPv6
Trường Type chỉ thị loại bản tin. Giá trị của nó xác định định dạng của dữ liệu còn lại.
Trường Code phụ thuộc vào loại bản tin. Trường này được sử dụng để bổ sung mức độ chi tiết của bản tin.
Trường Checksum được sử dụng để nhận biết sự sai lệch dữ liệu trong bản tin ICMPv6 và các phần của mào đầu IPv6.
Các bản tin ICMPv6 được nhóm vào thành 2 lớp: Các bản tin báo lỗi và các bản tin thông tin. Các bản tin báo lỗi và bản tin thông tin được nhận diện bằng giá trị của bít đầu tiên trong trường Type. Các bản tin báo lỗi có bít đầu tiên trong trường Type bằng 0 và bản tin thông tin có giá trị bằng 1. Vì thế, các bản tin báo lỗi có các giá trị trường Type từ 0 đến 127, còn các bản tin thông tin có các giá trị trường Type từ 128 đến 255.
Tiêu chuẩn này định nghĩa các định dạng bản tin cho các bản tin ICMPv6 sau đây:
Các bản tin báo lỗi ICMPv6:
1 | Destination Unreachable (Không thể đến đích) | (Xem Điều 6.1) |
2 | Packet Too Big (Gói tin kích thước quá lớn) | (Xem Điều 6.2) |
3 | Time Exceeded (Thời gian bị vượt quá) | (Xem Điều 6.3) |
4 | Parameter Problem (Lỗi tham số) | (Xem Điều 6.4) |
100 | Private experimentation (Thử nghiệm riêng) | |
101 | Private experimentation (Thử nghiệm riêng) | |
127 | Được dành riêng cho việc mở rộng các bản tin báo lỗi ICMPv6 |
Các bản tin thông tin ICMPv6:
128 | Echo Request (Yêu cầu phản hồi) | (Xem Điều 6.1) |
129 | Echo Reply (Trả lời phản hồi) | (Xem Điều 6.2) |
200 | Private experimentation (Thử nghiệm riêng) | |
201 | Private experimentation (Thử nghiệm riêng) | |
255 | Được dành riêng cho việc mở rộng các bản tin thông tin ICMPv6 |
Các giá trị 100, 101, 200 và 201 của trường Type được dành cho thử nghiệm riêng. Các giá trị này không dành cho sử dụng thông thường. Những giá trị này nhằm mục đích sử dụng cho nhiều thử nghiệm đồng thời với các giá trị của trường Type giống nhau.
Các giá trị 127 và 255 của trường Type được dành trước cho việc mở rộng dải giá trị của trường Type trong tương lai nếu thiếu. Việc mở rộng dải giá trị này mà không gây ra bất kỳ vấn đề nào đến các thực thi hiện tại có thể thực hiện theo cách là nếu giá trị trường Type bằng 127 hoặc 255 thì trường Code sẽ được sử dụng để gán giá trị mới. Các thực thi đang tồn tại sẽ bỏ qua các giá trị gán mới này như quy định trong Điều 5.4 (b). Các bản tin mới sử dụng các giá trị của trường Type đã mở rộng này có thể ấn định các trường trong thân của bản tin cho các giá trị trường Code của nó.
Điều 6 và 7 mô tả các định dạng bản tin đối với bản tin báo lỗi ICMPv6 có giá trị trường Type từ 1 đến 4, và bản tin thông tin ICMPv6 có giá trị trường Type bằng 128 và 129.
Việc đưa gói tin bị lỗi vào bản tin ICMPv6, cho phép bộ khởi tạo của gói tin đã gây ra bản tin báo lỗi ICMPv6 nhận diện giao thức tầng trên và quá trình gửi gói tin.
5.2 Xác định địa chỉ nguồn của bản tin
Một nút mạng khởi tạo bản tin ICMPv6 phải xác định cả địa chỉ IPv6 nguồn và đích trong mào đầu IPv6 trước khi tính toán trường Checksum. Nếu nút mạng có nhiều hơn một địa chỉ unicast, nút mạng đó PHẢI chọn địa chỉ nguồn cho bản tin như sau:
(a) Nếu bản tin ICMPv6 là bản tin trả lời cho một bản tin được gửi đến một trong các địa chỉ unicast của nút mạng thì địa chỉ nguồn của bản tin trả lời PHẢI giống địa chỉ đích của bản tin đã gửi đến.
(b) Nếu bản tin ICMPv6 là bản tin trả lời cho một bản tin được gửi đến bất kỳ địa chỉ nào khác, như:
– Một địa chỉ nhóm multicast,
– Một địa chỉ anycast được thực thi bởi nút mạng, hoặc
– Một địa chỉ unicast mà không thuộc nút mạng
Thì địa chỉ nguồn của gói tin ICMPv6 PHẢI là địa chỉ unicast thuộc nút mạng. Địa chỉ này NÊN được chọn theo các quy tắc đã sử dụng để chọn địa chỉ nguồn đối với bất kỳ gói tin nào khác được khởi tạo bởi nút mạng đó, đã biết trước địa chỉ đích của gói tin. Tuy nhiên, CÓ THỂ chọn cách khác thay thế nếu cách này dẫn đến một lựa chọn địa chỉ nhiều thông tin hơn có thể kết nối đến từ địa chỉ đích của gói tin ICMPv6.
5.3 Tính toán trường Checksum của bản tin
Trường Checksum là phần bù 1 độ dài 16 bít của tổng phần bù 1 trong toàn bộ bản tin ICMPv6, bắt đầu với trường Type của bản tin ICMPv6, và được thêm vào một mào đầu giả (pseudo-header) của các trường mào đầu IPv6, như quy định trong Điều 4.7.1 của TCVN 9802-1:2013. Giá trị của trường Next Header sử dụng trong mào đầu giả bằng 58.
Khi tính toán kiểm tra tổng, trường Checksum đầu tiên được thiết lập bằng 0.
5.4 Quy tắc xử lý bản tin
Khi xử lý bản tin ICMPv6, các thực thi PHẢI tuân theo các quy tắc sau đây (từ RFC 1122):
(a) Nếu nhận được một bản tin báo lỗi ICMPv6 không biết loại bản tin tại đích đến của nó, thì bản tin đó PHẢI được chuyển đến quá trình xử lý tầng trên, nơi đã tạo ra gói tin bị lỗi, tại tầng này thì lỗi có thể được nhận biết (xem Điều 5.4 (d)).
(b) Nếu nhận được một bản tin thông tin ICMPv6 không biết loại bản tin thì gói tin PHẢI tự động bị loại bỏ.
(c) Mọi bản tin báo lỗi ICMPv6 (có giá trị trường Type nhỏ hơn 128) PHẢI chứa nhiều gói tin bị lỗi nhất có thể được nhưng không làm bản tin báo lỗi vượt quá giá trị MTU tối thiểu trong IPv6.
(d) Trong các trường hợp giao thức tầng Internet được yêu cầu để chuyển một bản tin báo lỗi ICMPv6 tới quá trình xử lý tầng trên, thì loại giao thức tầng trên được lấy ra từ gói tin ban đầu (có trong phần thân của bản tin báo lỗi ICMPv6) và được sử dụng để chọn quá trình xử lý tầng trên thích hợp để xử lý lỗi.
Trong các trường hợp không thể lấy ra loại giao thức tầng trên từ bản tin ICMPv6, thì bản tin ICMPv6 tự động bị loại bỏ sau bất kỳ xử lý nào tại tầng IPv6. Một ví dụ cho trường hợp như thế là một bản tin ICMPv6 với số lượng lớn bất thường các mào đầu mở rộng không có loại giao thức tầng trên do bị cắt ngắn gói tin gốc để đảm bảo giới hạn MTU tối thiểu trong IPv6. Một ví dụ khác là bản tin ICMPv6 có mào đầu mở rộng ESP không thể giải mã gói tin gốc do bị cắt ngắn hoặc trạng thái cần thiết để giải mã gói tin lại không sử dụng được.
(e) Một bản tin báo lỗi ICMPv6 KHÔNG ĐƯỢC tạo khi nhận được:
(e.1) Một bản tin báo lỗi ICMPv6.
(e.2) Một bản tin chuyển hướng ICMPv6 (xem thêm trong RFC 4861).
(e.3) Một gói tin có đích đến là một địa chỉ multicast IPv6. (Có hai ngoại lệ cho quy tắc này: (1) Bản tin Packet Too Big (Điều 6.2) cho phép phát hiện MTU của tuyến sử dụng địa chỉ multicast IPv6, và (2) Bản tin Parameter Problem, Code bằng 2 (Điều 6.4) thông báo một tùy chọn IPv6 chưa được quy định (xem Điều 4.3.2 của TCVN 9802-1:2013), là tùy chọn có hai bít vị trí cao nhất của trường Option Type thiết lập bằng 10).
(e.4) Một gói tin đã gửi như một gói tin multicast tầng liên kết (các ngoại lệ trong e.3 cũng áp dụng cho trường hợp này).
(e.5) Một gói tin đã gửi như một gói tin quảng bá tầng liên kết (các ngoại lệ trong e.3 cũng áp dụng cho trường hợp này).
(e.6) Một gói tin có địa chỉ nguồn không phải là định danh duy nhất một nút mạng, tức là địa chỉ không xác định IPv6, địa chỉ multicast IPv6, hoặc một địa chỉ được biết đến bởi bộ khởi tạo bản tin ICMPv6 là địa chỉ anycast IPv6.
(f) Cuối cùng, để giới hạn băng thông và các tài nguyên để chuyển tiếp gói tin do việc khởi tạo các bản tin báo lỗi ICMPv6, thì thiết bị nút IPv6 PHẢI giới hạn tốc độ của bản tin báo lỗi ICMPv6 nút mạng đó tạo ra. Trường hợp này có thể xảy ra khi một nguồn gửi một luồng các gói tin có lỗi để dẫn đến các bản tin báo lỗi ICMPv6.
Việc giới hạn tốc độ của bản tin ICMPv6 đã chuyển tiếp nằm ngoài phạm vi của tiêu chuẩn này.
Một phương pháp được khuyến nghị để thực hiện chức năng giới hạn tốc độ là thùng Token, nhằm giới hạn tốc độ truyền trung bình tới giá trị N, với N có thể là số lượng gói tin trong 1 giây, hoặc một phần băng thông của liên kết đã kết nối, nhưng cho phép lên đến giá trị B các bản tin báo lỗi để truyền trong một cụm, miễn là giá trị trung bình trong thời gian dài không vượt quá giá trị N.
Các cơ chế giới hạn tốc độ không thể hỗ trợ lưu lượng truyền theo cụm (chẳng hạn như cơ chế Traceroute – Tìm vết của tuyến) không được khuyến nghị; ví dụ, việc thực thi dựa vào bộ đếm thời gian đơn giản cho phép một bản tin báo lỗi sau mỗi khoảng thời gian T ms (thậm chí T có thể nhận giá trị thấp) là không phù hợp.
Các tham số giới hạn tốc độ NÊN cấu hình được. Trong trường hợp thực thi thùng Token, các giá trị mặc định phù hợp nhất phụ thuộc vào nơi triển khai các thực thi (chẳng hạn, việc thực thi tại một router đầu trên khác với tại một host đã gắn vào router đó). Ví dụ, trong một thiết bị cỡ nhỏ/trung bình, các giá trị mặc định có thể là B = 10, N = 10/s.
Lưu ý: Các hạn chế trong phần (e) và (f) ở trên ưu tiên hơn bất kỳ các yêu cầu nào khác trong tiêu chuẩn này đối với việc tạo bản tin báo lỗi ICMP.
6 Các loại bản tin báo lỗi ICMPv6
6.1 Bản tin Destination Unreachable
Hình 2 – Định dạng bản tin Destination Unreachable
Các trường IPv6:
Destination Address (Địa chỉ đích): Được sao chép từ trường Source Address (địa chỉ nguồn) của gói tin yêu cầu.
Các trường ICMPv6:
Type (Loại) 1
Code (Mã) 0 – Không có tuyến đến đích
1 – Thông tin với đích đến bị ngăn chặn do quản trị
2 – Nằm ngoài phạm vi của địa chỉ nguồn
3 – Địa chỉ không thể đến được
4 – Cổng không thể đến được
5 – Địa chỉ nguồn không thuộc chính sách đầu vào/đầu ra
6 – Từ chối tuyến đến đích
Unused (Không sử dụng)
Trường này không sử dụng đối với tất cả các giá trị trường Code. Trường này phải được bộ khởi tạo thiết lập giá trị ban đầu bằng 0 và được bên nhận bỏ qua.
Mô tả
Bản tin Destination Unreachable NÊN được tạo bởi router, hoặc tầng IPv6 trong nút mạng khởi tạo, để hồi đáp cho gói tin không thể phân phát đến địa chỉ đích của nó vì các lý do không phải do nghẽn mạng (KHÔNG ĐƯỢC tạo bản tin ICMPv6 nếu gói tin bị loại bỏ do nghẽn mạng).
Nếu lý do của lỗi phân phát là do không có mục phù hợp trong bảng định tuyến của nút mạng chuyển tiếp thì trường Code được thiết lập bằng 0 (Lỗi này có thể chỉ xảy ra trong các nút mạng không có tuyến mặc định trong bảng định tuyến của các nút mạng đó).
Nếu lý do của lỗi phân phát là do sự ngăn chặn của quản trị (chẳng hạn do bộ lọc tường lửa) thì trường Code được thiết lập bằng 1.
Nếu lý do của lỗi phân phát là do đích đến vượt quá phạm vi của địa chỉ nguồn thì trường Code được thiết lập bằng 2. Điều kiện này chỉ có thể xảy ra khi phạm vi của địa chỉ nguồn nhỏ hơn phạm vi của địa chỉ đích (chẳng hạn, khi gói tin có địa chỉ nguồn là địa chỉ link-local và địa chỉ đích phạm vi toàn cục) và gói tin không thể phân phát đến đích mà không bỏ qua phạm vi của địa chỉ nguồn.
Nếu lý do của lỗi phân phát là do không thể ánh xạ tới bất kỳ mã nào khác thì trường Code được thiết lập bằng 3. Ví dụ các trường hợp như thế là việc không thể phân giải địa chỉ đích IPv6 sang địa chỉ liên kết tương ứng, hoặc một vấn đề liên kết cụ thể của một vài loại.
Một trường hợp cụ thể mà bản tin Destination Unreachable được gửi đi với giá trị trường Code bằng 3 là để hồi đáp cho một gói tin do router đã nhận từ liên kết điểm – điểm, gửi đến một địa chỉ trong mạng con đã gán cho cùng liên kết đó (khác với trường hợp là một trong các địa chỉ của chính router nhận gói tin). Trong trường hợp như thế, gói tin KHÔNG ĐƯỢC chuyển tiếp ngược về liên kết nhận gói tin.
Nút mạng đích NÊN khởi tạo bản tin Destination Unreachable có trường Code bằng 4 để hồi đáp cho gói tin đối với giao thức truyền tải (như UDP) không có bộ nghe, nếu giao thức truyền tải không có cách thức thay thế để thông tin đến bên gửi.
Nếu lý do của lỗi phân phát là do gói tin có địa chỉ nguồn không được cho phép bởi các chính sách lọc đầu vào hoặc đầu ra thì giá trị trường Code được thiết lập bằng 5.
Nếu lý do của lỗi phân phát gói tin là do tuyến đến đích bị từ chối thì giá trị trường Code được thiết lập bằng 6. Điều này có thể xảy ra nếu router đã được cấu hình để từ chối tất cả lưu lượng cho một tiền tố cụ thể.
Giá trị trường Code bằng 5 và 6 là các tập con của giá trị Code bằng 1 với thông tin nhiều hơn.
Với các lý do an toàn bảo mật, khuyến nghị các thực thi NÊN cho phép vô hiệu hóa việc gửi các bản tin Destination Unreachable, tốt nhất là trên từng giao diện.
Thông báo tầng trên
Một nút mạng nhận bản tin Destination Unreachable PHẢI thông báo đến quá trình xử lý tầng trên nếu quá trình xử liên quan có thể được nhận biết (xem Điều 5.4 (d)).
6.2 Bản tin Packet Too Big
Hình 3 – Định dạng bản tin Packet Too Big
Các trường IPv6:
Destination Address (Địa chỉ đích): Được sao chép từ trường Source Address (địa chỉ nguồn) của gói tin yêu cầu.
Các trường ICMPv6:
Type (Loại) 2
Code (Mã) Thiết lập bằng 0 bởi bộ khởi tạo và được bỏ qua tại bên nhận.
MTU Đơn vị truyền dẫn cực đại của liên kết chặng tiếp theo.
Mô tả
Gói tin Packet Too Big PHẢI được gửi bởi router để hồi đáp cho một gói tin không thể chuyển tiếp bởi vì gói tin lớn hơn MTU của liên kết đầu ra. Thông tin trong bản tin này được sử dụng là một phần của quá trình phát hiện MTU của tuyến, được quy định trong TCVN 9802-4:2015.
Việc tạo bản tin Packet Too Big gây ra một ngoại lệ đến một trong các quy tắc khi tạo bản tin báo lỗi ICMPv6. Không giống các bản tin khác, bản tin Packet Too Big được gửi để hồi đáp cho một gói tin đã nhận được có địa chỉ đích là địa chỉ multicast IPv6, hoặc có địa chỉ multicast tầng liên kết hoặc địa chỉ quảng bá tầng liên kết.
Thông báo tầng trên
Bản tin Packet Too Big PHẢI được chuyển đến quá trình xử lý tầng trên nếu quá trình xử lý liên quan được nhận biết (xem Điều 5.4 (d)).
6.3 Bản tin Time Exceeded
Hình 4 – Định dạng bản tin Time Exceeded
Các trường IPv6:
Destination Address (Địa chỉ đích): Sao chép từ trường Source Address (địa chỉ nguồn) của gói tin yêu cầu.
Các trường ICMPv6:
Type (Loại) 3
Code (Mã) 0 – Giới hạn chặng bị vượt quá khi phát gói tin
1 – Thời gian ghép phân mảnh bị vượt quá
Unused (Không sử dụng)
Trường này không sử dụng đối với tất cả các giá trị của trường Code. Trường này phải được bộ khởi tạo thiết lập giá trị bằng 0 và được bên nhận bỏ qua.
Mô tả
Nếu router nhận một gói tin có giá trị trường Hop Limit bằng 0, hoặc nếu router giảm giá trị Hop Limit đến 0 thì router PHẢI loại bỏ gói tin và tạo bản tin Time Exceeded với giá trị trường Code bằng 0 gửi đến địa chỉ là địa chỉ của gói tin nhận được. Điều này cho thấy đã có lặp định tuyến hoặc giá trị Hop Limit ban đầu quá nhỏ.
Bản tin Time Exceeded có giá trị trường Code bằng 1 được sử dụng để thông báo hết thời gian ghép phân mảnh, như đã quy định trong Điều 4.3.5 của TCVN 9802-1:2013.
Thông báo tầng trên
Bản tin đến Time Exceeded PHẢI được chuyển đến quá trình xử lý tầng trên nếu quá trình xử lý liên quan được nhận biết (xem Điều 5.4 (d)).
6.4 Bản tin Parameter Problem
Hình 5 – Định dạng bản tin Parameter Problem
Các trường IPv6:
Destination Address (Địa chỉ đích): Được sao chép từ trường Source Address (địa chỉ nguồn) của gói tin yêu cầu.
Các trường ICMPv6:
Type (Loại) 4
Code (Mã) 0 – Lỗi trường mào đầu
1 – Loại Next Header chưa được quy định
2 – Tùy chọn IPv6 chưa được quy định
Pointer (Con trỏ)
Nhận biết độ lệch octet trong gói tin yêu cầu tại vị trí phát hiện lỗi.
Con trỏ sẽ chỉ đến điểm cuối vượt quá của gói tin ICMPv6 nếu trường lỗi vượt quá giá trị kích thước tối đa của bản tin báo lỗi ICMPv6.
Mô tả
Nếu một thiết bị nút IPv6 xử lý một gói tin thấy có vấn đề với một trường nào đó trong mào đầu IPv6 hoặc trong các mào đầu mở rộng như nó không thể xử lý toàn bộ gói tin, thì thiết bị nút IPv6 PHẢI loại bỏ gói tin đó và NÊN tạo bản tin Parameter Problem gửi đến nguồn của gói tin có lỗi, chỉ ra loại và vị trí của vấn đề gặp phải.
Các giá trị trường Code bằng 1 và 2 là các tập con của giá trị trường Code bằng 0 nhưng với nhiều thông tin hơn.
Con trỏ nhận diện octet của mào đầu gói tin ban đầu tại vị trí phát hiện lỗi. Ví dụ, bản tin ICMPv6 có giá trị trường Type bằng 4, trường Code bằng 1 và trường Pointer bằng 40 sẽ chỉ thị rằng mào đầu mở rộng IPv6 theo sau mào đầu IPv6 của gói tin ban đầu có giá trị trường Next Header chưa được quy định.
Thông báo tầng trên
Nút mạng nhận bản tin ICMPv6 này PHẢI thông báo đến quá trình xử lý tầng trên nếu quá trình xử lý liên quan được nhận biết (xem Điều 5.4 (d)).
7 Các loại bản tin thông tin ICMPv6
7.1 Bản tin Echo Request
Hình 6 – Định dạng bản tin Echo Request
Các trường IPv6:
Destination Address (Địa chỉ đích): Bất kì địa chỉ IPv6 nào hợp lệ.
Các trường ICMPv6:
Type (Loại) | 128 |
Code (Mã) | 0 |
Identifier (Định danh) | Một định danh giúp làm phù hợp bản tin Echo Reply với bản tin Echo Request này, trường này có thể bằng 0. |
Sequence Number (Số thứ tự) | Một số thứ tự để giúp làm phù hợp bản tin Echo Reply với bản tin Echo Request này, trường này có thể bằng 0. |
Data (Dữ liệu) | Không có hoặc có nhiều octet của dữ liệu tùy ý. |
Mô tả
Mỗi nút mạng PHẢI thực thi chức năng bộ hồi đáp ICMPv6 Echo, nghĩa là nhận các bản tin Echo Request và tạo các bản tin Echo Reply tương ứng. Nút mạng cũng NÊN thực thi giao diện tầng ứng dụng đối với việc tạo các bản tin Echo Request và nhận các bản tin Echo Reply cho các mục đích chẩn đoán.
Thông báo tầng trên
Bản tin Echo Request CÓ THỂ được chuyển đến các quá trình nhận bản tin ICMPv6.
7.2 Bản tin Echo Reply
Hình 7 – Định dạng bản tin Echo Reply
Các trường IPv6
Destination Address (Địa chỉ đích): Được sao chép từ trường Source Address (địa chỉ nguồn) của gói tin Echo Request.
Các trường ICMPv6
Type (Loại) | 129 |
Code (Mã) | 0 |
Identifier (Định danh) | Định danh từ bản tin Echo Request yêu cầu |
Sequence Number (Số thứ tự) | Số thứ tự từ bản tin Echo Request yêu cầu. |
Data (Dữ liệu) | Dữ liệu từ bản tin Echo Request yêu cầu. |
Mô tả
Mỗi nút mạng PHẢI thực thi chức năng bộ hồi đáp ICMPv6 Echo, nghĩa là nhận các bản tin Echo Request và tạo các bản tin Echo Reply tương ứng. Nút mạng cũng NÊN thực thi giao diện tầng ứng dụng đối với việc tạo các bản tin Echo Request và nhận các bản tin Echo Reply, phục vụ cho mục đích chẩn đoán.
Bản tin Echo Reply được gửi để trả lời bản tin unicast Echo Request có địa chỉ nguồn PHẢI giống địa chỉ đích của bản tin Echo Request.
Bản tin Echo Reply NÊN được gửi để trả lời bản tin Echo Request đã gửi đến địa chỉ IPv6 multicast hoặc địa chỉ anycast. Trong trường hợp này, địa chỉ nguồn của bản tin Echo Reply PHẢI là địa chỉ unicast của giao diện đã nhận bản tin Echo Request.
Dữ liệu đã nhận trong bản tin ICMPv6 Echo Request PHẢI được trả về toàn bộ và không thay đổi trong bản tin ICMPv6 Echo Reply.
Thông báo tầng trên
Bản tin Echo Reply PHẢI được chuyển đến quá trình xử lý đã tạo bản tin Echo Request. Bản tin Echo Reply CÓ THỂ chuyển đến các quá trình không tạo bản tin Echo Request.
Lưu ý rằng không có giới hạn về tổng dữ liệu có thể đặt trong bản tin Echo Request và bản tin Echo Reply.
8 Các vấn đề an toàn bảo mật
8.1 Xác thực và tính bảo mật của bản tin ICMPv6
Các trao đổi gói tin giao thức ICMPv6 có thể được xác thực sử dụng mào đầu xác thực IP (AH) như quy định trong RFC 4302 hoặc mào đầu ESP như quy định trong RFC 4303. Việc bảo mật cho các trao đổi gói tin giao thức ICMPv6 có thể đạt được bằng cách sử dụng mào đầu ESP.
Tài liệu RFC 4301 mô tả chi tiết việc điều khiển lưu lượng ICMP nói chung của IPsec.
8.2 Các tấn công ICMPv6
Các bản tin ICMPv6 có thể là đối tượng của các cuộc tấn công khác nhau. Đề cập đầy đủ về tấn công được trình bày trong tài liệu RFC 4301. Các tấn công này và cách thức ngăn chặn được trình bày ngắn gọn như sau:
- Các bản tin ICMPv6 có thể là đối tượng cho các hoạt động có ý định gây cho bên nhận tin tưởng bản tin đến từ một nguồn khác, mà không phải từ bộ tạo bản tin. Để bảo vệ chống lại tấn công này có thể thực hiện bằng cách áp dụng cơ chế xác thực IPv6 như quy định trong RFC 4302 cho bản tin ICMP.
- Các bản tin ICMPv6 có thể là đối tượng cho các hoạt động cố ý định gây ra bản tin hoặc trả lời đến một đích khác theo dự định của bộ tạo bản tin. Việc bảo vệ để chống lại tấn công này có thể thực hiện bằng cách sử dụng mào đầu xác thực AH như quy định trong RFC 4302 hoặc mào đầu ESP như quy định trong RFC 4303. Mào đầu xác thực cung cấp việc bảo vệ bằng cách ngăn chặn sự thay đổi địa chỉ nguồn và địa chỉ đích của gói tin IP. Mào đầu ESP không thực hiện bảo vệ này, nhưng việc tính toán trường Checksum của gói tin ICMPv6 bao gồm các địa chỉ nguồn và địa chỉ đích, và mào đầu ESP bảo vệ trường Checksum. Vì thế, việc kết hợp Checksum và mào đầu ESP cung cấp việc bảo vệ để chống lại kiểu tấn công này. Việc bảo vệ bằng cách sử dụng mào đầu ESP sẽ không mạnh bằng việc bảo vệ bằng mào đầu xác thực.
- Các bản tin ICMPv6 có thể là đối tượng để thay đổi các trường trong bản tin, hoặc tải của bản tin. Việc xác thực (theo RFC 4302) hoặc mã hóa (theo RFC 4303) bản tin ICMPv6 bảo vệ chống lại các hoạt động tấn công kiểu này.
- Các bản tin ICMPv6 có thể được sử dụng để thực hiện các tấn công từ chối dịch vụ bằng cách gửi ngược lại các gói tin IP không đúng. Việc thực hiện theo đúng quy tắc (f) trong Điều 5.4 sẽ bảo vệ chống lại kiểu tấn công này bằng cơ chế giới hạn tốc độ bản tin báo lỗi ICMPv6.
- Ngoại lệ thứ 2 của quy tắc e.3 trong Điều 5.4 dẫn đến một nút mạng độc hại có cơ hội gây ra tấn công từ chối dịch vụ đến một nguồn multicast. Nút mạng tấn công có thể gửi một gói tin multicast với một tùy chọn đích không được biết đã đánh dấu là bắt buộc, với địa chỉ nguồn IPv6 là một nguồn multicast hợp lệ. Một lượng lớn các nút mạng đích sẽ gửi bản tin Parameter Problem đến nguồn multicast, gây nên tấn công từ chối dịch vụ. Cách thức lưu lượng multicast được chuyển tiếp bởi các router multicast yêu cầu nút mạng độc hại tham gia vào tuyến multicast đúng, chẳng hạn gần nguồn multicast. Tấn công này chỉ có thể được tránh bằng cách bảo vệ lưu lượng multicast. Nguồn multicast nên thận trọng trong khi gửi lưu lượng multicast với các tùy chọn đích được đánh dấu là bắt buộc, bởi vì chúng có thể gây ra tấn công từ chối dịch vụ cho chính bản thân chúng nếu tùy chọn đích là không được biết với một số lượng lớn đích đến.
- Khi các bản tin ICMPv6 được chuyển đến các quá trình xử lý tầng trên, có thể thực hiện các tấn công vào các giao thức tầng trên (chẳng hạn TCP) với ICMPv6 (Các tấn công vào TCP bằng ICMP trình bày trong RFC 5927). Khuyến nghị các tầng trên thực hiện một số kiểm tra tính hợp lệ của bản tin ICMPv6 (sử dụng thông tin chứa trong tải của bản tin ICMPv6) trước khi xử lý theo yêu cầu của bản tin ICMPv6. Các kiểm tra tính hợp lệ trên thực tế được quy định rõ cho các tầng trên và nằm ngoài phạm vi của tiêu chuẩn này. Việc bảo vệ tầng trên bằng IPsec sẽ làm giảm các tấn công kiểu này.
Các bản tin báo lỗi ICMPv6 báo hiệu các trạng thái lỗi của mạng đã gặp trong khi xử lý gói dữ liệu internet. Tùy thuộc vào trường hợp cụ thể, các trạng thái lỗi đã thông báo có thể hoặc không thể được giải quyết trong thời gian ngắn. Vì thế, việc phản ứng lại các bản tin báo lỗi ICMPv6 có thể phụ thuộc vào không chỉ loại lỗi và mã lỗi mà còn phụ thuộc vào các yếu tố khác, như thời gian nhận các bản tin báo lỗi, sự nhận biết trước đó về các trạng thái lỗi mạng đã thông báo, và nhận biết trường hợp mạng có host nhận đang hoạt động.
Thư mục tài liệu tham khảo
[1] TCVN 9802-3:2015, “Giao thức Internet phiên bản 6 (IPv6) – Phần 3: Giao thức phát hiện nút mạng lân cận”.
[2] TCVN 9802-4:2015, “Giao thức Internet phiên bản 6 (IPv6) – Phần 4: Giao thức phát hiện MTU của tuyến”.
[3] RFC 4443, “Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification”, March 2006 (Giao thức bản tin điều khiển Internet cho IPv6).
[4] RFC 4301, “Security Architecture for the Internet Protocol”, December 2005 (Kiến trúc bảo mật cho giao thức Internet).
[5] RFC 4302, “IP Authentication Header”, December 2005” (Mào đầu xác thực IP).
[6] RFC 4303, “IP Encapsulating Security Payload (ESP)”, December 2005 (Đóng gói tải bảo mật IP).
[7] RFC 5927, “ICMP Attacks against TCP”, July 2010 (Các tấn công ICMP vào TCP).
Mục lục
1 Phạm vi áp dụng
2 Tài liệu viện dẫn
3 Thuật ngữ và định nghĩa
4 Chữ viết tắt
5 Quy định chung ICMPv6
5.1 Định dạng chung của bản tin
5.2 Xác định địa chỉ nguồn của bản tin
5.3 Tính toán trường Checksum của bản tin
5.4 Quy tắc xử lý bản tin
6 Các loại bản tin báo lỗi ICMPv6
6.1 Bản tin Destination Unreachable
6.2 Bản tin Packet Too Big
6.3 Bản tin Time Exceeded
6.4 Bản tin Parameter Problem
7 Các loại bản tin thông tin ICMPv6
7.1 Bản tin Echo Request
7.2 Bản tin Echo Reply
8 Các vấn đề an toàn bảo mật
8.1 Xác thực và tính bảo mật của bản tin ICMPv6
8.2 Các tấn công ICMPv6
Thư mục tài liệu tham khảo
TIÊU CHUẨN QUỐC GIA TCVN 9802-7:2020 VỀ GIAO THỨC INTERNET PHIÊN BẢN 6 (IPV6) – PHẦN 7: GIAO THỨC BẢN TIN ĐIỀU KHIỂN INTERNET | |||
Số, ký hiệu văn bản | TCVN9802-7:2020 | Ngày hiệu lực | |
Loại văn bản | Tiêu chuẩn Việt Nam | Ngày đăng công báo | |
Lĩnh vực |
Giao dịch điện tử |
Ngày ban hành | 01/01/2020 |
Cơ quan ban hành | Tình trạng | Còn hiệu lực |
Các văn bản liên kết
Văn bản được hướng dẫn |
|
Văn bản hướng dẫn | |
Văn bản được hợp nhất | Văn bản hợp nhất | ||
Văn bản bị sửa đổi, bổ sung | Văn bản sửa đổi, bổ sung | ||
Văn bản bị đính chính | Văn bản đính chính | ||
Văn bản bị thay thế | Văn bản thay thế | ||
Văn bản được dẫn chiếu | Văn bản căn cứ |