IPv4 và IPv6
Khái niệm địa chỉ IP (Internet Protocol) đã trở nên khá quen thuộc với người dùng Internet. Bài viết này nhằm trước tiên là tổng hợp lại các kiến thức cơ bản xoay quanh địa chỉ IP và sau đó đi sâu vào cách thức thiết lập 1 mạng LAN cục bộ.
1. Địa chỉ IP là một tài nguyên
Internet là một mạng máy tính toàn cầu, trong đó các "máy tính" (hay nói tổng quát là các thực thể mạng) dù nhỏ, dù to khi nối vào Internet đều bình đẳng với nhau. Đối với mạng Internet , do cách tổ chức chỉ có một cấp nên mỗi một khách hàng hay một máy chủ (Host) hoặc Router đều có một địa chỉ internet duy nhất mà không được phép trùng với bất kỳ ai. Nếu có 2 máy tính được cấu hình cùng một địa chỉ thì sẽ xảy ra mâu thuẫn IP (IP conflict) ngay. Do vậy mà địa chỉ trên Internet thực sự là một tài nguyên.
Hàng chục triệu máy chủ trên hàng trăm nghìn mạng. Để địa chỉ không được trùng nhau cần phải có cấu trúc địa chỉ đặc biệt quản lý thống nhất và một Tổ chức của Internet gọi là Trung tâm thông tin mạng Internet NIC chủ trì phân phối. NIC chỉ phân địa chỉ mạng (Net ID) còn địa chỉ máy chủ trên mạng đó (Host ID) do các Tổ chức quản lý Internet của từng quốc gia một tự phân phối.
Chú ý rằng 1 địa chỉ IP không phải tương ứng với một máy tính mà tương ứng với một network interface card. Đơn giản ví dụ một máy tính có một giao diện mạng nối kết với cáp Ethernet và một giao diện wifi nối kết wifi thì cùng lúc máy tính ấy có 2 địa chỉ IP khác nhau.
IP của bạn là duy nhất trên thế giới. Tuy nhiên địa chỉ này chưa hẳn là cố định. Nếu bạn vào mạng qua một ISP thì số IP của bạn sẽ thay đổi ở các lần bạn kết nối. Một người biết IP của bạn thì có thể lần ra vị trí của bạn. Nghĩa là khi có IP thì biết được địa chỉ của ISP rồi biết được thông tin của bạn. Trên thực tế, IP cho biết về máy tính được sử dụng để vào mạng chứ không cho biết thông tin về người sử dụng, trừ khi IP của bạn là cố định hoặc sử dụng account của riêng bạn. Để biết địa chỉ IP là thuộc ISP nào, ở đâu, bạn có thể tra cứu trên whois.com.
2. Cấu trúc địa chỉ IP
Địa chỉ IP đang được sử dụng hiện tại (IPv4) có 32 bit chia thành 4 Octet ( mỗi Octet có 8 bit, tương đương 1 byte ) cách đếm đều từ trái qua phải bít 1 cho đến bít 32, các Octet tách biệt nhau bằng dấu chấm (.). VD 1 địa chỉ IP như sau: 196.84.156.67. Địa chỉ IP được chia thành 4 số giới hạn từ 0 - 255 (vì 255 tương đương 11111111 (ở hệ nhị phân) là số lớn nhất có 8 bit).
Địa chỉ IP chia ra 5 lớp A,B,C, D, E. Hiện tại đã dùng hết lớp A,B và gần hết lớp C, còn lớp D và E Tổ chức internet đang để dành cho mục đích khác không phân, nên chúng ta chỉ nghiên cứu 3 lớp đầu. Bit nhận dạng là những bit đầu tiên - của lớp A là 0, của lớp B là 10, của lớp C là 110. Lớp D có 4 bit đầu tiên để nhận dạng là 1110, còn lớp E có 4 bít đầu tiên để nhận dạng là 1111. Do đó địa chỉ ví dụ ở trên bắt đầu bằng 11000100 nên thuộc lớp C.
Một địa chỉ IP được phân biệt bởi hai phần, phần đầu gọi là Network ID (địa chỉ mạng) và phần sau là Host ID. Ví dụ đối với lớp A (có địa chỉ từ 0.0.0.0 đến 127.0.0.0 ), bit thứ nhất là bit nhận dạng lớp A = 0, 7 bit còn lại trong Octet thứ nhất dành cho địa chỉ mạng, 3 Octet còn lại có 24 bit dành cho địa chỉ của máy chủ. Do vậy, trên lớp A, có thể phân cho 126 mạng khác nhau, và mỗi mạng có thể có tối đa 16777214 máy host.
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. Chính vì vậy, chính phủ liên bang Mỹ dự kiến triển khai IPv6 đến tất cả các mạng xương sống được hoàn thành vào năm 2008.
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… đị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:69a…
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: http://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à http://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:…
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:…
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.
Tìm hiểu về địa chỉ IPv6 (phần 2...)
Bài viết này sẽ tiếp tục giới thiệu cho các bạn giao thức IPv6 bằng cách thảo luận về việc định dạng địa chỉ và các loại địa chỉ khác nhau của IPv6.
Trong phần một của loạt bài này, chúng tôi đã giới thiệu 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 tôi muốn 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. Trong bài trước, 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.
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:69a…
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:69af là 2001: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:b15…
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, chúng tôi đã trình bày cho các bạn sự khác nhau đáng kể về các bit trong địa chỉ IPv6. Phần cuối đã đi thẳng vào thảo luận sự khác nhau giữa các loại địa chỉ IPv6.
Tổng hợp từ Internet
Không có nhận xét nào:
Đăng nhận xét