Các bản tin lỗi và thông tin được sử dụng cho cả ICMPv4 và ICMPv6

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu triển khai mô hình mạng ứng dụng IP version 6 (Trang 62 - 67)

Bản tin Chỉ số Kiểu bản tin Định nghĩa

Destination Unreachable

1 Error Địa chỉ IP hoặc cổng khơng hoạt động trong host đích.

Packet Too Big 2 Error Gói tin lớn hơn MTU của link ra.

Time Exceeded 3 Error Khi TTL bằng 0, gói tin bị hủy bỏ, và một router trung gian sẽ thông báo với nguồn. Echo Request 128 Informational Một bản tin gửi tới đích yêu cầu một bản tin trả

lời.

Echo Reply 129 Informational Một bản tin được sử dụng để đáp ứng cho bản tin yêu cầu.

ICMPv6 được định nghĩa như là giao thức 58 bởi IANA. Như trình bày trong hình 3.1, số này được sử dụng trong trường Next Header của tiêu đề IPv6 cơ sở để chỉ ra đó là một gói tin ICMPv6. IPv6 xem một gói tin ICMPv6 là một giao thức lớp cao hơn, giống như TCP và UDP, có nghĩa là nó phải được đặt sau tất cả tiêu đề mở rộng có thể trong gói tin IPv6.

Các trường trong một gói tin ICMPv6 bao gồm:

ICMPv6 Type – Trường này chỉ ra kiểu bản tin ICMPv6. Các bản tin lỗi và

thông tin được liệt kê trong bảng 3-1 là các ví dụ về kiểu bản tin này.

ICMPv6 Code – Trường này cung cấp chi tiết liên quan tới kiểu bản tin gửi

tới một node.

Checksum – Giá trị được tính tốn sử dụng để phát hiện sự hỏng hóc của dữ

Hình 3.1 – Gói tin ICMPv6 và trường Next Header trong tiêu đề IPv6

ICMPv6 Data – Trường này có thể sử dụng hoặc không, tùy thuộc vào kiểu

bản tin. Khi được sử dụng, trường này cung cấp thơng tin cho node đích.

Trong IPv6, một vài cơ chế của giao thức sử dụng các bản tin ICMPv6:

Sự thay thế giao thức phân giải địa chỉ (ARP) – Một cơ chế sử dụng trên

phạm vi link-local để thay thế ARP trong IPv4. Các node và các router theo dõi các hàng xóm của chúng. Các bản tin ICMPv6 mới được định nghĩa trong IPv6 cho mục đích này.

Sự cấu hình host tự động – Chức năng này cho phép các node tự cấu hình địa

chỉ IPv6 của chúng sử dụng tiền tố được quảng bá trên các link-local bởi các router. Sự quảng cáo tiền tố và sự cấu hình tự động này sử dụng bản tin ICMPv6 mới.

Phát hiện sự trùng lặp địa chỉ – Tại thời điểm khởi tạo và diễn ra quá trình

cấu hình tự động, mỗi node kiểm tra thử sự tồn tại của một địa chỉ IPv6 trước khi sử dụng nó. Chức năng này cũng được thực hiện sử dụng bản tin ICMPv6 mới.

Thay đổi lại tiền tố mạng – Đây là một cơ chế được sử dụng khi một tiền tố

IPv6 trên một mạng bị thay đổi. Giống như sự quảng bá tiền tố, cơ chế này cũng sử dụng một bản tin ICMPv6 mới.

Phát hiện giá trị MTU của đƣờng truyền (PMTUD) – Một cơ chế mà được

sử dụng bởi một node nguồn phát hiện giá trị MTU lớn nhất trên đường truyền tới host đích. Bản tin ICMPv6 cũng được sử dụng để thực hiện nhiệm vụ này.

Bởi vì các gói tin ICMPv6 được sử dụng bởi một vài cơ chế trong IPv6, một

lệnh debug có sẵn trong phần mềm IOS của Cisco cho các bản tin ICMPv6. Tuy

nhiên, lệnh debug ipv6 icmp cho phép kích hoạt mode debug cho các bản tin ICMPv6 trừ những gì liên quan tới giao thức NDP. Cấu trúc lệnh này như sau:

Router#debug ipv6 icmp

Hoặc sử dụng lệnh undebug ipv6 icmp để hủy lệnh này. Router#undebug ipv6 icmp

Ví dụ 3-1 trình bày sự truy nhập vào cổng console sau khi kích hoạt lệnh

debug ipv6 icmp trên router A. Hai dịng đầu tiên trình bày kiểu ICMPv6 128, bản tin

theo trình bày router hồi đáp cho host này với một bản tin ICMPv6 kiểu 129, bản tin echo reply.

Ví dụ 3-1. Trình bày các bản tin ICMPv6 sử dụng trong lệnh debug ipv6 icmp

3.2. Giao thức UDP/TCP[1],[7]

Kiểm tra tổng (checksum) được thực hiện trên các lớp khác. Tiêu đề IPv6 khơng có trường checksum. Nhưng nó lại rất quan trọng đối với lớp giao vận để xác định các vấn đề liên quan đến việc phân phát gói tin. Các giao thức lớp cao hơn khác cũng có thể sử dụng trường checksum. Tất cả các tính tốn checksum bao gồm cả địa chỉ IP phải được sửa đổi cho IPv6 để phù hợp với địa chỉ 128 bit mới.

Các giao thức giao vận như UDP và TCP gắn các trường checksum cho các gói tin của chúng. Một checksum được tạo ra sử dụng một tiêu đề giả. Tiêu đề giả của TCP và UDP bao gồm các trường về địa chỉ nguồn và đích, độ dài dữ liệu, và giá trị Next Header. Nếu gói tin IPv6 chứa một tiêu đề định tuyến, địa chỉ đích sử dụng trong tiêu đề giả là địa chỉ của đích cuối cùng. Nếu địa chỉ nguồn hoặc đích bị thay đổi trong khi truyền, giá trị của tiêu đề giả tại đích sẽ khơng match với giá trị của gói tin ban đầu, là nguyên nhân làm cho sự tính tốn checksum bị sai và một thơng báo lỗi được gửi.

Với IPv4, checksum trong tiêu đề UDP là tùy chọn, cịn với IPv6, tính tốn checksum là bắt buộc đối với UDP. Các node IPv6 mà nhận được một gói tin UDP với giá trị bằng 0 trong trường checksum sẽ hủy bỏ gói tin và ghi lại lỗi.

Node nguồn tính tốn và lưu trữ checksum, và node đích sẽ kiểm tra nó. Hình 3.2 trình bày khn dạng của tiêu đề giả được xây dựng và sử dụng để tính tốn các checksum TCP và UDP.

Dưới đây miêu tả các trường trong tiêu đề đó:

Địa chỉ nguồn (16 byte): Địa chỉ nguồn của gói tin IPv6

Địa chỉ đích (16 byte): Địa chỉ đích của gói tin IPv6. Nếu có một tiêu đề định

tuyến trong gói tin, địa chỉ của đích cuối cùng được sử dụng để tính tốn checksum. Trên node đầu tiên, địa chỉ này là địa chỉ cuối cùng trong danh sách của tiêu đề định tuyến. Tại đích cuối cùng, đây là địa chỉ trong tiêu đề IPv6.

Độ dài gói tin lớp cao hơn (4 byte): Trường này chứa độ dài của tiêu đề giao

thức lớp cao hơn cộng với dữ liệu.

Next header (1 byte): Trường này chỉ ra kiểu tiêu đề được sử dụng.

Cùng thuật tốn được sử dụng với IPv4 để tính tốn checksum với IPv6. 16 bit checksum được tính tốn trên tồn bộ tiêu đề giả. Sự tính tốn checksum cũng bao gồm cả các địa chỉ nguồn và địa chỉ đích nên bất kỳ một sự thay đổi địa chỉ nào trên đường đi sẽ bị phát hiện.

3.3. Giao thức truyền file (FTP)[1],[7]

FTP đã được thiết kế để làm việc trên IPv4 hỗ trợ 32 bit địa chỉ. Với RFC 2428, các mở rộng FTP cho IPv6 và NAT được tạo ra để cho phép FTP làm việc trên IPv4 và IPv6. Trong thời gian mà cả hai giao thức cùng tồn tại, điều quan trọng là các FTP server có một cơ chế để dàn xếp giao thức mạng mà sẽ được sử dụng trong một phiên.

RFC chỉ ra hai lệnh FTP mới để thay thế các lệnh PORT và PASV từ phiên bản FTP trước đây. Lệnh PORT được sử dụng trong mode tích cực để chỉ ra một cổng khác các cổng mặc định sử dụng cho kết nối dữ liệu. Nó chứa thơng tin địa chỉ và vì vậy không thể được sử dụng với IPv6 mà không được thay đổi. Lệnh PASV được sử dụng để đặt server vào mode thụ thộng. Lệnh này bao gồm địa chỉ cổng và địa chỉ host của FTP server và vì vậy khơng làm việc trên IPv6 mà khơng sửa đổi.

Lệnh PORT được thay thế bởi lệnh EPRT, cho phép chỉ ra một địa chỉ được mở rộng để kết nối dữ liệu. Địa chỉ địa mở rộng này chỉ ra giao thức mạng (IPv4 hoặc IPv6), cũng như địa chỉ IP và cổng được sử dụng. Lệnh EPSV thay thế lệnh PASV. Lệnh EPSV có một tùy chọn mà cho phép nó chỉ ra giao thức mạng, nếu cần thiết. Trả lời của server chỉ bao gồm chỉ số cổng mà trên đó nó nghe, nhưng khn dạng của bản tin trả lời thì tương tự như đối với lệnh EPRT và có một placeholder cho giao thức mạng và thơng tin địa chỉ mà có thể được sử dụng trong tương lai. Các lệnh mới này không chỉ phù hợp với IPv6 mà còn cung cấp khả năng mềm dẻo lớn trong việc sử dụng FTP thông qua firewall và NAT.

3.4 Giao thức phát hiện MTU của đường truyền trong IPv6 (PMTUD)[1],[7]

Như được miêu tả trong RFC 1191, cơ chế PMTUD được định nghĩa cho IPv4 vào năm 1990; nó khơng phải là mới với giao thức IPv6. Tuy nhiên, trong IPv4 PMTUD là tùy chọn và không được sử dụng phổ biến bởi các node.

Mục đích chính của PMTUD là tìm ra giá trị MTU của đường truyền khi một gói tin được gửi tới đích để tránh phải phân mảnh. Sau đó node nguồn có thể sử dụng kích thước MTU lớn nhất được tìm thấy để liên lạc với đích. Sự phân mảnh có thể xảy ra trong các router trung gian khi gói tin lớn hơn MTU của lớp liên kết dữ liệu. Sự phân mảnh thì có ích trong việc tiết kiệm các chu kỳ xử lý của CPU trong các router. Tuy nhiên, trong một vài trường hợp, sự phân mảnh có thể xảy ra trong một vài router trung gian trên đường truyền. Điều này làm giảm hiệu quả xử lý của các router.

Sự phân mảnh trong IPv6 không được thực hiện bởi các router. Node nguồn có thể phân mảnh gói tin của nó chỉ khi MTU của đường truyền nhỏ hơn MTU của các gói tin được truyền. Như miêu tả trong RFC 2460, các node IPv6 thực hiện PMTUD để tránh sự phân mảnh.

PMTUD sử dụng bản tin báo lỗi ICMPv6 loại 2, Packet Too Big. Hình 3.3 trình bày một ví dụ của PMTUD cho IPv6 được sử dụng bởi node nguồn. Đầu tiên, node nguồn gửi gói tin IPv6 thứ nhất tới node đích sử dụng giá trị MTU bằng 1500 byte (1). Sau đó router trung gian A trả lời node nguồn sử dụng một bản tin ICMPv6 loại 2, Packet Too Big, và chỉ ra giá trị MTU nhỏ hơn bằng 1400 byte trong gói tin ICMPv6 (2). Node nguồn sau đó gửi bản tin nhưng thay vào đó là sử dụng 1400 byte bằng giá trị MTU; gói tin đi qua router A (3). Tuy nhiên, dọc theo đường truyền, router trung gian B trả lời cho node nguồn sử dụng bản tin ICMP loại 2 và chỉ ra giá trị MTU là 1300 byte (4). Cuối cùng, node nguồn gửi lại gói tin sử dụng kích thước 1300 byte bằng với giá trị MTU đó. Gói tin vượt qua tất cả các router trung gian và được gửi tới đích (5). Phiên kết nối này bây giờ được thiết lập giữa node nguồn và node đích, tất cả gói tin được truyền giữa chúng sử dụng kích thước 1300 byte bằng với MTU (6).

Các giá trị MTU được tìm ra bởi PMTUD cho IPv6 được cất giữ bởi các node nguồn. Với phần mềm IOS của Cisco, chúng ta có thể xem các giá trị PMTUD này sử dụng lệnh show ipv6 mtu. Cấu trúc lệnh này như sau:

Router#show ipv6 mtu

3.5. Giao thức phát hiện hàng xóm (NDP)[1],[7]

Giao thức NDP được định nghĩa trong RFC 2461, là một giao thức quan trọng của IPv6.

Sự thay thế ARP – Bởi vì ARP đã bị hủy bỏ trong IPv6, IPv6 đưa ra một cách mới để xác định các địa chỉ lớp liên kết dữ liệu của các node trên link-local. Cơ chế mới này sử dụng sự kết hợp của các bản tin ICMPv6 và các địa chỉ multicast.

Sự cấu hình tự động của host – Cơ chế này cho phép các node trên link-local

tự động cấu hình địa chỉ IPv6 của chính bản thân nó bằng việc sử dụng cả bản tin ICMPv6 và các địa chỉ multicast.

Router redirection – Router gửi các bản tin ICMPv6 tới một node IPv6 để

báo cho node biết sự có mặt của một địa chỉ router tốt nhất trên cùng link-local để đạt được tới mạng đích.

Hình 3.4 – Các cơ chế trong NDP

Các bản tin ICMP mới được định nghĩa cho các phạm vi cụ thể của NDP. Như trình bày trong bảng 3-2, các bản tin ICMPv6 được gán nhãn trong nội dung của NDP. Các bản tin ICMPv6 mới này là Router Solicitation, Router Advertisement, Neighbor Solicitation, Neighbor Advertisement, và Redirect Message.

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu triển khai mô hình mạng ứng dụng IP version 6 (Trang 62 - 67)