Như được định nghĩa trong RFC 2373 về cấu trúc địa chỉ IPv6, có ba khuôn dạng biểu diễn địa chỉ IPv6. Phương pháp được ưa thích hơn cả là khuôn dạng đầy đủ (dài nhất). Nó sử dụng 32 kí tự hệ 16 để biểu diễn một địa chỉ IPv6. Phương pháp tiếp theo là sự biểu diễn địa chỉ IPv6 dưới dạng rút gọn. Để đơn giản cho việc sử dụng, chúng ta có thể rút gọn địa chỉ IPv6 khi có các giá trị 0 có mặt trong địa chỉ IPv6. Điều này có nghĩa là với cùng một địa chỉ IPv6 nhưng sẽ có các cách biểu diễn khác nhau với hai phương pháp trên, một điều khác so với IPv4. Cuối cùng, là phương pháp thứ 3, để miêu tả một địa chỉ liên quan đến cơ chế chuyển đổi, ở đây một địa chỉ IPv4 được nhúng trong một địa chỉ IPv6. Phương pháp này thì ít quan trọng hơn hai phương pháp trên, bởi vì nó chỉ hữu ích khi chúng ta sử dụng cơ chế chuyển đổi chẳng hạn như các tunnel có khả năng tương thích với IPv4 một cách tự động và cơ chế thông dịch địa chỉ mạng - thông dịch giao thức (NAT-PT).
Phƣơng pháp biểu diễn đầy đủ
Như trình bày trong hình 2.9, cách biểu diễn này bao gồm một chuỗi 8 nhóm, mỗi nhóm có 2 byte, mỗi byte biểu diễn bằng hai kí tự hệ 16, các nhóm ngăn cách nhau bởi dấu hai chấm (:). Mỗi nhóm có giá trị từ 0x0000 đến 0xFFFF. Các chữ cái sử dụng trong hệ 16 là các chữ được viết hoa.
Hình 2.9 – Cách biểu diễn một địa chỉ IPv6 trong hệ 16 phân cách nhau bởi dấu hai chấm
Cách biểu diễn đầy đủ là cách biểu diễn dài nhất của một địa chỉ IPv6. Cách biểu diễn này sử dụng 32 kí tự hệ 16 để biểu diễn (8 trường, mỗi trường 4 kí tự). Trong khi đó một địa chỉ IPv4 có 4 trường 8 bit được phân cách nhau bởi dấu chấm (.) và sử dụng 12 kí tự hệ thập phân để biểu diễn.
Bảng 2-1. Ví dụ về sự biểu diễn một địa chỉ IPv6 theo cách đầy đủ
Khuôn dạng đầy đủ của các địa chỉ IPv6
0000:0000:0000:0000:0000:0000:0000:0000 0000:0000:0000:0000:0000:0000:0000:0001 2001:0410:0000:1234:FB00:1400:5000:45FF 3ffe:0000:0000:0000:1010:2a2a:0000:0001 3FFE:0B00:0C18:0001:0000:1234:AB34:0002 FE80:0000:0000:0000:0000:0000:0000:0009 FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF
Phƣơng pháp biểu diễn rút gọn
Trong IPv6, chúng ta thường hay sử dụng các địa chỉ mà chứa một chuỗi các số 0. Để tạo ra cách viết đơn giản hơn cho các địa chỉ kiểu này, một cấu trúc đặc biệt được sử dụng theo hai trường hợp sau: các trường với 16 bit liên tiếp bằng 0 và các bít đầu tiên của các trường 16 bit bằng 0.
+ Các trường với 16 bit liên tiếp bằng 0
Để giảm chiều dài của một địa chỉ IPv6 khi có một hay nhiều trường 16 bit liên tiếp bằng 0, người ta biểu diễn các trường này bởi hai dấu hai chấm (::). Tuy nhiên, quy tắc này chỉ được sử dụng một lần trong một địa chỉ IPv6. Phương pháp này giúp biểu diễn nhiều địa chỉ IPv6 nhỏ hơn rất nhiều. Với cách biểu diễn rút gọn này thì một địa chỉ IPv6 có thể có nhiều cách biểu diễn.
Bảng 2-2 là ví dụ về các địa chỉ IPv6 biểu diễn theo cách đầy đủ và đã được rút gọn bởi vì chúng có một hay nhiều trường 16 bit bằng 0. Các kí tự in đậm trong bảng cho ta biết chúng đã bị rút gọn để được địa chỉ rút gọn.
Bảng 2-2. Ví dụ địa chỉ IPv6 biểu diễn theo cách rút gọn
Dạng đầy đủ Dạng rút gọn sử dụng dấu : 0000:0000:0000:0000:0000:0000:0000:0000 :: 0000:0000:0000:0000:0000:0000:0000:0001 ::0001 2001:0410:0000:1234:FB00:1400:5000:45FF 2001:0410::1234:FB00:1400:5000:45F F 3ffe:0000:0000:0000:1010:2a2a:0000:0001 3ffe::1010:2a2a:0000:0001 3FFE:0B00:0C18:0001:0000:1234:AB34:0002 3FFE:0B00:0C18:0001::1234:AB34:00 02 FE80:0000:0000:0000:0000:0000:0000:0009 FE80::0009 FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FF FF:FFFF Địa chỉ FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF là một ví dụ về tất cả các bit được đặt bằng 1, địa chỉ này không thể rút gọn được. Cách viết này chỉ sử dụng khi nhiều trường 16 bit liên tiếp có giá trị bằng 0.
Bảng 2-3. Ví dụ về các địa chỉ IPv6 được rút gọn sai
Dạng đầy đủ Dạng rút gọn sử dụng dấu :
0000:0000:AAAA:0000:0000:0000:0000:0001 ::AAAA::0001
3ffe:0000:0000:0000:1010:2a2a:0000:0001 3ffe::1010:2a2a::0001
+ Các bít đầu trong các trường 16 bít bằng 0
Phương pháp thứ hai để rút gọn một địa chỉ IPv6, đó là khi một hay nhiều bít ở đầu trong mỗi trường 16 bít bằng 0. Khi đó các số 0 này có thể được bỏ đi để làm giảm độ dài của một địa chỉ IPv6. Tuy nhiên, nếu mọi kí tự trong các trường 16 bit đều được đặt là 0, thì ít nhất một kí tự 0 phải được giữ lại. Bảng 2-4 là ví dụ về một địa chỉ IPv6 được rút gọn khi có các bít đầu bằng 0. Trong ví dụ này, tất cả các bit bằng 0 được bỏ đi và tất cả các giá trị theo sau được giữ nguyên. Các kí tự in đậm trong địa chỉ đầy đủ cho ta thấy chúng đã bị bỏ đi.
Bảng 2-4. Ví dụ về các địa chỉ IPv6 được rút gọn vì có các bit đầu bằng 0 Dạng đầy đủ Dạng rút gọn 0000:0000:0000:0000:0000:0000:0000:0000 0:0:0:0:0:0:0:0 0000:0000:0000:0000:0000:0000:0000:0001 0:0:0:0:0:0:0:1 2001:0410:0000:1234:FB00:1400:5000:45FF 2001:410:0:1234:FB00:1400:5000:45FF 3ffe:0000:0000:0000:1010:2a2a:0000:0001 3ffe:0:0:0:1010:2a2a:0:1 3FFE:0B00:0C18:0001:0000:1234:AB34:0002 3FFE:B00:C18:1:0:1234:AB34:2 FE80:0000:0000:0000:0000:0000:0000:0009 FE80:0:0:0:0:0:0:9 FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF :FFFF + Kết hợp cả hai cách thức rút gọn
Sự kết hợp của hai cách thức rút gọn cho ta một địa đỉa IPv6 có độ dài đơn giản hơn rất nhiều. Bảng 2-5 là ví dụ về sự áp dụng cả hai phương pháp trên. Các kí tự in đậm trong địa chỉ đầy đủ cho ta thấy chúng đã bị bỏ đi để được địa chỉ rút gọn.
Bảng 2-5. Ví dụ về các địa chỉ IPv6 được rút gọn kết hợp cả hai cách
Dạng đầy đủ Dạng rút gọn 0000:0000:0000:0000:0000:0000:0000:0000 :: 0000:0000:0000:0000:0000:0000:0000:0001 ::1 2001:0410:0000:1234:FB00:1400:5000:45FF 2001:410::1234:FB00:1400:5000:45FF 3ffe:0000:0000:0000:1010:2a2a:0000:0001 3ffe::1010:2a2a:0:1 3FFE:0B00:0C18:0001:0000:1234:AB34:0002 3FFE:B00:C18:1::1234:AB34:2 FE80:0000:0000:0000:0000:0000:0000:0009 FE80::9
Địa chỉ IPv6 đƣợc cấu tạo từ một địa chỉ IPv4
Phần đầu tiên của một địa chỉ IPv6 được miêu tả bằng hệ 16, và phần địa chỉ IPv4 được biểu diễn bằng số thập phân ngăn cách nhau bởi dấu chấm. Đây là sự biểu diễn đặc biệt của một địa chỉ IPv6 bằng cách sử dụng cơ chế chuyển đổi.
Hình 2.10 – Địa chỉ IPv6 được tạo từ một địa chỉ IPv4
Hình 2.10 trình bày khuôn dạng của một địa chỉ IPv6 được tạo từ một địa chỉ IPv4. Kiểu địa chỉ này với 6 trường đầu được miêu tả bằng hệ 16, kí hiệu bởi kí tự X, và theo sau là 4 trường 4 bít biểu diễn bằng hệ thập phân (địa chỉ IPv4), được kí hiệu bởi chữ d (tổng số 32 bit).
Hai loại địa chỉ IPv6 được tạo từ cùng một địa chỉ IPv4:
+ Địa chỉ IPv6 có khả năng tƣơng thích IPv4 – Được sử dụng để thiết lập một tunnel tự động mang các gói tin IPv6 trên các mạng IPv4. Các node mang địa chỉ IPv6 sử dụng kiểu địa chỉ này để tải địa chỉ IPv4 ở 32 bit sau như vậy mới kết nối được với các node mang địa chỉ IPv4. Địa chỉ này liên quan tới cơ chế chuyển đổi của giao thức IPv6.
Hình 2.11 – Cấu trúc địa chỉ IPv6 có khả năng tương thích với IPv4
+ IPv4-mapped IPv6 address – Chỉ được sử dụng trên vùng cục bộ của các node có cả ngăn xếp giao thức IPv4 và IPv6 (dual-stack). Những node mang địa chỉ IPv4 sử dụng kiểu địa chỉ này để tương thích với IPv6, có vậy mới kết nối được với các node mang địa chỉ IPv6.
Hình 2.12 – Cấu trúc địa chỉ IPv4 giả làm địa chỉ IPv6
Sự khác nhau của hai kiểu địa chỉ này là chúng có các tiền tố IPv6 khác nhau, tiền tố cho kiểu địa chỉ thứ nhất là 96 bit cao có giá trị bằng 0 và theo sau là 32 bit của một địa chỉ IPv4. Còn tiền tố cho kiểu địa chỉ thứ 2 là 80 bit cao có giá trị bằng 0, 16 bit tiếp theo có giá trị bằng 1 và cuối cùng là 32 bit của một địa chỉ IPv4 (của một node cục bộ).
Bảng 2-6 trình bày ví dụ về mỗi loại địa chỉ IPv4 được nhúng trong địa chỉ IPv6 và cũng cho thấy cả hai địa chỉ có thể được viết theo kiểu rút gọn. Các kí tự in đậm trong địa chỉ đầy đủ cho ta thấy chúng đã bị bỏ đi để được địa chỉ rút gọn.
Bảng 2-6. Ví dụ về hai loại địa chỉ nói trên
Dạng đầy đủ Dạng rút gọn
0000:0000:0000:0000:0000:0000:206.123.31.2 0:0:0:0:0:0:206.123.31.2 hoặc
::206.123.31.2
0000:0000:0000:0000:0000:0000:ce7b:1f01 0:0:0:0:0:0:ce7b:1f01 hoặc ::ce7b:1f01
0000:0000:0000:0000:0000:FFFF:206.123.31.2 0:0:0:0:0:FFFF:206.123.31.2 hoặc
::FFFF:206.123.31.2
0000:0000:0000:0000:0000:FFFF:ce7b:1f01 0:0:0:0:0:FFFF:ce7b:1f01 hoặc ::FFFF:ce7b:1f01
Sự biểu diễn địa chỉ IPv6 trong URL
Trong khuôn dạng URL, dấu hai chấm (:) được định nghĩa để chỉ ra một chỉ số cổng tùy chọn. Đây là ví dụ của URL sử dụng dấu hai chấm để chỉ một chỉ số cổng:
www.example.net:8080/index.html http://www.example.com:8443/abc.html
Trong IPv6, URL của trình duyệt Internet phải có khả năng phân biệt dấu hai chấm của chỉ số cổng và dấu hai chấm trong một địa chỉ IPv6. Tuy nhiên, điều này là không thể bởi vì nếu một địa chỉ IPv6 được viết theo kiểu rút gọn thì sẽ có hai dấu hai chấm ở bất kỳ vị trí nào trong địa chỉ IPv6.
Vì vậy, để nhận biết một địa chỉ IPv6 trong khi vẫn giữ dấu hai chấm cho khuôn dạng URL (chỉ số cổng), địa chỉ IPv6 phải nằm trong dấu ngoặc vuông, như được định nghĩa trong RFC 2732. Và khi đó sau dấu ngoặc vuông chỉ số cổng có thể được thêm vào, tiếp theo đến thư mục và tên file. Dưới đây là ví dụ của URL với địa chỉ IPv6 nằm trong dấu ngoặc vuông:
[3ffe:b80:c18::50]:8080/index.html
https://[2001:410:0:1:250:fcee:e450:33ab]:8443/abc.html
Tuy nhiên, cấu trúc địa chỉ IPv6 bên trong dấu ngoặc vuông thông thường chỉ sử dụng cho mục đích kiểm tra chẩn đoán và khi dịch vụ tên miền (DNS) không sử dụng được. Bởi vì địa chỉ IPv6 dài hơn các địa chỉ IPv4, nên người dùng có khuynh hướng sử dụng khuôn dạng DNS và FQDN thay vì địa chỉ IPv6 biểu diễn dưới dạng hexa.
Địa chỉ IPv6 và mạng con (subnetting)
Trong IPv4 có hai cách để biểu diễn một tiền tố mạng:
+ Biểu diễn thập phân – Một mặt nạ mạng được chỉ ra theo khuôn dạng d.d.d.d. Giá trị mặt nạ mạng cho biết số bit nhị phân liên tiếp được đặt bằng 1.
+ Kí hiệu định tuyến liên miền không theo lớp địa chỉ (CIDR) – Mặt nạ tiền tố mạng cũng có thể được chỉ rõ bằng một số thập phân biểu diễn số bit nhị phân liên tiếp bằng 1. Kí tự gạch chéo (/) được sử dụng giữa tiền tố và giá trị mặt nạ mạng.
Cả hai cách biểu diễn đều có nghĩa là có cùng số bit mặt nạ mạng cho các node. Ví dụ, mạng 192.168.1.0 với mặt nạ mạng 255.255.255.0 cũng có thể viết là 192.168.1.0/24 theo CIDR. Phạm vi địa chỉ IP có thể cung cấp cho các node trong mạng này là từ 192.168.1.1 đến 192.168.1.254.
Trong IPv6, nếu sử dụng mặt nạ mạng biểu diễn theo khuôn dạng dài, như d.d.d.d thì sẽ không thể được vì một địa chỉ IPv6 có kích thước khá dài. Nên chỉ có thể chấp nhận khuôn dạng biểu diễn mặt nạ mạng IPv6 theo kiểu CIDR. Mặc dù các địa chỉ IPv6 được biểu diễn dưới dạng hexa, nhưng giá trị mặt nạ mạng vẫn có thể sử dụng một số thập phân. Bảng 2-7 là ví dụ các địa chỉ IPv6 và tiền tố mạng viết theo kiểu CIDR.
Bảng 2-7. Ví dụ về các chỉ số mạng IPv6 với mặt nạ mạng
Tiền tố IPv6 Miêu tả
2001:410:0:1:0:0:0:45FF/128 Biểu diễn một subnet với chỉ một địa chỉ IPv6
2001:410:0:1::/64 Tiền tố mạng 2001:410:0:1::/64 có thể sử dụng 264 node. Đây là độ dài tiền tố mặc định cho một subnet.
2001:410:0::/48 Tiền tố mạng 2001:410:0::/48 có thể sử dụng 216
tiền tố mạng của 64-bit. Đây là độ dài tiền tố mặc định cho một site.
Đối với cả IPv4 và IPv6, số bit được đặt bằng 1 trong mặt nạ mạng đều định nghĩa độ dài của tiền tố mạng; phần còn lại là địa chỉ của node. Thông tin này là cơ bản về IP. Nó bảo cho mỗi node biết khi các gói tin phải được gửi tới router mặc định hoặc tới một node cụ thể trên cùng mạng con lớp liên kết dữ liệu.
Sự khác biệt trong IPv6 đó là nó không có địa chỉ dành riêng trong phạm vi một tiền tố mạng. Trong IPv4, địa chỉ đầu tiên và địa chỉ cuối cùng của một mạng là các địa chỉ dành riêng. Địa chỉ đầu tiên là địa chỉ mạng và địa chỉ cuối cùng là địa chỉ quảng bá. Điều này có nghĩa là tổng số địa chỉ IPv4 có thể sử dụng trong một dải bằng
2n-2, ở đây n là số bit cho địa chỉ host. Ví dụ, với mạng 192.168.1.0/24, địa chỉ
192.168.1.0 và 192.168.1.255 không được gán cho các node bởi vì chúng được để dành cho mục đích khác.
IPv6 không có các địa chỉ dành riêng cho mạng hay quảng bá. Tuy nhiên, số bit để định địa chỉ cho các host trong một site prefix (48 bit) của IPv6 lớn đến mức mà không cần phải hoạch định địa chỉ cho một site sử dụng các giá trị mặt nạ mạng khác nhau. Vì vậy, sự tính toán mặt nạ mạng cho mỗi subnet và việc sử dụng mặt nạ mạng
con có độ dài thay đổi (VLSM) là không cần thiết. Trong IPv6, sự phân bổ mạng con là đơn giản hơn rất nhiều trong IPv4.