bài C u trúc IP ta đã bi t s qua v khái ni m và c u trúc c a IPv4. Bài này mình sế ơ
trình bày rõ v cách chia Subnetmask
Subnet là gì?: Hi u đ n gi n v y. Khi ta chia m t Network ra thành nhi u Network nh ơ
h n thì các Network nh này đ c g i là Subnet.ơ ượ
Vì sao c n ph i chia Subnet mask?
Nh ta đã bi t m ng Internet s d ng đ a ch IPv4 32 bit và phân chia ra các l p A,B,C,D ,ư ế
tuy nhiên, v i m t h th ng đ a ch nh v y vi c qu n lý v n r t khó khăn . N u nh m t ư ế ư
m ng đ c c p m t đ a ch l p A thì có nghĩa nó có th ch a t i 16*1.048.576 đ a ch ượ
( máy tính ) .V i s l ng máy tính l n nh v y r t ít công ty ho c t ch c dùng h t đ c ượ ư ế ượ
đi u đó gây lãng phí đ a ch IP. Đ tránh tình tr ng đó các nhà nghiên c u đ a ra m t ư
ph ng pháp là s d ng m t n m ng con ( Subnet mask ) đ phân chia m ng ra thànhươ
nh ng m ng con g i là Subnet. Subnet mask là m t con s 32 bit bao g m n bit 1 ( th ng ườ
là các bit cao nh t ) dùng đ đánh đ a ch m ng con và m bit 0 dùng đ đánh đ a ch máy
trong m ng con v i n+m=32 .
Subnet mask ph i đ c c u hình cho m i máy tính trong m ng và ph i đ c đ nh nghĩa ượ ượ
cho m i giao di n Router. Nh v y, ta ph i dùng cùng m t Subnet mask cho toàn b m ng ư
v t lý cùng chung m t đ a ch Internet. Trong th c t , đ d dàng cho ho t đ ng qu n lý ế
các máy trong m ng, th ng chia nh các m ng l n trong các l p m ng (A, B, C) thành ườ
các m ng nh h n. Quá trình này đ c th c hi n b ng cách l y m t s bit ph n đ nh ơ ượ
danh host đ s d ng cho vi c đánh đ a ch m ng. Tuỳ theo cách s d ng c a ng i qu n ườ
tr m ng ( s subnet và s host trên m i subnet ) mà s l ng bit l y ph n host nhi u ượ
hay ít.
Đ tách bi t gi a đ a ch m ng và đ a ch host ng i ta dùng netmask. Đ tách bi t gi a ườ
Subnet address và đ a ch host ng i ta dùng Subnet mask. ườ
Theo quy c, các đ a ch IP đ c chia ra làm ba l p nh sau:ướ ượ ư
Class Subnet mask trong d ng nh phân Subnet mask
L p A 11111111 00000000 00000000 00000000 255.0.0.0
L p B 11111111 11111111 00000000 00000000 255.255.0.0
L p C 11111111 11111111 11111111 00000000 255.255.255.0
Nh ta đã bi t, l p A s d ng 1 octet đ u tiên làm Network ID. S d ng 8 bit đ u đ cư ế ượ
set giá tr thành 1, và 24 bit sau set giá tr 0 => có Subnet Mask 255.0.0.0. T ng t v i các ươ
l p kia.
Ví d IP: 192.168.1.0/24
Đây là đ a ch thu c l p C. Và con s 24 có nghĩa là ta s d ng 24 bit cho ph n Network
ID, và còn l i 8 bit cho Host ID.
Chia Subnet Mask nh th nào?ư ế
đây, mình s trình bày cách ng n g n giúp b n có th tính nh m đ c. L y ví d c ượ
th nh sau: ư
Công ty thuê m t đ ng IP là 192.168.1.0. Bây gi ông giám đ c yêu c u phân làm chia ườ
làm 3 m ng con cho ba phòng ban trong công ty. Hãy th c hi n vi c chia subnet này.
Tr c h t ta phân tích c u trúc c a đ a ch : 192.168.1.0 nh sau:ướ ế ư
+ Đ a ch NetMask: 255.255.255.0
+ Network ID: 11111111.11111111.11111111
+ HostID: 00000000
Trong ví d này ta c n chia làm 3 m ng con (3 subnet) nên ta c n s d ng 2 bit ph n
Host ID đ thêm vào Network ID. Làm sao đ bi t đ c s bit c n m n thêm? Ta có ế ượ ượ
công th c : 2^n>=m (v i m là s subnet c n chia, n là s bit c n m n). đây 2^2>=3. ượ
Sau khi m n 2 bit, ta có c u trúc m i d ng nh phân là (bit m n ta set giá tr b ng 1ượ ượ
nhé):
+ Đ a ch NetMask:: 11111111.11111111.11111111. 11000000
+ Network ID: 11111111.11111111.11111111.11
+ Host ID: 000000
=> d ng th p phân là: 255.255.255.192
Đ a ch IP m i lúc này là: 192.168.1.0/26 (con s 26 là 24 + 2 bits m n). ượ
Ta xác đ nh "b c nh y" cho các subnet: ướ
B c nh y k=256-192=64ướ
=> Ta có các m ng con sau:
Ip: 192.168.1.0 Netmask: 255.255.255.192
Ip: 192.168.1.64 Netmask: 255.255.255.192
Ip: 192.168.1.128 Netmask: 255.255.255.192
Ip: 192.168.1.192 Netmask: 255.255.255.192
Nh v y s máy trên m i m ng b ng bao nhiêu?ư
S bits c a Host ID còn l i sau khi đã b Network ID m n: x = 32-26 = 6 ượ
=> S máy trên m i m ng: 2^n-2 = 2^6-2 = 62 máy
Cách chia Subnet nhanh
D o tr c mình có vi t bài ướ ế Subnet mask và cách chia có trình bày v cách chia
Subnet căn b n. Cách tính và nh ph ng phá đ chia Subnet có nhi u cách, bài này ươ
trình bày cách tính r t nhanh, tham kh o nhé . VIA t blog c a Anh Lê C ng. ườ
Khi tính toán IP, chia subnet thì chúng ta th ng áp d ng công th c đ tính toán.ườ
Công th c tính là 2^n và 2^h - 2 ( 2^m -2 ),
Đ tính t ng s subnet có đ c sau khi chia ta dùng công th c 2^n, trong đó n là s ượ
bit m n đ chia subnet trong octet đó (m n làm network id).ượ ượ
Đ tính t ng s host/subnet ta dùng công th c 2^h-2, trong đó h là t ng s bit còn
l i dùng làm host sau khi đã m n . Ta ph i tr 2 vì c n b đ a ch subnet id và ượ
broadcast.
Nói s s qua cách tính truy n th ng nh v y thôi, gi chúng ta tìm hi u cách nh m nhanhơ ơ ư
b ng cách đ m lóng tay nhé! ế
PH NG PHÁP CHIA SUBNET B NG CÁCH Đ M LÓNG NGÓN TAYƯƠ
Đ u tiên các b n xòe bàn tay trái ra và đ m theo hình: ế
Các b n đ ý bàn tay chúng ta có t t c 14 lóng tay, m i lóng tay t ng tr ng cho 1 bit ươ ư
nhé! ^^
Đ m 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384.ế
Đ m đi đ m l i cho thu c đi nhé các b n.ế ế
- Đ tính t ng s l ng Subnet id ượ có đ c sau khi chia, ta đ m s bit m n làm subnetượ ế ượ
id trong octet đó là ra. M n 3 bit thì đ m 2 4 8, m n 4 bit thì đ m 2 4 8 16, giá tr c a bitượ ế ượ ế
đ m sau cùng chính là t ng s subnet id sau khi đ c chia ra.ế ượ
Ví d : 10.10.0.0 /13 ---> m n 5 bit ượ ---> đ m 2 4 8 16 32. V y m ng này có 32 subnet.ế
- Đ tính b c nh y trong m i subnet id ướ . Ta đ m s bit còn l i dùng làm host trongế
riêng octet đó. Giá tr c a bit đ c đ m sau cùng cũng là giá tr c a b c nh y trong octet ượ ế ướ
đó.
Ví d : 172.35.0.0/19. T c là đ a ch l p B s m n 3 bit octet th 3 làm subnet id. Dùng ượ
ph ng pháp đ m ta có 2 4 8, đ 3 bit m n r i, v y t ng s subnet id là 8. Ta bi t trongươ ế ượ ế
octet th 3 sau khi cho m n 3 bit làm net id thì còn l i 5 bit làm host, v y ta đ m 2 4 8 16 ượ ế
32, đ 5 bit r i, giá tr là 32, và cũng chính là b c nh y c a subnet id., th xem nào: ướ
-172.35.0.0/19
-172.35.32.0/19
-172.35.64.0/19
-172.35.96.0/19
-172.35.128.0/19
-172.35.160.0/19
-172.35.192.0/19
-172.35.224.0/19
Ta có t ng c ng 8 subnet id, v i b c nh y là 32. ướ
- Đ tính đ a ch broadcast c a m t subnet id ta l y subnet id k ti p gi m 1. Ví d , đ ế ế
tính broadcast c a subnet id 172.35.64.0/19, ta l y subnet id k ti p là 172.35.96.0/19 gi m ế ế
1 == 172.35.95.255/19 đây chính là broadcast c a subnet id 172.35.64.0
- Đ tính s host trong m t subne t, ta đ m toàn b s bit host còn l i trong subnet và l yế
giá tr bit sau cùng đó -2, L u ý là không phân bi t octet. Nh c l i, ta l y giá tr c a bit ư
đ c đ m sau cùng - 2 ta đ c s host trong subnet id có th xài.ượ ế ượ
Trong ví d subnet 172.35.64.0/19, ta nh n bi t toàn b s bit dùng làm host còn l i là 13. ế
Ta đ m 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192, đ 13 bit r i, ok, s host trongế
m ng s là 8192 -2 = 8190. Vì sao -2, vì ta ph i tr b đ a ch subnet id và broadcast. Hay
đ n gi n h n có th nh n th y là s host có th xài đ c trong dãy:ơ ơ ượ
172.35.64.1/19 ----> 172.35.95.254/19
Và đ ng th i nó cũng l t gi a 2 subnet id và broadcast.
L u ýư: Ph ng pháp đ m t 2 không đ c dùng đ tính t ng s giá tr c a 1 octet ch y tươ ế ượ
0->255. Hay nói cách khác là không đ c d ng đ tính t ng giá tr c a 1 dãy bit nhượ ư
10101101. Đ tính t ng s giá tr c a dãy trên ta ph i đ m t 1, c ng các giá tr có bit 1 ế
v i nhau.
Ngoài ra, yêu c u các b n c n nh thu c:
1xxxxxxx =128
11xxxxxx =192
111xxxxx =224
1111xxxx =240
11111xxx =248
111111xx =252
1111111x =254
11111111 =255
2^0 = 1
2^1 = 2
2^2 = 4
2^3 = 8
2^4 = 16
2^5 = 32
2^6 = 64
2^7 = 128
2^8 = 256
Các b n cũng có th dùng bàn tay ph i đ ghi nh các giá tr trên , dùng nh m nhanh
subnet mask c a m ng.
M n 1 bit : 128ượ
M n 2 bit : 192ượ
M n 3 bit : 224ượ
M n 4 bit : 240ượ
M n 5 bit : 248ượ
M n 6 bit : 252ượ
M n 7 bit : 254ượ
M n 8 bit : 255ượ
Ví d : 10.10.0.0 /13 --m n 5 bit ---> S/M: 255.248.0.0 ượ
155.55.3.32 /28 -- m n 12 bit = 8 +4 ượ ----> S/M: 255.255.255.240
N u các b n nhu n nhuy n cách tính này, tôi tin r ng các b n s tính toán, chia subnet r tế
nhanh!!