Địa chỉ IP là một chuyên đề quan trọng trong chương trình đào tạo chuyên viên mạng CCNA R&S. Để có thể theo học tốt chương trình CCNA R&S, vượt qua được các kỳ thi lấy chứng chỉ quốc tế và theo học tiếp được các chứng chỉ cao cấp hơn cũng như để hoàn thành tốt được các công việc trong lĩnh vực mạng, người học viên, kỹ sư, chuyên viên phải nắm vững các kiến thức và kỹ năng liên quan đến địa chỉ IP. Bài viết này sẽ cung cấp những điểm chính yếu, quan trọng của chuyên đề nền tảng này.
Địa chỉ IP là một chuyên đề quan trọng trong chương trình đào tạo chuyên viên mạng CCNA R&S. Để có thể theo học tốt chương trình CCNA R&S, vượt qua được các kỳ thi lấy chứng chỉ quốc tế và theo học tiếp được các chứng chỉ cao cấp hơn cũng như để hoàn thành tốt được các công việc trong lĩnh vực mạng, người học viên, kỹ sư, chuyên viên phải nắm vững các kiến thức và kỹ năng liên quan đến địa chỉ IP. Chương này sẽ cung cấp những điểm chính yếu, quan trọng của chuyên đề nền tảng này.
1.1. Một vài điểm cơ bản cần nhớ :
– Chuyển đổi nhị phân – thập phân: cần nắm vững cách chuyển đổi giữa số nhị phân và thập phân. VD: 5 <-> 101 ; 10 <-> 1010; 64 <-> 1000000.
– Với n bit nhị phân, ta có thể thiết lập được: 2n số nhị phân với giá trị thập phân tương ứng chạy từ 0 đến 2n – 1.
Ví dụ:
- Với n = 2, ta lập được 22 = 4 số nhị phân, giá trị thập phân chạy từ 0 đến 3 ( = 22 – 1 ):
00 => 0
01 => 1
10 => 2
11 => 3
- Với n = 3, ta lập được 23 = 8 số nhị phân, giá trị thập phân chạy từ 0 đến 7 ( = 23 – 1 ):
000 => 0 100 => 4
001 => 1 101 => 5
010 => 2 110 => 6
011 => 3 111 => 7
– Cố gắng nhớ một số lũy thừa của 2, ít nhất cho đến 28 :
20 = 1 24 = 16 28 = 256
21 = 2 25 = 32
22 = 4 26 = 64
23 = 8 27 = 128
– Sau đây là các chuỗi nhị phân 8 bit cùng các số thập phân tương ứng cần phải thuộc để phục vụ cho việc tính nhanh subnet mask:
Chuỗi nhị phân 8 bit. | Giá trị thập phân tương ứng. |
00000000 | 0 |
10000000 | 128 |
11000000 | 192 |
11100000 | 224 |
11110000 | 240 |
11111000 | 248 |
11111100 | 252 |
11111110 | 254 |
11111111 | 255 |
– Bảng bước nhảy: bảng này được sử dụng để tính toán trong phép chia subnet.
Số bit mượn | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
Bước nhảy | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
1.2. Địa chỉ IP
Địa chỉ IP là địa chỉ logic được sử dụng trong giao thức IP của lớp Internet thuộc mô hình TCP/IP (tương ứng với lớp thứ 3 – lớp network của mô hình OSI). Mục này trình bày các điểm chính cần ghi nhớ về địa chỉ IP.
1.2.1. Cấu trúc địa chỉ IP
– Địa chỉ IP gồm 32 bit nhị phân, chia thành 4 cụm 8 bit (gọi là các octet). Các octet được biểu diễn dưới dạng thập phân và được ngăn cách nhau bằng các dấu chấm.
– Địa chỉ IP được chia thành hai phần: phần mạng (network) và phần host.
– Việc đặt địa chỉ IP phải tuân theo các quy tắc sau:
- Các bit phần mạng không được phép đồng thời bằng 0.
VD: địa chỉ 0.0.0.1 với phần mạng là 0.0.0 và phần host là 1 là không hợp lệ.
- Nếu các bit phần host đồng thời bằng 0, ta có một địa chỉ mạng.
VD: địa chỉ 192.168.1.1 là một địa chỉ có thể gán cho host nhưng địa chỉ 192.168.1.0 là một địa chỉ mạng, không thể gán cho host được.
- Nếu các bit phần host đồng thời bằng 1, ta có một địa chỉ quảng bá (broadcast).
VD: địa chỉ 192.168.1.255 là một địa chỉ broadcast cho mạng 192.168.1.0
1.2.2. Các lớp địa chỉ IP
Không gian địa chỉ IP được chia thành các lớp như sau:
1.2.2.1. Lớp A:
– Địa chỉ lớp A sử dụng một octet đầu làm phần mạng, ba octet sau làm phần host.
– Bit đầu của một địa chỉ lớp A luôn được giữ là 0. Do đó, các địa chỉ mạng lớp A gồm: 1.0.0.0 à 127.0.0.0.
Tuy nhiên, mạng 127.0.0.0 được sử dụng làm mạng loopback nên địa chỉ mạng lớp A sử dụng được gồm 1.0.0.0 à 126.0.0.0 (126 mạng).
Chú ý: địa chỉ 127.0.0.1 là địa chỉ loopback trên các host. Để kiểm tra chồng giao thức TCP/IP có được cài đặt đúng hay không, từ dấu nhắc hệ thống, ta đánh lệnh ping 127.0.0.1, nếu kết quả ping thành công thì chồng giao thức TCP/IP đã được cài đặt đúng đắn.
– Phần host có 24 bit => mỗi mạng lớp A có (224 – 2) host.
– Ví dụ: 10.0.0.1, 1.1.1.1, 2.3.4.5 là các địa chỉ lớp A.
1.2.2.2. Lớp B:
– Địa chỉ lớp B sử dụng hai octet đầu làm phần mạng, hai octet sau làm phần host.
– Hai bit đầu của một địa chỉ lớp B luôn được giữ là 10. Do đó các địa chỉ mạng lớp B gồm:
128.0.0.0 -> 191.255.0.0
Có tất cả 214 mạng trong lớp B.
– Phần host: 16 bit
Một mạng lớp B có 216 – 2 host.
– Ví dụ: các địa chỉ 172.16.1.1, 158.0.2.1 là các địa chỉ lớp B.
1.2.2.3. Lớp C:
– Địa chỉ lớp C sử dụng ba octet đầu làm phần mạng, một octet sau làm phần host.
– Ba bit đầu của một địa chỉ lớp C luôn được giữ là 110. Do đó, các địa chỉ mạng lớp C gồm:
192.0.0.0 -> 223.255.255.0
Có tất cả 221 mạng trong lớp C.
– Phần host: 8 bit
Một mạng lớp C có 28 – 2 = 254 host.
– Ví dụ: các địa chỉ 192.168.1.1, 203.162.4.191 là các địa chỉ lớp C.
1.2.2.4. Lớp D:
– Địa chỉ:
224.0.0.0 -> 239.255.255.255
– Dùng làm địa chỉ multicast.
Ví dụ: 224.0.0.5 dùng cho OSPF
224.0.0.9 dùng cho RIPv2
1.2.2.5. Lớp E:
– Từ 240.0.0.0 trở đi.
– Được dùng cho mục đích dự phòng.
Chú ý:
- Các lớp địa chỉ IP có thể sử dụng để đặt cho các host là các lớp A, B, C.
- Để thuận tiện cho việc nhận diện một địa chỉ IP thuộc lớp nào, ta quan sát octet đầu của địa chỉ, nếu octet này có giá trị:
1 => 126: địa chỉ lớp A.
128 => 191: địa chỉ lớp B.
192 => 223: địa chỉ lớp C.
224 => 239: địa chỉ lớp D.
240 => 255: địa chỉ lớp E.
1.2.3. Địa chỉ Private và Public:
– Địa chỉ IP được phân thành hai loại: private và public.
- Private: chỉ được sử dụng trong mạng nội bộ (mạng LAN), không được định tuyến trên môi trường Internet. Có thể được sử dụng lặp đi lặp lại trong các mạng LAN khác nhau.
- Public: là địa chỉ IP sử dụng cho các gói tin đi trên môi trường Internet, được định tuyến trên môi trường Internet, không sử dụng trong mạng LAN. Địa chỉ public phải là duy nhất cho mỗi host tham gia vào Internet.
– Dải địa chỉ private (được quy định trong RFC 1918):
Lớp A: 10.x.x.x
Lớp B: 172.16.x.x -> 172.31.x.x
Lớp C: 192.168.x.x
– Kỹ thuật NAT (Network Address Translation) được sử dụng để chuyển đổi giữa IP private và IP public.
– Ý nghĩa của địa chỉ private: được sử dụng để bảo tồn địa chỉ IP public đang dần cạn kiệt.
1.2.4. Địa chỉ quảng bá (broadcast):
Gồm hai loại:
– Direct:
VD: 192.168.1.255
– Local:
VD: 255.255.255.255
– Để phân biệt hai loại địa chỉ broadcast này, ta xem xét ví dụ sau:
Xét máy có địa chỉ IP là 192.168.2.1 chẳng hạn. Khi máy này gửi broadcast đến 255.255.255.255, tất cả các máy thuộc mạng 192.168.2.0 (là mạng máy gửi gói tin đứng trong đó) sẽ nhận được gói broadcast này, còn nếu nó gửi broadcast đến địa chỉ 192.168.1.255 thì tất cả các máy thuộc mạng 192.168.1.0 sẽ nhận được gói broadcast (các máy thuộc mạng 192.168.2.0 sẽ không nhận được gói broadcast này).
1.3. Chia subnet:
1.3.1. Subnet mask và số prefix:
Subnet mask :
Subnet mask là một dải 32 bit nhị phân đi kèm với một địa chỉ IP, được các host sử dụng để xác định địa chỉ mạng của địa chỉ IP này. Để làm được điều đó, host sẽ đem địa chỉ IP thực hiện phép tính AND từng bit một của địa chỉ với subnet mask của nó, kết quả host sẽ thu được địa chỉ mạng tương ứng của địa chỉ IP.
Ví dụ: Xét địa chỉ 192.168.1.1 với subnet mask tương ứng là 255.255.255.0
Dạng thập phân | Dạng nhị phân | |
Địa chỉ IP | 192.168.1.1 | 11000000.10101000.00000001.00000001 |
Subnet mask | 255.255.255.0 | 11111111.11111111.11111111.00000000 |
Địa chỉ mạng | 192.168.1.0 | 11000000.10101000.00000001.00000000 |
( phép toán AND: 0 AND 0 = 0
- AND 1 = 0
- AND 0 = 0
- AND 1 = 1 )
Đối với chúng ta, quy tắc gợi nhớ subnet mask rất đơn giản: phần mạng chạy đến đâu, bit 1 của subnet mask chạy đến đó và ứng với các bit phần host, các bit của subnet mask được thiết lập giá trị 0. Một số subnet mask chuẩn:
Lớp A : 255.0.0.0 Lớp C: 255.255.255.0
Lớp B: 255.255.0.0
Số prefix:
Để mô tả một địa chỉ IP, người ta dùng một đại lượng khác được gọi là số prefix. Số prefix có thể hiểu một cách đơn giản là số bit mạng trong một địa chỉ IP, được viết ngay sau địa chỉ IP, và được ngăn cách với địa chỉ này bằng một dấu “/”.
Ví du: 192.168.1.1/24, 172.16.0.0/16 hay 10.0.0.0/8, v.v…
Nguyên lý cơ bản của kỹ thuật chia subnet: Để có thể chia nhỏ một mạng lớn thành nhiều mạng con bằng nhau, người ta thực hiện mượn thêm một số bit bên phần host để làm phần mạng, các bit mượn này được gọi là các bit subnet. Tùy thuộc vào số bit subnet mà ta có được các số lượng các mạng con khác nhau với các kích cỡ khác nhau:
1.4. Các dạng bài tập về chia subnet:
1.4.1. Cho một mạng lớn và số bit mượn. Xác định :
– Số subnet
– Số host/subnet
– Địa chỉ mạng của mỗi subnet.
– Địa chỉ host đầu của mỗi subnet.
– Địa chỉ host cuối của mỗi subnet.
– Địa chỉ broadcast của mỗi subnet.
– Subnet mask được sử dụng.
Cách tính:
– Gọi n là số bit mượn và m là số bit host còn lại. Ta có:
+ Số subnet có thể chia được:
- 2n nếu có hỗ trợ subnet – zero.
- 2n – 2 nếu không hỗ trợ subnet – zero.
Luật subnet – zero: nếu hệ điều hành trên host không bật tính năng subnet – zero, khi chia subnet ta phải bỏ đi không dùng hai mạng con ứng với các bit subnet bằng 0 hết và các bit subnet bằng 1 hết. Ngược lại nếu hệ điều hành bật tính năng subnet – zero , ta có quyền sử dụng hai mạng con này. Nhìn chung, các hệ điều hành ngày nay đều bật tính năng subnet – zero một cách mặc định, do đó nếu không thấy nói gì thêm trong yêu cầu, ta sử dụng cách chia có hỗ trợ subnet – zero.
+ Số host có thể có trên mỗi subnet: 2m – 2 (host/subnet).
– Với mỗi subnet chia được:
+ Địa chỉ mạng có octet bị mượn là bội số của bước nhảy. Bước nhảy tương ứng với số bit mượn có thể được tra trong bảng 1.2 của mục 1.
+ Địa chỉ host đầu = địa chỉ mạng + 1 (cần hiểu cộng 1 ở đây là lùi về sau một địa chỉ).
+ Địa chỉ broadcast = địa chỉ mạng kế tiếp – 1 (cần hiểu trừ 1 ở đây là lùi về phía trước một địa chỉ).
+ Địa chỉ host cuối = địa chỉ broadcast – 1 (cần hiểu trừ 1 ở đây là lùi về phía trước một địa chỉ).
– Để tính ra subnet mask được sử dụng, ta sử dụng cách nhớ: phần mạng của địa chỉ chạy đến đâu, các bit 1 của subnet mask chạy đến đó và bảng 1.1 của mục 1.1.
Ví dụ 1: Xét mạng 192.168.1.0/24 , mượn 2 bit, còn lại 6 bit host, bước nhảy là 64. Ta có:
– Số subnet có thể có: 22 = 4 subnet.
– Số host trên mỗi subnet = 26 – 2 = 62 host.
– Các địa chỉ mạng sẽ có octet bị chia cắt (octet thứ 4) là bội số của 64.
– Liệt kê các mạng như sau:
192.168.1.0/26 -> địa chỉ mạng
192.168.1.1/26 ->địa chỉ host đầu.
….
192.168.1.62/26 ->địa chỉ host cuối.
192.168.1.63/26 ->địa chỉ broadcast.
———————————————
192.168.1.64/26 -> địa chỉ mạng
192.168.1.65/26 ->địa chỉ host đầu
…..
192.168.1.126/26 ->địa chỉ host cuối
192.168.1.127/26 ->địa chỉ broadcast.
———————————————
192.168.1.128/26 -> địa chỉ mạng
192.168.1.129/26 ->địa chỉ host đầu.
….
192.168.1.190/26 ->địa chỉ host cuối.
192.168.1.191/26 ->địa chỉ broadcast.
———————————————
192.168.1.192/26 -> địa chỉ mạng
192.168.1.193/26 ->địa chỉ host đầu.
….
192.168.1.254/26 ->địa chỉ host cuối.
192.168.1.255/26 ->địa chỉ broadcast.
Vậy, một mạng lớp C 192.168.1.0/24 đã được chia thành 4 mạng :192.168.1.0/26, 192.168.1.64/26, 192.168.1.128/26, 192.168.1.192/26.
Subnet mask được sử dụng trong ví dụ này là 255.255.255.192
Ví dụ 2: Xét mạng 172.16.0.0/16, mượn 2 bit. Octet bị chia cắt ( thành 2 phần là net và host ) là octet thứ 3.
– Số bit mượn là 2 => số mạng con có thể có (tính theo luật subnet zero): 22 = 4 mạng. Số bit mạng bây giờ là 18 bit.
– Số bit host còn lại: 32 – 18 = 14 bit. => số host/subnet = 214 – 2 host.
– Các địa chỉ mạng sẽ có octet thứ 3 là bội số của 64 (octet này bị mượn 2 bit)
– Ta có dải địa chỉ như sau:
172.16.0.0/18 -> Địa chỉ mạng
172.16.0.1/18 -> Địa chỉ host đầu
.. .…
172.16.63.254/18 -> Địa chỉ host cuối.
172.16.63.255/18 -> Địa chỉ broadcast
——————————————————
172.16.64.0/18 -> Địa chỉ mạng
172.16.64.1.18 -> Địa chỉ host đầu
……
172.16.127.254/18 -> Địa chỉ host cuối.
172.16.127.255/18 -> Địa chỉ broadcast.
——————————————————–
172.16.128.0/18 -> Địa chỉ mạng
172.16.128.1/18 -> Địa chỉ host đầu
……
172.16.191.254/18 -> Địa chỉ host cuối
172.16.191.255/18 -> Địa chỉ broadcast
——————————————————-
172.16.192.0/18 -> Địa chỉ mạng
172.16.192.1/18 -> Địa chỉ host đầu
……
172.16.255.254/18 -> Địa chỉ host cuối
172.16.255.255/18 -> Địa chỉ broadcast
——————————————————-
Subnet mask trong ví dụ 2 là 255.255.192.0
Vi dụ 3: Xét mạng 172.16.0.0/16, mượn 10 bit => octet bị chia cắt (thành hai phần net và host ) là octet thứ 4. Ta có:
– Số bit mượn là 10 => Số subnet có thể có: 210 = 1024 mạng.
– Số bit host còn lại: 32 – 26 = 6 bit => số host trên mỗi subnet: 26 – 2 = 62 host.
– Địa chỉ mạng có octet thứ 4 là bội số của 64 (octet này bị mượn 2 bit)
– Ta có dải địa chỉ như sau:
172.16.0.0/26 -> Địa chỉ mạng
172.16.0.1/26 -> Địa chỉ host đầu
…..
172.16.0.62/26 -> Địa chỉ host cuối
172.16.0.63/26 -> Địa chỉ broadcast
————————————————-
172.16.0.64/26 -> Địa chỉ mạng
172.16.0.65/26 -> Địa chỉ host đầu
…..
172.16.0.126/26 -> Địa chỉ host cuối
172.16.0.127/26 -> Địa chỉ broadcast
————————————————–
172.16.0.128/26 -> Địa chỉ mạng
172.16.0.129/26 -> Địa chỉ host đầu
…..
172.16.0.190/26 -> Địa chỉ host cuối
172.16.0.191/26 -> Địa chỉ broadcast
————————————————–
172.16.0.192/26 -> Địa chỉ mạng
172.16.0.193/26 -> Địa chỉ host đầu
…..
172.16.0.254/26 -> Địa chỉ host cuối
172.16.0.255/26 -> Địa chỉ broadcast
========================================
172.16.1.0/26 -> Địa chỉ mạng
172.16.1.1/26 -> Địa chỉ host đầu
…..
172.16.1.62/26 -> Địa chỉ host cuối
172.16.1.63/26 -> Địa chỉ broadcast
————————————————-
172.16.1.64/26 -> Địa chỉ mạng
172.16.1.65/26 -> Địa chỉ host đầu
…..
172.16.1.126/26 -> Địa chỉ host cuối
172.16.1.127/26 -> Địa chỉ broadcast
————————————————–
172.16.1.128/26 -> Địa chỉ mạng
172.16.1.129/26 -> Địa chỉ host đầu
…..
172.16.1.190/26 -> Địa chỉ host cuối
172.16.1.191/26 -> Địa chỉ broadcast
————————————————–
172.16.1.192/26 -> Địa chỉ mạng
172.16.1.193/26 -> Địa chỉ host đầu
…..
172.16.1.254/26 -> Địa chỉ host cuối
172.16.1.255/26 -> Địa chỉ broadcast
========================================
172.16.2.0/26 -> Địa chỉ mạng
172.16.2.1/26 -> Địa chỉ host đầu
…..
172.16.2.62/26 -> Địa chỉ host cuối
172.16.2.63/26 -> Địa chỉ broadcast
————————————————-
172.16.2.64/26 -> Địa chỉ mạng
172.16.2.65/26 -> Địa chỉ host đầu
…..
172.16.2.126/26 -> Địa chỉ host cuối
172.16.2.127/26 -> Địa chỉ broadcast
————————————————–
172.16.2.128/26 -> Địa chỉ mạng
172.16.2.129/26 -> Địa chỉ host đầu
…..
172.16.2.190/26 -> Địa chỉ host cuối
172.16.2.191/26 -> Địa chỉ broadcast
————————————————–
172.16.2.192/26 -> Địa chỉ mạng
172.16.2.193/26 -> Địa chỉ host đầu
…..
172.16.2.254/26 -> Địa chỉ host cuối
172.16.2.255/26 -> Địa chỉ broadcast
…………..
172.16.255.0/26 -> Địa chỉ mạng
172.16.255.1/26 -> Địa chỉ host đầu
…..
172.16.255.62/26 -> Địa chỉ host cuối
172.16.255.63/26 -> Địa chỉ broadcast
————————————————-
172.16.255.64/26 -> Địa chỉ mạng
172.16.255.65/26 -> Địa chỉ host đầu
…..
172.16.255.126/26 -> Địa chỉ host cuối
172.16.255.127/26 -> Địa chỉ broadcast
————————————————–
172.16.255.128/26 -> Địa chỉ mạng
172.16.255.129/26 -> Địa chỉ host đầu
…..
172.16.255.190/26 -> Địa chỉ host cuối
172.16.255.191/26 -> Địa chỉ broadcast
————————————————–
172.16.255.192/26 -> Địa chỉ mạng
172.16.255.193/26 -> Địa chỉ host đầu
…..
172.16.255.254/26 -> Địa chỉ host cuối
172.16.255.255/26 -> Địa chỉ broadcast
Ta để ý thấy octet thứ 3 (là octet bị mượn nhưng không bị chia cắt thành net và host) tăng dần từ 0 đến 255. Trong khi đó, octet thứ 4 (là octet bị chia cắt) thay đổi theo bước nhảy khi địa chỉ là địa chỉ mạng (nó bị mượn 2 bit nên có bước nhảy là 64). Subnet mask trong ví dụ này là 255.255.255.192.
1.4.2. Cho một địa chỉ host. Xác định xem host thuộc mạng nào:
Ta xem xét các ví dụ sau:
Ví dụ 1: Cho địa chỉ host 192.168.1.158/28. Hãy cho biết, host này thuộc về subnet nào?
Giải: /28 => có 28 bit mạng. Octet bị chia cắt là octet thứ 4 => số bit mượn của octet này là 4 => bước nhảy là 16. Lấy octet thứ 4 của địa chỉ host là 158 chia cho 16 được 9 và còn dư. Ta lấy 16 nhân với 9 được 144. Host này thuộc mạng 192.168.1.144/28
Ví dụ 2: Cho địa chỉ host 172.16.159.2/18. cho biết địa chỉ này thuộc subnet nào?
Giải: /18 => có 18 bit mạng. Octet bị chia cắt là octet thứ 3 => số bit mượn của octet này là 2 => bước nhảy là 64. Lấy octet thứ 3 là 159 chia cho 64 được 2 và còn dư. Ta lấy 64 nhân với 2 được 128. Host này thuộc mạng 172.16.128.0/18.
1.4.3. Cho sơ đồ mạng, xác định số bit mượn phù hợp để chia subnet:
Ví dụ:
Chỉ cho một mạng 192.168.1.0/24. Hãy đảm bảo cung cấp đủ các địa chỉ IP cho sơ đồ mạng trên.
Ta thấy: Có tất cả 5 mạng, mạng nhiều host nhất là mạng có 26 host (cộng thêm một địa chỉ cổng router). Gọi số bit mượn là n số bit host là m. Ta có hệ sau:
2n ≥ 5 (số mạng chia ra tối thiểu phải bằng 5).
2m – 2 ≥ 26 (nếu mỗi mạng con đáp ứng được số host của mạng 26 host, nó sẽ đáp ứng được yêu cầu về số host của tất cả các mạng còn lại trên sơ đồ).
m + n = 8
- n = 3, m = 5 là phù hợp. Vậy ta có tất cả 23 = 8 mạng và mỗi mạng này có 25 – 2 = 30 host, đáp ứng được yêu cầu của sơ đồ trên.
Để xác định được các mạng cụ thể, sử dụng các quy tắc chia subnet đã được trình bày ở mục 4.1 ở trên.
1.4.4. Chia subnet VLSM:
– VLSM (Variable Length Subnet Mask): là kỹ thuật chia nhỏ một mạng thành các mạng có độ dài khác nhau (sẽ có các subnet mask khác nhau).
– Xem xét ví dụ sau:
Cũng dùng mạng 192.168.1.0/24 để đặt địa chỉ cho tất cả các mạng trên . Tuy nhiên ta không thể làm như ví dụ trước, chia mạng 192.168.1.0/24 thành các mạng bằng nhau vì sẽ không có cách chia nào phù hợp cho sơ đồ trên: nếu mượn 1 bit thì đáp ứng được yêu cầu về số host cho mạng 100 host vì mỗi mạng được chia ra có 126 host nhưng lại không đáp ứng được yêu cầu về số lượng subnet vì ta chỉ chia được có 2 subnet nếu mượn 1 bit trong khi trên sơ đồ có tới 5 mạng. Ngược lại, để đáp ứng nhu cầu về số lượng mạng trên sơ đồ, ta phải mượn tối thiểu là 3 bit (23 = 8 subnet) nhưng khi đó mỗi mạng lại chỉ có nhiều nhất là 30 host ( 25 – 2 = 30) không đáp ứng được yêu cầu về số lượng host trên các mạng của sơ đồ trên.
– Cách thức tiến hành là: sẽ xét các mạng theo thứ tự số host từ cao xuống thấp.
– Đầu tiên , xét mạng nhiều host nhất:100 host, ta phải xem mượn bao nhiêu bit thì đủ cho mạng này. Ta giải hệ:
2m – 2 ≥ 101
m + n = 8 (mượn bit ở octet thứ 4).Với m: số bit host, n: số bit mượn
Ta được m = 7, n = 1. Vậy ta mượn 1 bit và dành mạng 192.168.1.0/25 để gán cho mạng có 100 host. Mỗi mạng /25 có 27 – 2 = 126 host => đáp ứng đủ cho mạng 100 host. Vậy dải địa chỉ 192.168.1.0/24 còn lại các địa chỉ từ 192.168.1.128 -> 192.168.1.255.
– Tiếp đó ta xét đến mạng có 50 host, tương tự ta xem xem mượn bao nhiêu bit là phù hợp:
2m – 2 ≥ 51
m + n = 8 (mượn bit ở octet thứ 4). Với m: số bit host, n: số bit mượn
Ta được m = 6 và n = 2 là tối ưu. Vậy ta mượn 2 bit, mạng 192.168.1.0/24 được chia thành 4 mạng 192.168.1.0/26, 192.168.1.64/26, 192.168.1.128/26 và 192.168.1.192./26. Tuy nhiên hai dải địa chỉ của hai mạng 192.168.1.0/26 và 192.168.1.64/26 đã được giành cho mạng 100 host. Do đó ta chỉ có thể lấy từ mạng 192.168.1.128/26 để gán cho mạng 50 host. Ở đây ta lấy mạng 192.168.1.128/26 gán cho mạng 50 host.
– Tiếp đó ta xét đến mạng có 20 host, ta xem xem mượn bao nhiêu bit là phù hợp:
2m – 2 ≥ 21
m + n = 8 (mượn bit ở octet thứ 4). Với m: số bit host, n: số bit mượn
Ta được m = 5 và n = 3. Vậy ta mượn 3 bit, mạng 192.168.1.0/24 được chia thành 8 mạng 192.168.1.0/27, 192.168.1.32/27, 192.168.1.64/27 và 192.168.1.96/27, 192.168.1.128/27, 192.168.1.160/27, 192.168.1.192/27, 192.168.1.224/27. Tuy nhiên các dải địa chỉ của các mạng 192.168.1.0/27 ,…, 192.168.1.160/27 đã được giành cho mạng 100 và mạng 50 host. Do đó ta chỉ có thể lấy từ mạng 192.168.1.192/27 trở đi để gán cho mạng 20 host. Ở đây ta lấy mạng 192.168.1.192/27 gán cho mạng 20 host.
– Tiếp đó ta xét đến các mạng có 2 host là các liên kết điểm – điểm serial, ta xem thử mượn bao nhiêu bit là phù hợp:
2m – 2 ≥ 2
m + n = 8 (mượn bit ở octet thứ 4). Với m: số bit host, n: số bit mượn
Ta được m = 2 và n = 6 là tối ưu hơn cả, đảm bảo không bị dư địa chỉ.. Vậy ta mượn 6 bit, mạng 192.168.1.0/24 được chia thành 26 = 64 mạng 192.168.1.0/30, 192.168.1.4/30, 192.168.1.8/30,…, 192.168.1.248/30, 192.168.1.252/30 . Tuy nhiên các dải địa chỉ của các mạng 192.168.1.0/30 ,…, 192.168.1.222/27 đã được giành cho mạng 100 host, mạng 50 host và mạng 20 host. Do đó ta chỉ có thể lấy từ mạng 192.168.224.0/30 để gán cho các mạng 2 host. Ở đây ta lấy mạng 192.168.1.224/30 và 192.168.1.228/30 gán cho hai liên kết serial.
Vậy ta có kết quả chia VLSM như sau:
Chú ý: Để đảm bảo tối ưu hóa sự phân bố địa chỉ, ta thường dùng VLSM để chia nhỏ mạng. Đăc biệt, các kết nối serial thường sử dụng các mạng có prefix là 30 với subnet mask 255.255.255.252.
4.5. Tóm tắt địa chỉ (summary):
Tóm tắt địa chỉ nhằm mục đích làm gọn bảng định tuyến của các router. Các địa chỉ mạng sẽ được tóm tắt về một địa chỉ mạng lớn hơn đại diện bao trùm tất cả các mạng được tóm tắt.
Chúng ta xem xét ví dụ sau:
VD: Hãy tóm tắt các mạng sau đây thành một địa chỉ mạng duy nhất:
192.168.0.0/24
192.168.1.0/24
192.168.2.0/24
192.168.3.0/24
Nguyên tắc khi tóm tắt là xem xét các octet từ trái qua phải và bắt đầu phân tích từ octet có sự khác nhau đầu tiên. Trong trường hợp của ví dụ trên, octet thứ ba là octet khác nhau đầu tiên. Ta xét chi tiết octet này:
192.168.|000000|00.0
192.168.|000000|01.0
192.168.|000000|10.0
192.168.|000000|11.0
Ta thấy octet thứ ba còn có thêm 6 bit giống nhau. Vậy ta có mạng tóm tắt là 192.168.0.0/22. Chú ý: subnet mask bây giờ là 255.255.252.0 với prefix là 22.
1.4.6.1. Cho mạng và số bit mượn. Giả sử có hỗ trợ subnet zero. Hãy xác định :
– Số subnet có thể có.
– Số host/subnet.
– Với mỗi subnet, hãy xác định: địa chỉ mạng, địa chỉ host đầu, địa chỉ host cuối, địa chỉ broadcast (nếu số lượng mạng quá nhiều chỉ cần ghi ra một vài mạng đầu và mạng cuối cùng), subnet mask và số prefix.
- 192.168.2.0/24 mượn 5 bit.
- 192.168.12.0/24 mượn 3 bit.
- 172.16.2.0/24 mượn 2 bit
- 172.16.0.0/16 mượn 3 bit
- 172.16.0.0/16 mượn 12 bit.
- 10.0.0.0/8 mượn 5 bit.
- 10.0.0.0/8 mượn 10 bit.
- 10.0.0.0/8 mượn 18 bit.
1.4.6.2. Cho mạng 172.16.5.0/24. Hãy chia nhỏ sao cho phù hợp với sơ đồ sau:
1.4.6.3. Cho các địa chỉ host sau đây. Hãy xác định các địa chỉ subnet tương ứng và cho biết địa chỉ này có thể dùng đặt cho host được không:
- 192.168.1.130/29
- 172.16.34.57/18
- 203.162.4.191/28
- 1.1.1.1/30
- 10.10.10.89/29
- 70.9.12.35/30
g) 158.16.23.208/29
1.4.6.4. Hãy tóm tắt các địa chỉ mạng sau đây về thành một địa chỉ mạng đại diện:
a) 192.168.0.0/24
192.168.1.0/24
192.168.2.0/24
192.168.3.0/24
b) 172.16.16.0/24
172.16.20.0.24
172.16.24.0/24
172.16.28.0/24