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.
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ư 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.
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.