Cấu trúc và đặc điểm các dạng địac hỉ IPv6
Trong IPV4, không rõ ràng là một địa chỉ được gắn cho node hay gắn cho giao diện. IPV6 xác định rõ ràng rằng địa chỉ được cấu hình trên mỗi giao diện mạng. Địa chỉ unicast IPV6 có thể được phân loại theo phạm vi. Một phạm vi có nghĩa ...
Trong IPV4, không rõ ràng là một địa chỉ được gắn cho node hay gắn cho giao diện. IPV6 xác định rõ ràng rằng địa chỉ được cấu hình trên mỗi giao diện mạng.
Địa chỉ unicast IPV6 có thể được phân loại theo phạm vi. Một phạm vi có nghĩa là một vùng ứng dụng. Phạm vi toàn cầu (global scope) có thể được sử dụng để giao tiếp trên toàn cầu, và phạm vi nội bộ (local scope) được sử dụng cho mục đích trong vòng một site. Link-local scope, được sử dụng trên một link nội bộ, Nói cách khác, nó có thể được sử dụng trong vòng giới hạn biên của router.
Giả sử một node (host) được gắn vào một mạng IPV6 bằng một cáp Ethernet. Ethernet adapter sẽ có một địa chỉ link-local được cấu hình. Nếu node đó có kết nối IPV6 toàn cầu, thì giao diện Ethernet đó cần phải được cung cấp một địa chỉ unicast toàn cầu. Và giả sử nếu như phạm vi site-local được sử dụng trong tổ chức thì địa chỉ site-local cần phải được cấu hình.
10 bít đầu tiên của địa chỉ link-local luôn luôn là 1111 1110 00 (tức là FE80::/10 theo dạng thức hexadecimal). 54 bít tiếp theo là 0, theo sau là định danh giao diện (interface ID) được tạo thành từ địa chỉ MAC trong trường hợp có Ethernet adapter. Địa chỉ link-local được cấu hình ngay lập tức khi giao diện được gắn vào mạn. Nói cách khác, địa chỉ link-local được tạo đầu tiên, trước khi địa chỉ toàn cầu được cấu hình. Router ngăn những gói tin chứa địa chỉ link-local. Do vậy, địa chỉ link-local chỉ được sử dụng trên một link.
Sử dụng phổ biến nhất của địa chỉ link-local là trong quá trình tự động cấu hình của địa chỉ unicast toàn cầu. Như đã nói ở trên, địa chỉ toàn cầu được cấu tạo từ định danh giao diện (interface ID) và tiền tố mạng (network prefix). Network prefix được nhận từ router tương ứng trên đường link, do vậy, node cần phải giao tiếp với router trước tiên. Địa chỉ link-local được sử dụng chính cho mục đích này.
Địa chỉ site-local được xác định cấu hình trong một mạng cấu tạo bởi một số mạng con. 10 bít đầu tiên của địa chỉ site-local luôn luôn là 1111 1110 11 (tức là FEC0::/10 theo dạng thức hexadecimal). 38 bít sau là 0, sau đó là 16 bit định danh mạng (subnet ID). Tuy nhiên, địa chỉ site-local nảy sinh một số vấn đề, bao gồm việc không rõ ràng trong định .
Anycast là một dạng địa chỉ hoàn toàn mới trong IPV6. Dạng địa chỉ này không được gắn cho node hay giao diện, mà cho những chức năng cụ thể. Thay vì thực hiện truyền dữ liệu đến mọi node trong một nhóm như địa chỉ multicast, anycast gửi gói tin đến node gần nhất (tính theo thủ tục định tuyến) trong nhóm.
Anycast không có không gian địa chỉ riêng gắn cho nó. Nó được lấy trong vùng của địa chỉ unicast. Bởi vậy, địa chỉ anycast cũng có ba phạm vi, như địa chỉ unicast. Nhưng việc sử dụng của địa chỉ anycast cũng không rõ ràng. Hiện nay đang có những thảo luận về việc có sử dụng dạng địa chỉ anycast cho những mục đích như tìm DNS hoặc Universal Plug and Play.
Địa chỉ multicast được cấu hình trong một nhóm multicast. Nói cách khác, nhiều node có thể được gắn cho một nhóm multicast nhất định, và nhóm này được gắn một địa chỉ multicast. Do vậy, node thực hiện truyền dữ liệu sẽ chỉ cần xác định địa chỉ multicast này, để gửi gói tin đến mọi node (chính xác hơn là đến các giao diện) trong nhóm multicast này.
Địa chỉ multicast cũng có phạm vi: toàn cầu (global), tổ chức (organization-local), một site (site-local), link (link-local) và trong node (node-local). Phạm vi tổ chức và node là hai dạng địa chỉ mới, không có trong dạng địa chỉ unicast. Phạm vi organization-local được sử dụng trong phạm vi một tổ chức với một số site, tuy nhiên định nghĩa không rõ ràng. Phạm vi node local chỉ có tính ứng dụng trong phạm vi một node. Dạng phạm vi địa chỉ này được định nghĩa vì không như địa chỉ IPV4, một node IPV6 có thể được gắn rất nhiều địa chỉ.
Dạng thức của địa chỉ multicast như sau:
8 bít đầu tiên trong địa chỉ multicast luôn luôn là 1111 1111 (tức là FF theo dạng thức hexadecimal). “Flag” sử dụng từ bít thứ 9 đến bít 12 và chỉ ra xem liệu đây có phải là dạng địa chỉ multicast được định nghĩa trước (well-known). Nếu có là well-known, mọi bít sẽ là 0. “Scope” chiếm từ bít thứ 13 đến bít thứ 16. Nếu Scope ID = 2, ví dụ, thì đó là phạm vi link-local.
Group ID được sử dụng để xác định một nhóm multicast. Có những group ID được định nghĩa từ trước (predefined group ID), ví dụ Group ID=1 tức là mọi node. Bởi vậy, nếu địa chỉ multicast là ff02;;1 có nghĩa Scope ID=2 và Group ID=1, chỉ định mọi node trong phạm vi một link (link-scope). Điều này giống như broadcast trong địa chỉ IPV4.
Địa chỉ multicast của IPV6 có nhiều ưu điểm so với địa chỉ multicast của IPV4. Một trong số đó là số lượng địa chỉ để sử dụng. Trong IPV4, Class D được dành cho multicast, đó chỉ là khoảng không gian địa chỉ nhỏ từ 224.0.0.0 tới 239.255.255.255. Nhưng trong địa chỉ IPV6, vùng địa chỉ dành cho multicast chiếm tới 1/256 không gian địa chỉ khổng lồ. Do vậy địa chỉ multicast có thể được sử dụng thoải mái hơn. Thêm nữa cơ sở hạ tầng có hỗ trợ multicast có thể xây dựng dễ dàng hơn, bởi vì không như IPV4, địa chỉ multicast là bắt buộc trong thực hiện IPV6.
6BONE là hệ quả tất yếu của dự án IETF Ipng. Dự án này tạo ra các giao thức IPv6 có ý định thay thế IPv4, giao thức Internet hiện đang lưu hành. Hiện tại 6bone là một dự án cộng tác không chính thức trên toàn cầu, và được hoạt động với sự giám sát của nhóm làm việc ?NGTRANS? (chuyển tiếp sang IPv6) của IETF. 6bone lúc khởi đầu như một mạng ảo (sử dụng tunneling IPv6 qua IPv4 - đóng gói) được hoạt động dựa vào mạng IPv4 (Internet hiện tại) để hỗ trợ vận chuyển IPv6. Điểm trọng tâm của 6bone khi bắt đầu là thử nghiệm các chuẩn và việc thi hành, trong khi sự chú ý hiện tại được tập trung chủ yếu vào thử nghiệm chuyển vận và các thủ tục xử lý.
Microsoft Windows XP, Linux và BSD hoàn toàn có những IPv6-stack (ngǎn IPv6) thử nghiệm có sẵn. FreeBSD 4.x cũng đã sẵn sàng với IPv6. Linux kernel 2.4.x cũng có một mô đun IPv6. Và Microsoft có một bộ công cụ cho IPv6 có thể tải xuống trên website của họ. Hãy đảm bảo việc cài đặt một số ứng dụng IPv6 ? như ping6, traceroute6, một Web browser và FTP client ? và như vậy bạn đã có quá đủ. Sau đây là một thử nghiệm đơn giản : Lấy 2 máy có cấu hình mạnh IPv6, và gán cho cả hai một địa chỉ IPv6 (trên cùng một mạng con - subnet) và "gắn" chúng vào cùng một switch. Hai máy này có thể ping lẫn nhau. Điều đó ít ra cũng cho bạn biết rằng các hệ thống này đang hoạt động hiệu quả trước khi giải quyết những tác vụ khó khǎn hơn, như việc định tuyến và truyền thông ra thế giới bên ngoài.
Bây giờ đến phần khó khǎn nhất: nhận một địa chỉ IPv6 duy nhất, định tuyến toàn cầu và gửi dữ liệu đến các site khác trên mạng 6bone. Câu trả lời đơn giản nhất là tìm một nhà cung cấp dịch vụ (ISP) cho IPv6, nhận các địa chỉ của bạn và thực hiện một kết nối trực tiếp đến mạng 6bone từ nhà cung cấp đó. Lựa chọn của bạn còn lại là tạo một tunnel (đường hầm) vận chuyển lưu lượng IPv6 đi qua một liên kết IPv4 (tương tự như tunnel IPX đi qua Internet giữa hai vǎn phòng) qua sử dụng cơ chế đóng gói có tên "6to4".
"6to4" là một giải pháp của Carpenter & Moore cho việc kết nối các site IPv6 qua hạ tầng cơ sở IPv4 (Internet hiện thời). Cơ chế này sử dụng một tiền tố địa chỉ duy nhất cho bất kỳ các vùng IPv6 đang bị cô lập (hoặc các máy chủ host) được "gắn" vào một mạng IPv4 mà mạng này không có sự hỗ trợ IPv6, để giao tiếp với các vùng IPv6 (hoặc các máy chủ) khác. Điều kiện chủ yếu để sử dụng "6to4" là bạn cần có một địa chỉ IPv4 duy nhất và có thể định tuyến toàn cầu cho vùng IPv6 của bạn. "6to4" tương tự như một nhà cung cấp dịch vụ Internet "giả" (pseudo-ISP) cung cấp khả nǎng kết nối IPv6. Bạn có thể sử dụng "6to4" để liên lạc trực tiếp với các vùng 6to4 khác. Site của bạn bao gồm một tập hợp các bộ định tuyến và máy chủ (host) có chạy IPv6 (MSR IPv6 của Microsoft chẳng hạn). Địa chỉ có thể định tuyến toàn cầu IPv4 phải được gán vào một trong các máy chạy MSR IPv6. Máy này sẽ là cổng nối (gateway) "6to4" của bạn.
Cách dễ dùng giải pháp "6to4" nhất là sử dụng client (khách hàng) của freenet6. Freenet6 được phát triển bởi Viagenie, một công ty Canada, trong thời gian 1999 - 2000. Đây là một dịch vụ phục vụ tunnel công cộng đầu tiên (public tunnel server service) và là một trong những dịch vụ được sử dụng nhiều nhất trên thế giới để uỷ quyền (delegate) tự động một địa chỉ đơn IPv6 đến bất kì một máy chủ (host) nào đã kết nối trong mạng IPv4 thông qua tunnel (đã được cấu hình) một cách dễ dàng. TSP (Tunnel Setup Protocol - Giao thức Thiết lập Tunnel) của Freenet6 là sáng kiến của Viagenie, để đẩy nhanh việc triển khai IPv6 trên Internet tới tất cả mọi người trên mạng. Internet hiện tại được triển khai toàn cầu bằng IPv4, cho nên mục đích chính của dịch vụ này là triển khai IPv6 với quy mô lớn hơn khi sử dụng các tunnel (đã được cấu hình). Tunnel đã được cấu hình (configured tunnel) là một phương pháp chuyển tiếp được chuẩn hoá bởi IETF để sử dụng IPv6 cùng tồn tại với IPv4 qua việc phân mảnh (đóng gói) các gói dữ liệu IPv6 thông qua IPv4. Bất cứ máy chủ (host) nào đã được kết nối với Internet IPv4 (Internet hiện tại) và có một ngǎn xếp IPv6 (IPv6 stack) có thể thiết lập kết nối với Internet IPv6. Thay vì một giao diện Web để yêu cầu các tunnel đã được cấu hình và các địa chỉ IPv6, TSP của Freenet6 là một mô hình mới dựa vào cách tiếp cận khách - chủ (client - server). Một giao thức được sử dụng để yêu cầu một địa chỉ đơn IPv6 nhằm lấp đầy tiền tố IPv6 từ một khách hàng (client) tới một máy phục vụ tunnel theo mô hình môi giới IPv6. Giao thức này có thể được tích hợp trực tiếp vào hệ điều hành để đưa ra một dịch vụ kiểu như DHCP nhưng để yêu cầu các địa chỉ hay các tiền tố qua một mạng IPv4 (tức Internet hiện tại).
Sơ đồ Configured-Tunnel
Hiện tại Viagenie đưa ra các mạng con với tiền tố 48-bit (/48-subnet) để cấp phát. Một /48-subnet cho phép bạn tạo ra 65.535 subnet khác với 264 nút cho mỗi subnet. Đây là một số lượng lớn các nút mạng. Phần mềm client tự động thiết lập một tunnel "6to4" với chúng và "hướng" máy tính của bạn vào trong một bộ định tuyến IPv6-stack kép. Bạn có thể sử dụng nó trong phòng thí nghiệm với một FreeBSD 4.0 Server và trên mạng 6bone.
Cấu trúc gói tin IPv6
Nếu bạn muốn định tuyến phức tạp hơn, bạn có thể tính toán một cách thủ công mạng IPv6 của bạn lấy được từ các địa chỉ IPv4 có khả nǎng định tuyến toàn cầu và tìm ra ai đó có thể móc nối bạn vào trong mạng 6bone. Mỗi một địa chỉ IPv4 được chứa trong một mạng IPv6 /48 (với tiền tố 48-bit) đằng sau nó (xem sơ đồ 6to4 Frefix Format ở trên). Bạn lấy địa chỉ IP 192.168.47.5 làm ví dụ (tuy nhiên bạn phải sử dụng địa chỉ IP có khả nǎng định tuyến trên Internet thực tế của bạn). Bước đầu tiên để nhận được địa chỉ IPv6 của bạn từ địa chỉ IPv4 của bạn qua việc chuyển đổi từ hệ thập phân (decimal) sang hệ 16 (hexadecimal). Một cách để làm việc đó là thực hiện lệnh perl "printf('%x %x %x %x', 192, 168, 47, 5);" và cho ra "c0 a8 2f 5". Địa chỉ IPv6 sẽ bắt đầu với "2002 :" được dự trữ cho việc chuyển đổi "6to4". Phần tiếp theo sẽ là địa chỉ IPv4 của bạn ở hệ 16, tiếp theo sau là bất cứ thứ gì bạn muốn để cài đặt tiền tố 48-bit của bạn.
Địa chỉ IPv6 của chúng ta được biểu diễn như sau "2002 : c0a8 : 2f05 : 0001 : : 2", với "0001 : : 2" được chọn tuỳ ý. Bây giờ bạn cần tìm ra người nào đó có ý muốn thiết lập một tuyến đường giữa địa chỉ IPv6 nhận được của bạn và mạng 6bone. Điều đó có thể được thực hiện bởi bất cứ ai đang trên mạng 6bone, và đây là một ý tưởng tốt để lựa chọn một site gần bạn mà nó có thể điều khiển tải lưu lượng của bạn. Luôn có sẵn một số bộ định tuyến "6to4" (6to4 router) ẩn danh chung (công cộng) để sử dụng, nhưng một số thường chậm hoặc không đáng tin cậy. Chúng ta có quá nhiều phiền hà khi sử dụng các bộ định tuyến chung này và chúng ta phải phản hồi lại cho freenet6 client. Khi sử dụng một bộ định tuyến chung hay tìm ra một nhà cung cấp, mà nó có thể thiết lập một tunnel tĩnh cho bạn, sẽ cấp cho bạn một mạng IPv6 thực sự mà bạn sở hữu và điều khiển