Lưu ý: Các thuật ngữ và các định nghĩa kèm theo được trình bày theo ý kiến chủ quan của tác giả, để hiểu rõ và có kiến thức chuẩn hơn vui lòng đọc các rfc và các định nghĩa link tham khảo bên dưới.
Bài viết này dành cho những ai lần đầu tiếp xúc về các thuật ngữ về mạng, các chuyên gia nếu thấy có định nghĩa sai xin hãy gởi góp ý cho tác giả tại địa chỉ Ins3cl4b@gmail.com. Trân trọng cảm ơn.
Ví dụ 1:
- Đầu tiên ta phải tìm hiểu route là gì?
“Trong ngành mạng máy tính, định tuyến (tiếng Anh: routing hay routeing) là quá trình chọn lựa các đường đi trên một mạng máy tính để gửi dữ liệu qua đó.” Trích “vi.wikipedia.org/wiki/Định_tuyến”. Đây là một giải thích cơ bản nhất về định tuyến trong mạng,
Mục đích sinh ra định tuyến trong mạng vì muốn kết nối các mạng khác subnet lại với nhau. Mỗi subnet sẽ được xem như là một vùng riêng. Để đi được từ một vùng này sang vùng khác phải dùng đến router*.
Như hình bên dưới. Ví dụ như người ở làng A muốn đi qua được làng B phải lên hỏi router 1 đường đi, router 1 thấy được làng B nằm phía dưới mình, nên chỉ đường cho người làng A đi qua được làng B. Đó là một ví dụ nhỏ về khả năng định tuyến của router.
- Chúng ta đã biết được định tuyến là gì rồi nhưng áp dụng vào mạng như thế nào đây ?
Đầu tiên chúng ta sẽ cùng nhau thống nhất một số khái niệm để hiểu rõ hơn ví dụ 1:
- Network Destination: Địa chỉ mạng đích, giống như là ngôi làng mà bạn muốn đến, trong tình huống này sẽ là địa chỉ mạng mà laptop muốn kết nối đến.
- Netmask: hay còn gọi là subnet mask, mục đích sinh ra netmask là để cho router đỡ phải xử lý hết 32 bit của địa chỉ ip. Xem hình bên dưới là một định nghĩa về một địa chỉ IP.
Về cơ bản máy tính chỉ xử lý các bit 0 và 1 thôi. Và một địa chỉ IP sẽ là 32bit có dạng như sau: ví dụ đổi 192.168.1.1 ra dạng binary:
11000000 10101000 00000001 00000001
Các bạn có thể đổi bằng web này hoặc search với từ khóa “dec to bin”: https://www.rapidtables.com/convert/number/decimal-to-binary.html
Địa chỉ netmask cũng có format giống như địa chỉ ip, nhưng nó có nhiệm vụ khác với địa chỉ ip. Mỗi địa chỉ ip trong mạng giống như là một người dân trong làng, có một định danh riêng để phân biệt, còn địa chỉ netmask nhiệm vụ của nó là chia địa chỉ mạng làm 2 phần network identifier + subnet identifier và host identifier. Như hình bên trên thì router sẽ chỉ xử lý phần màu xanh, còn phần màu vàng sẽ không sử dụng.
Ví dụ 32 bit netmask ta là : 11111111 11111111 11111111 00000000. Vậy thì router sẽ chỉ đọc 24 bit 1 đầu tiên thôi, còn các bit 0 phía sau sẽ được bỏ qua. Địa chỉ netmask sẽ được đánh liên tiếp các số 1 từ trái qua phải. Khi hết phần quan tâm ta đánh phần còn lại là số 0 cho đủ 32 bit. Như ở ví dụ trên khi đổi ra số decimal sẽ là 255.255.255.0. Thông thường người ta còn biểu diễn netmask ở dạng /. Người ta sẽ đếm số bit 1 tồn tại trong netmask để quy đổi. ví dụ như 255.255.255.0 sẽ được quy đổi thành /24.
- Gateway: Như là một cánh cổng, khi router chỉ đường đi nó sẽ chỉ chúng ta qua một cánh cổng, khi đi theo đường đó sẽ được nơi cần đến.
- Interface: Đây là định nghĩa card mạng, địa chỉ ip sẽ được gán cho từng card mạng để định danh.
- Metric: độ ưu tiên đường đi, khi một gói tin đến router. Nếu có nhiều đường đi từ A đến B mà router biết được, router sẽ dựa vào metric để chỉ đường gói tin. Tham số metric càng nhỏ thì độ ưu tiên càng lớn
- 0.0.0: Địa chỉ ip này có nghĩa là mọi địa chỉ IP nếu router không biết
- On-link: Là địa chỉ lớp mạng ( ví dụ như làng A, làng B) gắn trực tiếp với router.
Trở lại hình ở ví dụ 1:
Dòng thứ 1 : Khi không biết đi đường nào(0.0.0.0/0) thì qua gateway có ip 10.8.34.1 thông qua interface có ip 10.8.34.38 có độ ưu tiên 25
Dòng thứ 2: Khi muốn đến được lớp mạng 10.8.34.0/24 thì qua gateway là on-link(cắm trực tiếp) thông qua interface có ip 10.8.34.38 có độ ưu tiên 281
Dòng thứ 3: Khi muốn đến được lớp mạng 10.8.34.38/32 thì qua gateway là on-link(cắm trực tiếp) thông qua interface có ip 10.8.34.38 có độ ưu tiên 281
Dòng thứ 4: Khi muốn đến được lớp mạng 10.8.34.255/32 thì qua gateway là on-link(cắm trực tiếp) thông qua interface có ip 10.8.34.38 có độ ưu tiên 281
Dòng thứ 5: Khi muốn đến được lớp mạng 127.0.0.0/8 thì qua gateway là on-link(cắm trực tiếp) thông qua interface có ip 127.0.0.1 có độ ưu tiên 306
Dòng thứ 6: Khi muốn đến được lớp mạng 127.0.0.1/32 thì qua gateway là on-link(cắm trực tiếp) thông qua interface có ip 127.0.0.1 có độ ưu tiên 306
Dòng thứ 7: Khi muốn đến được lớp mạng 127.255.255.255/32 thì qua gateway là on-link(cắm trực tiếp) thông qua interface có ip 127.0.0.1 có độ ưu tiên 306
Dòng thứ 8: Khi muốn đến được lớp mạng 192.168.56.0/24 thì qua gateway là on-link(cắm trực tiếp) thông qua interface có ip 192.168.56.1 có độ ưu tiên 276
Dòng thứ 9: Khi muốn đến được lớp mạng 192.168.56.1/32 thì qua gateway là on-link(cắm trực tiếp) thông qua interface có ip 192.168.56.1 có độ ưu tiên 276
Dòng thứ 10: Khi muốn đến được lớp mạng 192.168.56.255/32 thì qua gateway là on-link(cắm trực tiếp) thông qua interface có ip 192.168.56.1 có độ ưu tiên 276
Dòng thứ 11: Khi muốn đến được lớp mạng 192.168.170.0/24 thì qua gateway là on-link(cắm trực tiếp) thông qua interface có ip 192.168.170.1 có độ ưu tiên 276
Dòng thứ 12: Khi muốn đến được lớp mạng 192.168.170.1/32 thì qua gateway là on-link(cắm trực tiếp) thông qua interface có ip 192.168.170.1 có độ ưu tiên 276
Dòng thứ 13: Khi muốn đến được lớp mạng 192.168.170.255/32 thì qua gateway là on-link(cắm trực tiếp) thông qua interface có ip 192.168.170.1 có độ ưu tiên 276
Dòng thứ 14: Khi muốn đến được lớp mạng 224.0.0.0/4 thì qua gateway là on-link(cắm trực tiếp) thông qua interface có ip 127.0.0.1 có độ ưu tiên 306
Dòng thứ 15: Khi muốn đến được lớp mạng 224.0.0.0/4 thì qua gateway là on-link(cắm trực tiếp) thông qua interface có ip 192.168.56.1 có độ ưu tiên 276
Dòng thứ 16: Khi muốn đến được lớp mạng 224.0.0.0/4 thì qua gateway là on-link(cắm trực tiếp) thông qua interface có ip 192.168.170.1 có độ ưu tiên 276
Dòng thứ 17: Khi muốn đến được lớp mạng 224.0.0.0/4 thì qua gateway là on-link(cắm trực tiếp) thông qua interface có ip 10.8.34.38 có độ ưu tiên 281
Dòng thứ 18: Khi muốn đến được lớp mạng 255.255.255.255/32 thì qua gateway là on-link(cắm trực tiếp) thông qua interface có ip 127.0.0.1 có độ ưu tiên 306
Dòng thứ 19: Khi muốn đến được lớp mạng 255.255.255.255/32 thì qua gateway là on-link(cắm trực tiếp) thông qua interface có ip 192.168.56.1 có độ ưu tiên 276
Dòng thứ 20: Khi muốn đến được lớp mạng 255.255.255.255/32 thì qua gateway là on-link(cắm trực tiếp) thông qua interface có ip 192.168.170.1 có độ ưu tiên 276
Dòng thứ 21: Khi muốn đến được lớp mạng 255.255.255.255/32 thì qua gateway là on-link(cắm trực tiếp) thông qua interface có ip 10.8.34.38 có độ ưu tiên 281.
Ta có thể vẽ sơ đồ routing bên trên như thế này: Từ vị trí A thông qua các interface trên router 1 ta có thể đến được các lớp mạng được mô tả trong bảng routing phía trên.
Router: đây là thiết bị định tuyến, làm nhiệm vụ chỉ đường. Trong thực tế chúng ta thường bắt gặp các router như là các thiết bị mà nhà cung cấp ISP (viettel, vnpt, fpt, …) cung cấp cho chúng ta khi lắp đặt mạng. Các cục phát wifi trong công ty,… Các thiết bị này thường là router tích hợp nhiều chức năng)
Subnet: là một nhóm các địa chỉ IP
Ví dụ 2:
Đầu tiên ta sẽ nói về mục đích của việc tại sao phải chia subnet ra chứ không xài 1 subnet lớn. Ví dụ ở đây là subnet lớn 172.16.0.0/16. Thì đối với subnet này sẽ có được 2^16 địa chỉ có thể được sử dụng (địa chỉ có thể gán được cho các card mạng trong mô hình).
Tại sao có 2^16 địa chỉ có thể sử dụng.???
Tại vì địa chỉ ip chia làm 2 phần. Phần host và phần net. Phần host là các bit được quy định bởi netmask. Ví dụ ở đây netmask là 16. Ta biểu diễn như sau (quy đổi ra binary):
172.16.0.0 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
Netmask | /16 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Ở đây còn một định nghĩa nữa trong ip là octet. 1 octet là 8bit. Một địa chỉ ip sẽ có 4 octet.
Đối với địa chỉ ip trên, phần host là phần được quy định bởi 16 bit 0 của địa chỉ mask.
Mỗi bit sẽ nhận giá trị là 0 hoặc 1. Áp dụng quy tắc nhân Vậy sẽ có 2x2x2x2x2x2x2x2x2x2x2x2x2x2x2x2 trường hợp có thể xảy ra đối với 16 bit => 2^16. Vì vậy từ bây giờ ta có thể sử dụng tính nhanh để tính số bit host có thể có bằng cách lấy 2 lũy thừa (32 – subnetmask). Phần net trong một subnet sẽ cố định, nên ta chỉ cần tính phần host thôi
Vậy thì ta có => 2^(32-16)=65536. Vậy là sẽ có được 65536 địa chỉ ip có thể sử dụng.
Số địa chỉ ip được yêu cầu đối với mô hình mạng trên:
30000+12000+4000+4000+4000+4000=58000. Vậy đối với số lượng địa chỉ ip đã được cung cấp (65536 địa chỉ) sẽ đủ để chia ra cho các subnet con. Vấn đề cần chia subnet thường là để chia vùng mạng ra nhiều vùng để dễ quản lý. Ví dụ như phòng IT có lớp mạng riêng, phòng Kế toán có lớp mạng riêng, v.v… khi cần thiết lập chính sách các máy tính cho phòng kế toán thì chỉ cần áp dụng chính sách cho lớp mạng cụ thể, không cần phải tìm kiếm ip nào của phòng nào.
Trở lại với bài toán: VLSM là giải pháp để giải quyết vấn đề chia một subnet ip lớn ra thành các lớp subnet con cho phù hợp và dễ quản lí các subnet.
Ta có công thức tính như sau:
Trích : https://cuongquach.com/tu-hoc-ccna-phuong-phap-chia-mang-con-vlsm.html
Để giải thích cụ thể hơn. Đối với vlsm ta sẽ chia subnet có nhiều địa chỉ IP hơn trước:
Ta sẽ chia subnet có 30000 địa chỉ IP trước .
Bước 1. Xác định số subnet.
Việc xác định số subnet là xác định subnet mask của subnet sẽ chứa 30000 địa chỉ IP.
Netmask | /17 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Đối với vlsm để xác định chính xác subnet mask của subnet được chia. Ta tìm subnet có thể chứa số lượng ip gần nhất với số lượng ip cần chia. Nhưng số lương ip có thể có của subnet sẽ là 2^x. Theo quy tắc nhân đã chứng minh trước đó. Vậy ta sẽ thay x lần lượt giảm dần để tìm được subnet mask cần tính.
Host được cấp có 2^16 = 65536 địa chỉ IP > 30000 địa chỉ cần. Vậy ta sẽ giảm x( giảm số bit phần host đi từ từ),
Do số bit phần hót giảm nên bit phần host sẽ tăng nên ta có công thức bên dưới:
bit host = 32 - bit net.
Phần host sẽ còn 2^(32-17)=32768 >30000 địa chỉ cần . Ta tiếp tục tăng phần net lên 1 bit.
Phần host sẽ còn 2^(32-18)=16384 <30000 địa chỉ cần. Vậy nên Ta sẽ chọn subnet mask cho subnet đầu tiên là /17. Có thể chứa 32768 địa chỉ IP và gần và lớn hơn với 30000 nhất
Bước 2: Số host/ subnet
- lớp mạng 172.16.0.0/17 ( 32768 địa chỉ IP) được cấp cho mạng con cần 30000 host
Bước 3: bước nhảy
2^m=2^(32-17)=2^15=32768. Tại sao là 2^m là bước nhảy. Bước nhảy ở đây có nghĩa là số ip cần để qua được subnet mới mà có cùng subnet mask. Ở đây là 17.
Đổi 32758 ra nhị phân: 10000000 00000000 sau đó cộng với 172.16.0.0 đổi ra nhị phân.
- Ta được: 10101100 00010000 10000000 00000000. Quy đổi ra decimal theo từng octet: 172.16.128.0/17
Vậy thì địa chỉ subnet để chứa 30000 IP sẽ có địa chỉ từ 172.16.0.0/17 – 172.16.127.255/17
Đổi thành binary sẽ có dạng: 10101100 00010000 00000000 00000000 - 10101100 00010000 01111111 11111111.
Tiếp tục chia thêm 12000 IP từ subnet 172.16.128.0/17:
Các bước tương tự
2^14=16384 gần và lớn hơn 12000 nhất.
- Subnet mask mới 32-14= 18
- Bước nhảy = 64
[172.16.128.0] + [01000000 00000000]. Cộng theo octet ta có subnet mới:
172.16.192.0/18
=> Vậy subnet chứa 12000 IP có địa chỉ từ 172.16.128.0/18 – 172.16.191.255/18. Biểu diễn dạng binary: 10101100 00010000 10000000 00000000 - 10101100 00010000 10111111 11111111.
Tiếp theo chia mạng 4000 IP từ 172.16.192.0/18
2^12 gần với 4000 nhất. => subnet mask sẽ là 32-12= 20
- Bước nhảy: 16
- [172.16.192.0] + [00010000 00000000]. Cộng theo octet ta có subnet mới:
- 16.208.0/20
- Vậy subnet chứa 4000 IP có địa chỉ từ 172.16.192.0/20 – 172.16.207.255/20 biểu diễn dạng binary: 10101100 00010000 11000000 00000000 - 10101100 00010000 11001111 11111111.
- Tiếp theo chia 4000IP từ 172.16.208.0/20. Do cùng subnet mask ta cộng bước nhảy lên cho nhanh:
- 16.224.0/20
- Subnet chứa 4000IP sẽ từ 172.16.208.0/20 -172.16.223.255/20 biểu diễn dạng binary:
- 10101100 00010000 11010000 00000000 - 10101100 00010000 11011111 11111111
- Tương tự Tiếp theo chia 4000IP từ 172.16.224.0/20. Do cùng subnet mask ta cộng bước nhảy lên cho nhanh:
- 16.240.0/20
- Subnet chứa 4000IP sẽ từ 172.16.224.0/20 -172.16.239.255/20 biễu diễn dạng binary:
- 10101100 00010000 11100000 00000000 - 10101100 00010000 11101111 11111111
- Tương tự Tiếp theo chia 4000IP từ 172.16.240.0/20. Do cùng subnet mask ta cộng bước nhảy lên cho nhanh:
- 17.0.0/20 ( vượt qua octet đầu tiên) vậy đến host 4000 cuối cùng sẽ không thể chia thêm subnet nào có 4000 IP nữa
- Subnet chứa 4000IP cuối sẽ từ 172.16.240.0/20 -172.16.255.255/20 biễu diễn dạng binary:
- 10101100 00010000 11110000 00000000 - 10101100 00010000 11111111 11111111
- Vậy tổng kết lại sau khi chia VLSM ta được dãy các subnet:
- [30000]: 172.16.0.0/17 – 172.16.127.255/17
- [12000]: 172.16.128.0/18 – 172.16.191.255/18
- [4000] : 172.16.192.0/20 – 172.16.207.255/20
- [4000] : 172.16.208.0/20 – 172.16.223.255/20
- [4000] : 172.16.224.0/20 – 172.16.239.255/20
- [4000] : 172.16.240.0/20 – 172.16.255.255/20
Ta có thể vẽ biểu đồ như sau để hình dung:
Giả sử 172.16.0.0/16 được chia đều IP (65536 IP) ra làm các ô vuông. Mỗi ô là 4096 IP.
Vậy là chúng ta đã chia 65536 IP ra làm 6 subnet. Áp dụng VLSM sẽ giải quyết được bài toán nếu phòng ban nào cần ít địa chỉ IP, phòng nào cần nhiều địa chỉ IP. Nếu không dùng VLSM sẽ có thể có tình trạng thừa địa chỉ IP hoặc thiếu IP cung cấp cho tổ chức.
Ví dụ 3:
A: Subnet address: 100.1.1.0/ Broadcast: 100.1.1.255
B: Subnet address: 100.1.2.0/ Broadcast: 100.1.2.255
C Subnet address: 100.1.3.0/ Broadcast: 100.1.3.255
D Subnet address: 100.1.4.0/ Broadcast: 100.1.4.255
E Subnet address: 100.1.0.0/ Broadcast: 100.1.0.3
F Subnet address: 100.1.0.4/ Broadcast: 100.1.0.7
G Subnet address: 100.1.0.8/ Broadcast: 100.1.0.11
H Subnet address: 100.1.0.12/ Broadcast: 100.1.0.15
I Subnet address: 100.1.0.16/ Broadcast: 100.1.0.19
L Subnet address: 100.2.0.0/ Broadcast: 100.2.0.3
Ví dụ 4:
Quy ước: với một đỉnh X có ký hiệu (1,B) thì 1 là khoảng cách hiện tại từ A đến X, B là đỉnh liền trước X trong đường đi từ A đến X.
Tham khảo thêm: https://tools.ietf.org/html/rfc1812