Địa chỉ IPv4 – Phần 1: Địa chỉ IP

Địa chỉ IP là con số duy nhất dùng để định danh các host trên một mạng IP. Địa chỉ IP hoạt động tầng Internet của chồng giao thức TCP/IP, trong mô hình tham chiếu OSI là tầng Network,  nó hoàn toàn độc lập với lớp bên dưới Data-link sử dụng địa chỉ MAC, như là địa chỉ MAC trong mạng Ethernet.

Địa chỉ IPv4 là những dãy số có độ dài 32 bit nhị phân, điều đó có nghĩa là ta có 232, tương đương với 4 tỉ địa chỉ cho các host. Ban đầu con số này có vẻ là rất lớn và đáp ứng được nhu cầu sử dụng, nhưng với sự bùng nổ mạnh mẽ của internet và các thiết bị dùng IP nên IPv4 đã cạn kiệt và không thể cấp phát thêm. Để đáp ứng nhu cầu lớn hơn,người ta đã nghiên cứu và đưa ra một chuẩn địa  chỉ IP mới được gọi là IPv6 với độ dài 128 bit nhị phân, hiện tại thế giới đang bước vào giai đoạn chuyển đổi từ IPv4 sang IPv6 nhưng IPv4 vẫn còn dùng rộng rãi.

Một địa chỉ IPv4 được chia làm hai phần:

  • Network ID (có thể gọi là địa chỉ đường mạng – network address): phần này dùng để định danh cho con đường mạng mà các host được tìm thấy trên đó. Chúng ta có thể tưởng tượng ngoài thực tế đây là tên của một con đường trong một thành phố.
  • Host ID (địa chỉ các máy- host address): phần này dùng để định danh các thiết bị, các host cụ thể trên một mạng (Network ID). Chúng ta có thể tưởng tượng nó như số nhà được đặt cho căn nhà trên một con đường vậy.

Trong một đường mạng, không phải tất cả các địa chỉ host đều được định danh cho các host mà nó sẽ có hai địa chỉ đặc biệt.

  • Khi tất cả các bit ở phần host bằng 0 thì nó là địa chỉ của Network ID, địa chỉ này là địa chỉ đại diện của một mạng, khi các mạng có nhu cầu liên hệ với nhau sẽ dùng địa chỉ này thông qua thiết bị gọi là bộ định tuyết (router).
  • Khi tất cả các bit ở phần host ID bật lên 1 thì địa chỉ này là địa chỉ Broadcast của đường mạng, địa chỉ này là địa chỉ đại diện cho toàn bộ các host trong mạng, khi một máy có nhu cầu gởi thông tin đồng loạt cho tất cả các máy thì nó sẽ gởi đến địa chỉ này.

Vậy, nếu gọi n là số bit của phần host của một mạng ta sẽ có số địa chỉ sử dụng được là 2n-2 địa chỉ.

Ví dụ: ta có một mạng LAN và muốn lấy một mạng lớp C (192.168.1.0) đặt cho các host trong mạng này, thì địa chỉ đầu tiên là 192.168.1.0 và địa chỉ cuối cùng là 192.168.1.255 không được gán cho các host, chúng ta chỉ có thể gán từ 192.168.1.1 đến 192.168.1.254.

Cách biểu diễn địa chỉ IPv4:

Địa chỉ IPv4 thường được biểu diễn bằng định dạng các số thập phân và được phân định bằng dấu chấm thập phân (.) [dotted-decimal notation]. Người ta chia  32 bit nhị phân thành 4 nhóm (octet), mỗi nhóm chứa 8 bit nhị phân, 8 bit nhị phân này sẽ được đổi thành số thập phân khi biểu diễn với giá trị trong mỗi octet chạy từ 0 đến 255.

Các lớp địa chỉ IPv4:

Lúc đầu, khi các nhà thiết kế giao thức địa chỉ IP, họ có thể có quyền lựa chọn một con số bất kỳ của các bit của địa chỉ IP đặt cho phần Network ID. Phần còn lại có thể sử dụng chúng cho phần Host ID. Cho ví dụ thế này, giả sử các nhà thiết kế lấy một nữa của địa chỉ (16bit) sử dụng cho phần Network ID, và 16 bit sử dụng cho Host ID. Kết quả là với ý tưởng này thì sẽ có tổng cộng là 65.536 Network, và mỗi Network sẽ có 65.536 Host.

Trong thời gian đầu của internet, ý tưởng này dường như có thể là lớn hơn những gì cần thiết. Tuy nhiên, những nhà thiết kế bắt đầu triển khai cho một vài mạng thực tế có hàng chục ngàn host. Giả sử rằng mạng có 1000 máy tính kết nối internet và ấn định nó cho một trong những Network ID. Bởi vì mạng này chi sử dụng có 1000 host của 65.536 địa chỉ host, hơn 64.000 địa chỉ IP khác phải bỏ đi.

Như vậy cần một giải pháp để giải quyết vấn đề này, ý tưởng lớp (class) địa chỉ IP được giới thiệu. Giao thức IP đưa ra 5 lớp địa chỉ khác nhau, đó là A,B,C,D và E, mỗi lớp trong ba lớp đầu tiên A,B,C, sử dụng các kích cỡ khác nhau cho các phần địa chỉ Network ID và Host ID. Lớp D được sử dụng cho một loại địa chỉ đặc biệt được gọi là Multicast. Lớp E là lớp thí nghiệm, chúng không được dùng để gán cho các hệ thống mạng.

Bốn bit đầu tiên của địa chỉ IP dùng để xác định nó thuộc lớp nào, cụ thể như sau:

  • Nếu bit đầu tiên là 0 thì địa chỉ  thuộc lớp A.
  • Nếu bit đầu tiên là 1 và bit tiếp theo là 0 thì địa chỉ thuộc lớp B
  • Nếu hai bit đầu tiên là 1 và bit thứ ba là 0 thì địa chỉ này thuộc lớp C.
  • Nếu ba bit đầu tiên tất cả đề là 1 và bit thứ tư là 0 thì địa chỉ này thuộc lớp D.
  • Nếu bốn bit đầu tiên đều là 1 thì địa chỉ này thuộc lớp E.

Vì lớp D và E được dùng cho các mục đích đặc biệt, nên ở đây chúng ta chỉ chú trọng đến các lớp A, B, C vì những lớp này sẽ được sử dụng trong thực tế cho các host trên mạng.

Lớp A: được thiết kế cho những mạng rất lớn. Trong lớp A, octet đầu tiên là Network ID, và tất cả phần còn lại là phần Host ID. Bởi vì, chỉ có 8 bit đầu tiên được dùng để định danh Network ID và bit đầu tiên luôn bằng 0 (như nói ở trên) nên chỉ có 126 mạng trong lớp A chạy từ 1.x.y.z đến 126.x.y.z (với x,y,z là các bit host). Mỗi Network ID trong lớp A có thể chứa 16 triệu địa chỉ host.

Trên lý thuyết, lớp A này có tới 128 mạng chạy từ 0.0.0.0 đến 127.0.0.0, nhưng do có hai lớp đặc biệt đó là 0.0.0.0 được gọi là địa chỉ mạng của các mạng, bạn sẽ thấy địa chỉ này trong việc cấu hình default route, nó sẽ đại diện cho tất cả các mạng trong mạng LAN. Và lớp địa chỉ 127.0.0.0 được dùng cấp phát cho dạng địa chỉ gọi là loopback, trên Windows chúng ta có thể thấy đó là địa chỉ 127.0.0.1.

Lớp B: hai octet đầu tiên được dùng để định danh Network ID và hai octet còn lại  được dùng cho phần Host ID. Tuy là dùng 2 octet đầu tiên để dùng làm Network ID, nhưng do ở octet thứ nhất bit đầu tiên luôn là 1 và bit thứ 2 luôn là 0 (như nói ở trên) nên ở lớp này chỉ có 16384 mạng (thay vì 65536) chạy từ 128.x.y.z đến 191.x.y.z (với x là các bit còn lại của Network ID và y,z là các bit phần Host ID). Trong mỗi mạng (Network ID) của lớp B có hơn 65000 host.

Lớp C: ba octet đầu tiên được dùng cho phần Network ID và octet thứ 4 được dùng để dùng cho phần Host ID. Với 8 bit cho phần Host ID, mỗi mạng ở lớp C chỉ có 254 host. Với 24 bit phần Network ID, lớp C có hơn 2 triệu mạng. Lớp C bắt đầu từ 192.x.y.z đến 223.x.y.z (với x,y là các bit còn lại của phần Network ID và z là các bit thuộc phần Host ID).

Tóm tắt bằng bảng sau:

IP public và IP private:

Theo thiết kế ban đầu, tất cả các host trên internet đều là kết nối end-to-end, điều này có nghĩa là một host có thể liên lạc trực tiếp với bất kỳ host nào và ngược lại, có nghĩa là  địa chỉ IP gán cho máy tính hoặc thiết bị là địa chỉ duy nhất. Tuy nhiên điều này được cho rằng là không cần thiết trong khi các mạng riêng (LAN hay internal network) được phát triển mạnh  và cũng như IP public cần được duy trì bảo toàn. Vì vậy, địa chỉ IP được chia thành 2 không gian là IP Public và IP private (được mô ta trong RFC 1918), cụ thể IP Private được cấp phép dùng cho các mạng nội bộ (LAN hay còn gọi là internal network) ở các lớp như sau:

Các dãy địa chỉ còn lại là IP Public chỉ được tổ chức có tên gọi là Internet Assigned Numbers Authority (IANA) cấp phát cho các nhà cung cấp dịch vụ Internet.

Các dãy IP private này có thể được tái sử dụng trên nhiều mạng nội bộ khác nhau. Ví dụ: công ty A dùng dãy 192.168.1.0 gán cho các host trong mạng của họ, đồng thời công ty B hay công ty C cũng có thể dùng dãy địa chỉ này để gán.

Các máy trong mạng LAN muốn truy cập internet phải dùng một dich vụ là network address translation (NAT). Dịch vụ này được cung cấp trên các thiết bị định tuyết hoặc tường lửa, tất cả các host trong mạng LAN sẽ sử dụng chung IP được nhà cung cấp cấp đến thiết bị định tuyết kết nối với nhà cung cấp dịch vụ. Điều này cho phép tiết kiệm đáng kể các địa chỉ cho phần địa chỉ IP public.

Địa chỉ APIPA – Automatic Private IP Addressing (hay Link-Local addresses
):

Đây là dãy địa chỉ đặc biệt, được dùng cho trên hệ điều hành Windows, khi các client ở chế độ nhận IP động từ DHCP server, nhưng vì một lý do nào đó DHCP không hoạt động (hoặc không tồn tại DHCP server trên hệ thống mạng) thì các máy client chạy Windows sẽ tự động đặt  các địa chỉ IP thuộc dãy địa chỉ này. Dãy địa chỉ này thuộc lớp B: 169.254.X.Y với X và Y chạy tự 0 đến 255. Dịch vụ APIPA sẽ liên tục kiểm tra xem trong mạng có DHCP server tồn tại hay không, nếu phát hiện có DHCP server đang hoạt động nó sẽ tự động dừng để cho phép client nhận IP từ DHCP server.

Chính nhờ địa chỉ này mà các máy trong mạng LAN mặc dù không được thiết lập IP tĩnh và không nhận IP từ DHCP  thì chúng vẫn có thể liên lạc được với nhau.

Để xác định được một địa chỉ IPv4 thuộc lớp mạng nào người ta dùng đến khái niệm Subnet Mask. Để sử dụng địa chỉ một cách hiệu quả, người ta sử dụng một kỹ thuật được gọi là chia mạng con.

Chia sẻ nào!

Related posts