TỔNG QUAN VỀ IPV6 full


IPv4 đã được chuẩn hóa kể từ RFC 791 phát hành năm 1981. IPv4 dùng 32bit để biểu diễn địa chỉ
IP. Sử dụng 32 bit này, ta có thể đánh được khoảng 4.3 tỷ địa chỉ khác nhau. Nhưng chỉ khoảng hơn 10 năm sau khi ra đời, vào nửa đầu thập kỷ 90, nguy cơ thiếu địa chỉ IP đã xuất hiện tại 1 số nước như Trung Quốc, Ấn Độ, .... Các nhà phát triển đã triệu tập nhiều hội nghị, nhiều phương án đã xuất hiện như: CIDR, NAT, ... song, với sự phát triển cực kỳ tốc độ, 4.3 tỷ địa chỉ kia không đủ đặt địa chỉ cho những PC, di động, các thiết bị điện tử khác, ... để nối trực tiếp tới Internet

Để giải quyết vấn đề đó thì IPv6 đã ra đời. Với 128 bit lớn hơn IPv4 gấp 4 lần, bạn có thể đánh được khoảng 340 tỷ tỷ tỷ tỷ địa chỉ. Đây là không gian địa chỉ cực lớn không chỉ dành riêng cho Internet mà còn cho tất cả các mạng máy tính, hệ thống viễn thông, hệ thống điều khiển và thậm chí là vật dụng gia đình. Hehe, có bao giờ một ngày nào đó, bạn chưa tắt máy lạnh ở nhà, nồi cơm điện ở nhà chưa bật, bạn có mong muốn là dù bạn có ở bất cứ nơi đâu vẫn có thể kết nối và ra lệnh cho những thiết bị đó từ xa. Trong tương lai không xa, chắc chắn sẽ làm được điều đó, mỗi một vật dụng gia đình sẽ mang một địa chỉ IPv6

IPv6 được tích hợp trong Windows XP SP1 và Windows Server 2003 nhưng bị ẩn . Còn trên Windows Server 2008 và Windows Vista, mặc định IPv6 được mở. Hiện tại thì nhu cầu chúng ta cần 15% IPv6, còn 85% còn lại dùng để dự phòng trong tương lai

Trong phần này, nhóc sẽ giới thiệu tổng quan, cách triển khai và thiết lập một hệ thống mạng có IPv6.

CẤU TRÚC ĐỊA CHỈ IPv6

Tính năng quan trọng nhất của IPv6 khi được so sánh với IPv4 chính là không gian địa chỉ lớn hơn. Địa chỉ IPv4 sẽ không bao giờ được mở rộng, do đó việc nâng cấp lên IPv6 là điều thiết yếu nếu Internet ngày càng phát triển. 

IPv6 có tổng cộng là 128 bit được chia làm 2 phần: 64 bit đầu được gọi là network, 64 bit còn lại được gọi là host. Phần network dùng để xác định subnet, địa chỉ này được gán bởi các ISP hoặc những tổ chức lớn như IANA (Internet Assigned Numbers Authority). Còn phần host là một địa chỉ ngẫu nhiên dựa trên 48 bit của MAC Address.

Địa chỉ IPv6 có 128 bit, do đó việc nhớ được địa chỉ này rất khó khăn. Cho nên để viết địa chỉ IPv6, người ta đã chia 128 bit ra thành 8 nhóm, mỗi nhóm chiếm 2 bytes, gồm 4 số được viết dưới hệ số 16, và mỗi nhóm được ngăn cách nhau bằng dấu hai chấm (

HỆ THẬP LỤC PHÂN VÀ HỆ NHỊ PHÂN

Ví dụ:

FEDL:8435:7356:EADC:BA98:2010:3280:ABCD

Nhưng nếu mà viết theo kiểu như vậy( đẹp thì có đẹp đó), nhưng nhìn một hồi nhức đầu wá. Hix…hix. Cho nên, cần phải đơn giản cái địa chỉ này một chút. Vì IPv6 là một địa chỉ mới nên chúng ta sẽ ko xài hết 128 bits, cũng giống như SIM điện thoại vậy, đầu số 0122 mới ra có rất nhiều số và do đó chúng ta có quyền lựa chọn. Và IPv6 cũng vậy, vì mới ra cho nên sẽ có nhiều số 0 ở các bit đầu. Chúng ta có thể lược bỏ các số 0 này đi. Để nhóc lấy một ví dụ cụ thể nhé:

Địa chỉ: 1088:0000:0000:0000:0008:0800:200C:463A

--> Bạn có thể viết 0 thay vì phải viết là 0000, viết 8 thay vì phải viết 0008, viết 800 thay vì phải viết là 0800

Và đây là địa chỉ đã được rút gọn: 1088:0:0:0:8:800:200C:463A

Nhìn chung như vậy cũng được rồi, nhưng IPv6 còn có một nguyên tắc nữa là bạn có thể nhóm các số 0 lại thành 2 dấu hai chấm "::", địa chỉ ở trên, bạn có thể viết lại như sau:

1088::8:800:200C:463A

Qua ví dụ của nhóc, bạn sẽ rút ra được 2 nguyên tắc:

1. Trong dãy địa chỉ IPV6, nếu có số 0 đứng đầu có thể loại bỏ. Ví dụ 0800 sẽ được viết thành 800, hoặc 0008 sẽ được viết thành 8

2. Trong dãy địa chỉ IPv6, nếu có các nhóm số 0 liên tiếp, có thể đơn giản các nhóm này bằng 2 dấu :: ( chí áp dụng khi dãy 0 liên tiếp nhau)

Bạn với nhóc thử làm vài ví dụ nhé: 

Ví dụ 1: FADC:BA98::7654:3210

-> IPv6 có tổng cộng là 8 nhóm, mà ở trên bạn thấy có 4 nhóm, như vậy ở giữa 2 dấu hai chấm, sẽ là 4 nhóm số 0. Vậy địa chỉ trên có thể viết đầy đủ là: 

FADC:BA98:0:0:0:0:7654:3210

Ví dụ 2: FADC:BA98:7654:3210::

-> có địa chỉ đầy đủ là: FADC:BA98:7654:3210:0:0:0:0

Ví dụ 3: ::FADC:BA98:7654:3210

-> có địa chỉ đầy đủ là: 0:0:0:0:FADC:BA98:7654:3210

Nhưng bây giờ nhóc tui có trường hợp như vậy nè:

Giả sử nhóc có địa chỉ 0:0:0:AB65:8952:0:0:0, bây giờ yêu cầu bạn đơn giản hóa địa chỉ này lại, nhóc đưa ra 3 đáp án cho bạn chọn hen

1. ::AB65:8952::

2. ::AB65:8952:0:0:0

3. 0:0:0:AB65:8952::

Hihi, chỉ có đáp án 2 và 3 là đúng. Một nguyên tắc nữa cần phải nhớ trong IPv6 là bạn chỉ có thể sử dụng 2 dấu hai chấm một lần với địa chỉ. Không được viết như vầy ::AB65:8952::, vì nếu bạn viết như thế sẽ gây nhầm lần khi dịch ra đầy đủ.

Ví dụ: Nếu bạn viết ::AB65:8952::, thì người ta có thể đoán địa chỉ đầy đủ cúa nó như thế này

0:0:AB65:8952:0:0:0:0 hoặc 0:0:0:0:AB65:8952:0:0 , …

Sử dụng các địa chỉ IPv6 trong việc truy cập URL

Bạn có thể truy cập một trang web bằng tên hoặc bằng địa chỉ IP. Ví dụ trang web Nhất Nghệ www.nhatnghe.com, có địa chỉ ip tương ứng là 210.245.22.171. Vậy bạn hoàn toàn có thể vào website Nhat Nghe bằng cách gõ: http://210.245.22.171

Tương tự như vậy bạn có thể truy cập một trang web bằng địa chỉ IPv6 nhưng phải để nó trong cặp dấu {}. Ví dụ: 
http://{FEDL:8435:7356:EADC:BA98:2010:3280:ABCD}

Ngoài ra, bạn cũng có thể thêm số port vào địa chỉ URL, Ví dụ: 
http://{FEDL:8435:7356:EADC:BA98:2010:3280:ABCD}:80

CÁC LOẠI IPv6:

IPv6 gồm các loại chính sau đây:

+ Unicast Address: Unicast Address dùng để xác định một Interface trong phạm vi các Unicast Address. Gói tin (Packet) có đích đến là Unicast Address sẽ thông qua Routing để chuyển đến 1 Interface duy nhất

+ Anycast Address: Anycast Address dùng để xác định nhiều Interfaces. Tuy vậy, Packet có đích đến là Anycast Address sẽ thông qua Routing để chuyển đến một Interface trong số các Interface có cùng Anycast Address, thông thường là Interface gần nhất. Chữ “gần nhất” ở đây được xác định thông qua giao thức định tuyến đang sử dụng 

+ Multicast Address: Multicast Address dùng để xác định nhiều Interfaces. Packet có đích đến là Multicast Address sẽ thông qua Routing để chuyển đến tất cả các Interfaces có cùng Multicast Address

Bạn nhận thấy IPv6 không có địa chỉ Broadcast vì chức năng của địa chỉ này đã bao gồm trong nhóm địa chỉ Multicast 

Nói tóm lại, bạn có thể hiểu như sau:

Unicast : Gửi tới 1 địa chỉ xác định

Multicast: Gửi tới tất cả các thành viên của 1 nhóm

Anycast: Gửi tới 1 thành viên gần nhất của 1 nhóm

Bây giờ chúng ta sẽ đi sâu vào từng loại nhé

1- Unicast Address:

Được chia thành 4 nhóm:

a/ Global Unicast Address:
Địa chỉ này được sử dụng để hỗ trợ cho các ISP. Nói đại khái cho dễ hiểu là nó giống như địa chỉ Public của IPv4.

001: 3 bits đầu luôn luôn có giá trị = 001
TLA ID( Top Level Aggregation): Xác định nhà cung cấp cao nhất trong hệ thống các nhà cung cấp dịch vụ
Res: chưa sử dụng
NLA ID (Next Level Aggregation): Xác định nhà cung cấp tiếp theo trong hệ thống các nhà cung cấp dịch vụ
SLA ID (Site Level Aggregation): Xác định các site để tạo các subnet
Interface ID: Là địa chỉ của Interface trong subnet

Sơ đồ phân cấp của Global Unicast Address

b/ Link-local Addresses:
Đây là loại địa chỉ dùng cho các host khi chúng muốn giao tiếp với các host khác trong cùng mạng. Tất cả IPv6 của các interface đều có địa chỉ link local 

Theo hình bên dưới, bạn sẽ thấy

10 bits đầu tiên luôn là: 1111 1110 10
54 bits kế tiếp có giá trị bằng 0

-> Như vậy, trong Link Local Address: 64 bit đầu là giá trị cố định không thay đổi (prefix : fe80::/64)

Bạn thử vào cmd, gõ lệnh ipconfig /all để xem thử giá trị Link-Local Address

+ 64 bits cuối cùng là địa chỉ của Interface

Và có một lưu ý dành cho bạn: Một router không thể chuyển bất kỳ gói tin nào có địa chỉ nguồn hoặc địa chỉ đích là Link Local Address

c/ Site-Local Addresses:

Site-Local Addresses được sử dụng trong hệ thống nội bộ (Intranet) tương tự các địa chỉ Private IPv4 (10.X.X.X, 172.16.X.X, 192.168.X.X). Phạm vi sử dụng Site-Local Addresses là trong cùng Site.

10 bits đầu tiên luôn là: 1111 1110 11 (Prefix FEC0::/10)
54 bits kế tiếp : là giá trị Subnet ID
64 bits cuối cùng là địa chỉ của Interface

d/ Unique Local Address:
Unique Local Address là địa chỉ định tuyến giữa các subnet trên một private network

1111 1101 : 8 bits đầu là giá trị cố định FD00:: /8

40 bits kế tiếp là Global ID : địa chỉ Site (Site ID). Có thể gán tùy ý 

16 bits kế tiếp là Subnet ID : địa chỉ Subnet trong Site, có thể tạo ra 65.536 subnet trong một site 

64 bits cuối cùng là địa chỉ của Interface

2- Anycast Address:

Anycast Address là địa chỉ đặc biệt có thể gán cho nhiều interface, gói tin chuyển đến Anycast Address sẽ được vận chuyển bởi hệ thống Routing đến Interface gần nhất. Hiện nay, địa chỉ Anycast được sử dụng rất hạn chế, rất ít tài liệu nói về cách sử dụng loại địa chỉ này. Hầu như Anycast addresss chỉ được dùng để đặt cho Router, không đặt cho Host, lý do là bởi vì hiện nay địa chỉ này chỉ được sử dụng vào mục đích cân bằng tải. 

Ví dụ : khi một nhà cung cấp dịch vụ mạng có rất nhiều khách hàng muốn truy cập dịch vụ từ nhiều nơi khác nhau, nhà cung cấp muốn tiết kiệm nên chỉ để một Server trung tâm phục vụ tất cả, họ xây dựng nhiều Router kết nối khách hàng với Server trung tâm, khi đó mỗi khách hàng có thể có nhiều con đường để truy cập dịch vụ. Nhà cung cấp dịch vụ đặt địa chỉ Anycast cho các Interfaces là các Router kết nối đến Server trung tâm, bây giờ mỗi khách hàng chỉ việc ghi nhớ và truy cập vào một địa chỉ Anycast thôi, tự động họ sẽ được kết nối tới Server thông qua Router gần nhất. Đây thật sự là một cách xử lý đơn giản và hiệu quả

Khi nhóc tìm hiểu về địa chỉ Anycast, nhóc thấy rất confused. Bởi vì nếu như bạn gán địa chỉ này cho một Interface thì nó y như là địa chỉ Unicast, nhưng khi bạn gán cho nhiều Interfaces thì nó lại có vẻ như là địa chỉ Multicast. Hihi, rắc rối quá phải hem??? Nhưng khi bạn đọc đến phần sau, bạn sẽ thấy sự khác biệt giữa Multicast và Anycast.

3- Multicast Address:

Trong địa chỉ IPv6 không còn tồn tại khái niệm địa chỉ Broadcast. Mọi chức năng của địa chỉ Broadcast trong IPv4 được đảm nhiệm thay thế bởi địa chỉ IPv6 Multicast. Địa chỉ Multicast giống địa chỉ Broadcast ở chỗ điểm đích của gói tin là một nhóm các máy trong một mạng, song không phải tất cả các máy. Trong khi Broadcast gửi trực tiếp tới mọi host trong một subnet thì Multicast chỉ gửi trực tiếp cho một nhóm xác định các host, các host này lại có thể thuộc các subnet khác nhau. Host có thể lựa chọn có tham gia vào một nhóm Multicast cụ thể nào đó hay không (thường được thực hiện với thủ tục quản lý nhóm internet - Internet Group Management Protocol), trong khi đó với Broadcast, mọi host là thành viên của nhóm Broadcast bất kể nó có muốn hay không.

Phù đọc tới đây, có lẽ bạn đã hơi oải rồi, nhóc tui viết bài này cũng vậy. Hihi. Nhưng để cho các bạn dễ nhớ, nhóc tui sẽ đưa cho các bạn một cái bảng tóm tắt các loại địa chỉ IPV6 nhé

 

Post a Comment

Mới hơn Cũ hơn