IPMAC INFORMATIC TECHNOLOGY JSC
Làm việc với địa chỉ IP
1
Làm việc với địa chỉ IP
Địa chỉ IP, cả IPv4 và IPv6, đều tỏ ra tương đối phức tạp, nhưng thực tế chúng đều có những cấu
trúc cơ bản, và sử dụng một số qui luật để có thể tính toán một cách nhanh chóng nhất. Trong tài
liệu này chúng ta sẽ cùng ôn lại một số khái niệm cư bản trong IPv4 và các kỹ thuật được sử dụng
để có thể làm việc với địa chỉ IP một cách đơn giản hơn. Cu
ối cùng chúng ta sẽ cùng đề cập đến
cách ứng dụng các kỹ thuật đó trong IPv6.
Cơ bản về cách gán địa chỉ
Địa chỉ IPv4 là một số nhị phân 32 bit. Để dễ dàng đối với người sử dụng, người ta chia địa chỉ
IPv4 ra làm 4 phần, được phân chia bởi dấu chấm (.), và mỗi phần chia đó được gọi là một octet.
Một octet là một số nguyên 8 bit, còn có thể gọi là một byte. Chúng ta không sử d
ụng từ byte ở
đây, vì byte có thể dao động, thay đổi giữa các máy tính, trong khi octet là một số cố định không
thay đổi. Hình 1 minh họa cấu trúc của một địa chỉ IPv4. Hình 1: Cấu trúc của một địa chỉ IPv4
Vì mỗi octet đại diện cho một số nhị phân (cơ số 2), nằm trong khoảng từ 0 đến 8, nghìa là từ 0
đến 255. Phần này tương đối đơn giản, vậy còn subnet mask thì sao. Để hiểu về subnet mask,
trước hết ta tìm hiểu cách mà các thiết bị xử lý từ subnet mask để xác định chính xác địa chỉ để gửi
gói tin. Hình 2 sẽ minh họa điều này.
Hình 2: Subnet mask
IPMAC INFORMATIC TECHNOLOGY JSC
Hình 3: Bảng Prefix Length. Làm việc với địa chỉ IPv4
Như vậy ta đã biết về cấu trúc của địa chỉ IPv4, nó được hình thành thế nào, và biết về các khái
niệm subnet mask và prefix length. Vậy làm việc với chúng như thế nào ?
IPMAC INFORMATIC TECHNOLOGY JSC
Làm việc với địa chỉ IP
3
Các câu hỏi chún ta thương gặp phải khi làm việc với địa chỉ IP là:
- Địa chỉ mạng của prefix là bao nhiêu ?
- Địa chỉ host là bao nhiêu ?
Có hai cách để giải quyết vấn đề này, cách phức tạp và đơn giản. Trước hết ta sẽ nói về cách
phức tạp, và tiếp sau sẽ đề cập về phương pháp đơn giản.
Cách phức tạp
Các phức tạp là ta sẽ chuyển đổi địa chỉ prefix và địa chỉ host sang dạng nhị phân và sau đó thực
hiện các thuật toán AND và NOR giữa địa chỉ đó với subnet mask và sau đó lại chuyển đổi kết quả
trở lại dạng thập phân. Hình 4 minh họa quá trình chuyển đổi địa chỉ một octet đơn trong một địa
chỉ IPv4 sang dạng nhị phân, số được chuyển đổi ở đây là 192.
Hình 4: Chuyển đổi nhị phân.
Quá trình tính toán là tương đối đơn giản. Ta sẽ lấy số thập phân ban đầu chia cho 2, lấy phần dư
ra, rối lại chia tiếp thương số vừa nhận được cho 2, lại lấy phần dư ra, tới khi bằng 0. Các phần dư
được sắp xếp theo chiều ngược lại chính là số nhị phân cần tìm. Thực hiện phép tính với cả 4
octet ta sẽ được địa ch
để tìm ra phần mạng và phần host trong working octet. Thực hiện phép toán tương tự trên, nhưng
lần này ta chỉ quan tâm đến phần dư chứ không phải toàn bộ kết quả.
192.168.100.80/26
26 ÷ 8 = 3 và phần dư là 2.
Ta lấy phần dư, và tra theo bảng sau để tìm ra bước nhảy (jump) trong octet. Số này là một số ở
dạng thậ
p phân, là khoảng cách giữa các địa chỉ mạng trong octet.
IPMAC INFORMATIC TECHNOLOGY JSC
Làm việc với địa chỉ IP
5
Trong bảng trên, dòng đầu tiên là chiều dài prefix trong octet, dòng thứ hai là giá trị của prefix khi
bit này được set bằng 1, là số lượng các host trong subnet cho prefix length này là bước nhảy giữa
các địa chỉ mạng với prefix length xác định được chỉ ra.
Số 2 tương ứng với 64, có nghĩa là có 64 host trong subnet, tương ứng với bước nhảy 64. Điều
này có nghĩa là có mỗi network ở địa chỉ 0, 64, 128, và 192 trong octet này. Việc tiếp theo là ta phải
xác định chính xác địa chỉ của ta nằm trong network nào trong số các network trên. Công việc cũ
ng
tương đối đơn giản : chỉ việc lấy số network lớn nhất khớp với số octet làm việc. Trong trường hợp
này, số lớn nhất khớp với 80 là 64, vậy địa chỉ mạng chính xác sẽ là 192.168.100.64/26.
Vậy địa chỉ host sẽ là gì ? Việc này thật đơn giản khi ta đã có địa chỉ network. Ta chỉ việc lấy địa chỉ
IP trừ đi địa chỉ network sẽ có
địa chỉ host tương ứng nằm trong network : 80 – 64 = 16. Công việc
này sẽ đơn giản hơn nếu bạn thực hành nhiều.