Giới thiệu về địa chỉ IPv6

dailuong

New member
Xu
0
Trong cả hai hệ điều hành Windows Vista và Longhorn Server đều chạy hai giao thức IPv6 và IPv4, các giao thức này hiện nay đang được sử dụng rất rộng rãi. Tuy nhiên có một vài tính năng trong các hệ điều hành này sẽ không làm việc trừ khi IPv6 được sử dụng. Trong trường hợp đó chúng ta nên bắt đầu tìm hiểu thêm một chút về IPv6 xem chúng làm việc như thế nào. Nếu đó không phải là một lý do đủ sức thuyết phục thì một lý do nữa là số lượng địa chỉ IPv4 có thể hoàn toàn cạn kiệt vào khoảng 2009.

Như vậy, giao thức IPv6 sẽ được sử dụng phổ biến trong một vài năm tới và chúng tôi viết loạt bài viết này như một cách nhằm giới thiệu cho các bạn về giao thức IPv6.

Không gian địa chỉ IPv6

Sự khác nhau đáng kể nhất giữa hai giao thức này là chiều dài của địa chỉ nguồn và địa chỉ của chúng. Việc chuyển sang sử dụng IPv6 là do ngày càng thiếu về số địa chỉ IP. Giao thức IPv6 này có một không gian địa chỉ lớn hơn so với giao thức IPv4.

IPv6.jpg

Giao thức IPv4 sử dụng một địa chỉ nguồn và địa chỉ đích là 32bit. Các địa chỉ này được biểu diễn thành bốn phần. Một địa chỉ IPv4 điển hình có dạng như 192.168.0.1.

Tương phản với IPv4, địa chỉ IPv6 có chiều dài là 128bit. Điều đó cho phép có thể biểu diễn đến 3.4x1038 (340.000.000.000.000.000.000.000.000.000.000.000.000) địa chỉ. Có một vài sự khác nhau trong cách biểu diễn địa chỉ của IPv6. Một địa chỉ IPv6 thường được viết thành 8 nhóm, mỗi nhóm gồm có 4 số hex và mỗi nhóm được tách biệt với nhau bằng dấu “:”. Ví dụ như sau thể hiện điều này 2001:0f68:0000:0000:0000:0000:1986:69af.

Bạn đang xem xét địa chỉ mẫu ở trên và nghĩ rằng việc đánh một địa chỉ IPv6 phải rất mất thời gian và công sức? Nhưng không phải như vậy, địa chỉ IPv6 chỉ có thể được viết vắn tắt bằng việc giảm thiểu các số 0. Có hai nguyên tắc phải tuân theo ở đây khi biểu diễn một địa chỉ IP. Đầu tiên, một dãy bốn số 0 liên tục có thể được thay thế bằng hai dấu “::”. Bằng cách đó địa chỉ IPv6 ở trên có thể được viết tắt như sau: 2001:0f68::0000:0000:0000:1986:69af.

Trong ví dụ ở trên, chúng ta chỉ có thể ước lượng một khối các chữ số 0 bởi vì nguyên tắc này phát biểu rằng chỉ có một cặp “::” trong một địa chỉ. Rõ ràng, địa chỉ mà đang ví dụ ở trên vẫn còn rất nhiều chữ số cần phải đánh. Tuy nhiên, nguyên tắc thứ hai sẽ cho phép bạn thực hiện địa chỉ này ngắn hơn. Nguyên tắc thứ hai nói rằng, các số 0 trong một nhóm có thể được bỏ qua. Nếu một khối 4 số bắt đầu của nó là số 0 thì số 0 này có thể được lược bỏ bớt để lại là 3 số 0 trong khối. Nếu khối ba số đó cũng lại bắt đầu với một số 0 đứng đầu thì ta có thể tiếp tục loại bỏ. Và cứ như vậy đến khi gặp số khác 0 trong nhóm thì dừng. Trường hợp nếu 4 số trong nhóm đều là 0 thì số được giữ lại cuối cùng là một số 0. Nếu cứ nói mãi mà không biểu diễn trong ví dụ cụ thể để các bạn dễ theo dõi thì đó là một thiếu sót. Dưới đây là những gì mà chúng ta có thể áp dụng cả hai nguyên tắc đó cho địa chỉ ví dụ:

2001:0f68:0000:0000:0000:0000:1986:69af
2001:f68:000:000:000:000:1986:69af
2001:f68:00:00:00:00:1986:69af
2001:f68:0:0:0:0:1986:69af
2001:f68::1986:69af

Lưu ý rằng trong mỗi dòng, chúng tôi đã lược bỏ bớt một số 0 trong mỗi nhóm. Khi mà các phần còn lại là các con số 0 chúng ta lại có thể áp dụng thay thế 4 số 0 liên tiếp bằng hai dấu “::”. Điều này chỉ có thể thực hiện được nếu bốn số 0 đi liền nhau mà thôi. Nếu không thỏa mãn điều kiện đó thì chúng ta phải để nguyên các số 0.

Sử dụng các địa chỉ IPv6 trong URL

Mặc dù các máy chủ DNS có thể truy cập vào một website bằng cách sử dụng tên miền thay cho sử dụng một địa chỉ IP, nhưng bạn vẫn có thể vào một địa chỉ IP thay cho một phần của một URL. Ví dụ, một website cá nhân sử dụng URL là www.tenmien.com, tương ứng với nó là địa chỉ IP 24.235.10.4. Với địa chỉ IP như vậy, tôi hoàn toàn có thể truy cập vào website bằng cách nhập vào URL: https://24.235.10.4

Hầu hết những người lướt web thường không sử dụng thói quen nhập vào địa chỉ IP. Tuy vậy, việc truy cập theo kiểu này vẫn tồn tại. Điều này đặc biệt đúng với các ứng dụng web riêng lẻ. Khi không liên quan đến một tên miền, một ứng dụng có khả năng tránh được người dùng trái phép dò dẫm và nhảy vào ứng dụng của bạn một cách tình cờ.

Khi một địa chỉ IP được sử dụng thay thế cho một tên miền, thì số cổng đôi lúc được chỉ định như một phần của địa chỉ. Nếu bạn chỉ đơn giản nhập vào sau HTTP:// sau đó là một địa chỉ thì trình duyệt sẽ thừa nhận rằng bạn muốn sử dụng cổng 80. Mặc dù vậy, bạn có thể chỉ định bất kỳ cổng nào để truy cập đến website, ví dụ nếu bạn muốn truy cập đến website www.tenmien.com bằng địa chỉ IP và cụ thể là cổng 80 được sử dụng thì lệnh nên dùng đó là https://24.235.10.4:80

Giao thức IPv6 cũng vậy, nó cũng được sử dụng như một phần của một URL. Nhưng nếu quan tâm đến định dạng IPv6 thì bạn nên lưu ý rằng một địa chỉ IPv6 gồm có rất nhiều dấu “:”. Điều này đã nảy sinh một vấn để khi trình duyệt của bạn xử lý bất cứ những cái gì đó phía sau dấu “:” như một số chỉ thị của cổng. Trong trường hợp đó, các địa chỉ IPv6 được phân biệt bên trong dấu ngoặc khi chúng được sử dụng như một phần của URL. Ví dụ: nếu bạn đã sử dụng địa chỉ IPv6 mẫu trong một URL thì nó sẽ giống như thế này:

HTTP://[2001:0f68:0000:0000:0000:0000:1986:69af]/

Giống như có thể chỉ định số của cổng với địa chỉ IPv4, bạn cũng có thể chỉ định số cổng khi sử dụng địa chỉ IPv6. Số cổng phải đi sau cùng một định dạng bắt buộc như khi sử dụng IPv4. Và ở bên ngoài các dấu ngoặc. Ví dụ, nếu bạn muốn truy cập vào website tại địa chỉ IPv6 mẫu trên theo cổng 80 thì URL nhập vào sẽ như sau:

HTTP://[2001:0f68:0000:0000:0000:0000:1986:69af]:80/

Lưu ý rằng số của cổng trong trường hợp này là 80, nằm giữa dấu đóng ngoặc và dấu sổ. Một dấu “:” cũng được sử dụng để định rõ số cổng như trong giao thức IPv4.

Kết luận

Chúng tôi đã giới thiệu cho các bạn những cách biểu diễn khác nhau của địa chỉ IPv6. Giống như giao thức IPv4, một chuỗi địa chỉ IPv6 có thể định địa chỉ mạng cấp dưới. Mặc dù khái niệm cơ bản của mạng cấp dưới làm việc giống như cách mà nó làm việc trong giao thức IPv4 nhưng phương pháp trình bày mạng cấp dưới đã được thay đổi một cách rõ ràng. Trong phần 2 của loạt bài viết này chúng tôi sẽ giới thiệu kí hiệu mạng, mạng cấp dưới và IPv6. Chúng tôi cũng sẽ giới thiệu thêm một số địa chỉ đặc biệt (các phân đoạn địa chỉ), chúng có ý nghĩa như thế nào đối với giao thức IPv6.
 
Định dạng địa chỉ và các loại địa chỉ khác nhau của IPv6.

Trong phần trên, bạn đã biết một số cách khác nhau biểu diễn địa chỉ IPv6 so với cách được sử dụng để biểu diễn trong IPv4. Trong bài viết này, chúng ta tiếp tục thảo luận bằng việc nói về những vấn đề bên trong địa chỉ IPv6, cách mà các địa chỉ IPv6 được thiết lập cho mạng cấp dưới và các loại IPv6 khác nhau.

Nếu đã quen với IPv4 thì bạn phải biết rằng một địa chỉ IPv4 gồm có 4 phần, mỗi phần được phân biệt với nhau bằng dấu chấm. Một phần trong địa chỉ này biểu thị số mạng và các bit còn lại dùng để phân biệt một host cụ thể trên mạng. Số của các bit thực được thiết kế cho số mạng và số host khác nhau phụ thuộc vào subnet mask.

Một địa chỉ IPv4 được chia thành các phần khác nhau, trong địa chỉ IPv6 cũng vậy. Ở bài trên, bạn đã biết được về các địa chỉ IPv6 có 128 bit chiều dài. Khi một địa chỉ IPv6 được viết theo dạng đầy đủ, nó được diễn tả thành 8 phần khác nhau, mỗi phần có 4 số và được phân tách bằng dấu “:”. Mỗi phần có 4 chữ số này biểu thị 16 bit dữ liệu, mỗi trường 16 bit này lại được sử dụng cho các mục đích riêng biệt.

IPv6.jpg

Cụ thể, mỗi một địa chỉ IPv6 được phân thành ba phần khác nhau đó là: site prefix, subnet ID, interface ID. Ba thành phần này được nhận dạng bởi vị trí của các bit bên trong một địa chỉ. Ba trường đầu tiên trong IPv6 được biểu thị site prefix, trường tiếp theo biểu thị subnet ID còn 4 trường cuối biểu thị cho interface ID.

Site prefix cũng giống như số mạng của IPv4. Nó là số được gán đến trang của bạn bằng một ISP. Điển hình, tất cả các máy tính trong cùng một vị trí sẽ được chia sẻ cùng một site prefix. Site prefix hướng tới dùng chung khi nó nhận ra mạng của bạn và cho phép mạng có khả năng truy cập từ Internet.

Không giống như site prefix, subnet ID mang tính riêng bởi vì nó ở bên trong mạng của bạn, subnet ID miêu tả cấu trúc trang của mạng. Subnet ID làm việc rất giống với cách mà mạng con làm việc trong giao thức IPv4. Sự khác nhau lớn nhất ở đây là các mạng có đó có thể dài 16 byte là được biểu thị trong định dạng hex nhiều hơn là ký hiệu chữ thập phân có nhiều dấu chấm. Một IPv6 subnet điển hình tương đương với một nhánh mạng đơn (trang) như một subnet của IPv4.

Interface ID làm việc giống như một ID cấu hình IPv4. Số này nhận dạng duy nhất một host riêng trong mạng. Interface ID (thứ mà đôi khi được cho như là một thẻ) được cấu hình tự động điển hình dựa vào địa chỉ MAC của giao diện mạng. ID giao diện có thể được cấu hình bằng định dạng EUI-64.

Để xem một địa chỉ IPv6 được phân chia như thế nào thành các phần con khác nhau của nó, bạn hãy quan sát đến địa chỉ dưới đây:

2001:0f68:0000:0000:0000:0000:1986:69af

Phần site prefix của địa chỉ này là: 2001:0f68:0000. Trường tiếp theo là 0000 biểu thị subnet ID. Các byte còn lại (0000:0000:1986:69af) biểu thị interface ID.

Điển hình khi một tiền tố được biểu diễn, nó được viết trong một định dạng đặc biệt. Các số 0 trong đó đã giải thích trong bài viết trước và các tiền tố được theo sau bởi một dấu sổ và số. Số sau dấu sổ chỉ số lượng của các bit trong tiền tố. Trong ví dụ trước tôi đã đề cập đến site prefix cho địa chỉ 2001:0f68:0000:0000:0000:0000:1986:69af2001:0f68:0000. Khi tiền tố này có chiều dài 48 bit thì chúng ta nên thêm vào đó a /48 để kết thúc nó hợp thức. Với các con số 0 đã bỏ, tiền tố đó sẽ viết như sau: 2001:f68::/48

Các loại địa chỉ IPv6

IPv6 có ba loại địa chỉ khác nhau: Unicast, Multicast và Anycast.

Địa chỉ Unicast được sử dụng để phân biệt các host đơn lẻ trên một mạng. Các địa chỉ Multicast lại sử dụng để phân biệt một nhóm các giao diện mạng cư trú điển hình trong các máy tính phức hợp. Khi một gói dữ liệu được gửi đến địa chỉ multicast thì gói đó được gửi đến tất cả các giao diện mạng trong nhóm multicast.

Giống như các địa chỉ multicast, các địa chỉ anycast cũng phân biệt một nhóm cụ thể các giao diện mạng thường cư trú trong các máy tính phức hợp. Vậy cái gì tạo tuyến anycast khác với một nhóm multicast? Khi các gói được gửi đi đến một địa chỉ multicast chúng được gửi đến tất cả các giao diện mạng trong nhóm. Trái ngược với điều đó, khi các gói dữ liệu được gửi đi đến một địa chỉ anycast thì các gói này không gửi đến toàn bộ nhóm mà thay vì đó chúng chỉ được gửi đến thành viên gần nhất về mặt vật lý với người gửi.

Các địa chỉ Unicast

Chúng tôi đã giới thiệu cho các bạn định dạng của một địa chỉ IPv6 và những vị trí bit khác nhau được sử dụng. Quả thực có hai loại địa chỉ unicast khác nhau đó là: toàn cục và liên kết cục bộ. Một địa chỉ unicast toàn cục có thể truy cập rộng rãi trong khi đó địa chỉ unicast liên kết cục bộ chỉ có thể truy cập đến các máy tính khác mà chia sẻ liên kết. Định dạng địa chỉ IP mà tôi đã giới thiệu cho các bạn ở phần trước là một địa chỉ unicast toàn cục. Chúng tôi đã nói về loại địa chỉ này bởi vì nó là loại địa chỉ chung nhất.

Các địa chỉ unicast liên kết cục bộ đã sử dụng một định dạng địa chỉ khác với các địa chỉ unicast toàn cục. Giống như các địa chỉ unicast toàn cục, các địa chỉ unicast liên kết cục bộ cũng gồm 128 byte chiều dài. Sự khác nhau ở hai loại này là các byte được phân phối khác nhau và địa chỉ sử dụng một site prefix đặc biệt.

Trong một địa chỉ unicast liên kết nội bộ, một site prefix chiếm 10 bit đầu tiên của địa chỉ thay vì 48 bit đầu như trong trường hợp của địa chỉ unicast toàn cục. Site prefix được sử dụng bằng một địa chỉ unicast liên kết cục bộ là: fe80.

Khi site prefix được viết ngắn lại (so với một địa chỉ unicast toàn cục), bạn có thể không ngạc nhiên khi thấy rằng số lượng của không gian chỉ định trong subnet ID đã được mở rộng từ 16 bit thành 64 bit. Những gì ở đây là 64 bit đó không thực sự được sử dụng. Nhớ rằng một địa chỉ IP liên kết cục bộ chỉ hợp lệ cho các máy tính đang chia sẻ một liên kết chung. Như vậy, không có lý do nào để cần phải có một subnet ID. 64 bit của không gian địa chỉ mà được dành riêng cho subnet ID được biểu diễn như những số 0.

Interface ID cho một địa chỉ unicast liên kết cục bộ có chiều dài 54 bit. Interface ID hầu như luôn được bắt nguồn từ 48 bit địa chỉ MAC đã gán vào card giao diện mạng để giao thức được phân danh giới. Dưới đây là một ví dụ về một địa chỉ unicast liên kết cục bộ.

Fe80:0000:0000:0000:0000:0000:23a1:b152

Tất nhiên khi các địa chỉ IPv6 được viết ra thì chúng thường được diễn tả với một loạt con số 0 đã bị triệt tiêu. Chính vì vậy, một công thức viết tắt đúng kỹ thuật địa chỉ này là:

Fe80::23a1:b152

Khi các địa chỉ đã diễn tả với các số 0 đã bị triệt tiêu, thì địa chỉ đầu tiên trông giống như bất kỳ địa chỉ IPv6 nào. Nhớ rằng bạn có thể nói được sự khác nhau giữa một địa chỉ unicast liên kết cục bộ với các địa chỉ khác bởi vì một địa chỉ unicast cục bộ sẽ luôn luôn bắt đầu với fe80.

Kết luận

Trong bài viết này trình bày cho các bạn sự khác nhau đáng kể về các bit trong địa chỉ IPv6.
 

VnKienthuc lúc này

Không có thành viên trực tuyến.

Định hướng

Diễn đàn VnKienthuc.com là nơi thảo luận và chia sẻ về mọi kiến thức hữu ích trong học tập và cuộc sống, khởi nghiệp, kinh doanh,...
Top