5.3.1. Kỹ thuật VLSM
Khi số IP của người dùng tăng lên lớn hơn, người quản trị mạng phải có cách sử dụng không gian địa chỉ IP một cách hiệu quả hơn. Một trong những kỹ thuật đó là sử dụng kỹ thuật VLSM, với VLSM người quản trị có thể chia địa chỉ mạng có Subnet Mask dài (lớn) cho mạng có yêu cầu ít về số host (địa chỉ IP) và địa chỉ mạng có Subnet Mask ngắn (nhỏ) cho mạng yêu cầu nhiều host. Khi chạy VLSM thì hệ thống mạng phải chạy các giao thức định tuyến hỗ trợ VLSM như : OSPF (Interggated Intermediate System to Intermediate System ), EIGRP, RIPv2 và định tuyến tĩnh.
Để nắm rõ kỹ thuật phân chia, và chia thành thạo, chúng ta cần hiểu rõ một số khái niệm và công thức như sau:
+ Địa chỉ mạng (N/A – Network Address): là địa chỉ có tất cả các bit thuộc phần host_id = 0
+ Địa chỉ Broadcast (B/A - Broadcast Address): là địa chỉ có tất cả các bit thuộc phần host_id = 1
+ Địa chỉ khả dụng (địa chỉ host address): là địa chỉ IP nguyên tố thuộc một lớp mạng con nào đó, có thể đem gán cho PC, Laptop, và các host mạng. Phần host_id của địa chỉ này có chứa cả bit „0‟ và bit „1‟. Theo đó:
N/A < Địa chỉ khả dụng < B/A
+ Một địa chỉ IP v4 có tổng số 32 bit, được chia làm 4 octet, mỗi octet cách nhau bởi một dấu chấm. Bất kỳ một địa chỉ IP v4 nào cũng có 2 phần: network_id và host_id.
+ Địa chỉ Subnet Mask dùng để phân biệt phần bit nào là net_id và phần bit nào là host_id. Có thể viết tắt địa chỉ Subnet Mask dùng ký hiệu “/”. Ví dụ: cho địa chỉ IP: 111.200.15.0/25, thì /25 ở đây có nghĩa là có 25 bit “1” liên tiếp từ trái qua phải của 111.200.15.0 là net_id, còn lại 32-25 = 7 bit là host_id.
+ Cách chuyển đổi số nhị phân, thập phân + Phép toán AND:
1 and 1 = 1 1 and 0 = 0
90 0 and 1 = 1
91
CÔNG THỨC ÁP DỤNG:
- Liên quan đến số mạng con cần tạo, áp dụng công thức:
2n ≥ số mạng con cần tạo ra
Ở đây n là số bit cần phải mượn (chuyển đổi từ bit host_id sang bit net_id) từ phần host_id. Nếu mượn n bit thì sẽ tạo ra được 2n mạng con mới (subnet mới), mỗi subnet mới này sẽ có 2h - 2 địa chỉ host có thể đem gán; và địa chỉ Subnet Mask mới của tất cả các mạng con mới sẽ = địa chỉ Subnet Mask của IP đang chia + số bit mượn n. Chúng ta không cần loại bỏ 2 mạng con đầu tiên vì các dòng Router hiện nay có IOS hỗ trợ lệnh Router(config)#IP subnet-zero nên 2 mạng con này vẫn có thể sử dụng được.
- Liên quan đến số địa chỉ host yêu cầu, áp dụng công thức
2h - 2 ≥ số host yêu cầu của từng mạng
Ở đây h là bit thuộc phần host_id và cũng là số bit còn lại sau khi ta mượn n bit.
Ở kỹ thuật VLSM ta thường áp dụng công thức này trước để tìm ngược lại số bit mượn n
VÍ DỤ MẪU: Cho giải địa chỉ IP 50.68.16.0/20
Sử dụng kỹ thuật VLSM, hãy phân chia địa chỉ trên cho các mạng sau: + Mạng 1 yêu cầu 60 host
+ Mạng 2 yêu cầu 632 host + Mạng 3 yêu cầu 2 host + Mạng 4 yêu cầu 1200 host + Mạng 5 yêu cầu 315 host
92
HƢỚNG DẪN
Theo kỹ thuật VSLM, ta phải sắp sếp các mạng có số host từ cao nhất xuống thấp nhất như sau:
+ Mạng 4 yêu cầu 1200 host + Mạng 2 yêu cầu 632 host + Mạng 5 yêu cầu 315 host + Mạng 1 yêu cầu 60 host + Mạng 3 yêu cầu 2 host
a) Bƣớc 1: Lấy địa chỉ IP ban đầu 50.68.16.0/20 phân chia cho Mạng 4 yêu cầu 1200
host
Áp dụng công thức: 2h - 2 ≥ 1200 -> h = 11
Hình 5.6.
Điều đó có nghĩa là, muốn phân chia địa chỉ ban đầu cho mạng yêu cầu số host là 1200 thì lời khuyên theo VLSM đưa ra là ta nên mượn tối thiểu:
n = tổng số bit nhị phân của địa chỉ IPv4 – số bít phần Net_id của địa chỉ mạng cần chia nhỏ(SUBNET MASK của địa chỉ đem chia) – số bit h còn lại (sau khi bị mượn n bit)
93
n = 32 – 20 – 11 = 1 bit, từ đó tính được số mạng con mới được sinh ra là 21 = 2 mạng con (subnet), new Subnet Mask của tất cả các mạng con mới này chính là 20 + 1= /21; mỗi mạng con này sẽ có 2h – 2 = 211 – 2 = 2046 địa chỉ IP có thể đem gán cho host
Các địa chỉ mạng con chi tiết là:
Để tính được tất cả các mạng con mới, ta đổi địa chỉ đang đem chia ra dạng nhị phân: 50.68.16.0/20
00110010.01000100.0001 0 000.00000000 11111111.11111111.1111 0 000.00000000
Dựa vào số bit của địa chỉ Subnet Mask (ở đây đề bài cho là /20), ta xác định được số bit phần Net_ID = 20, và tính được số bit cần mượn là n = 1 (bit gạch chân). Muốn tìm mạng thứ bao nhiêu trong tổng số các mạng con mới, ta chỉ việc đem đổi số đó ra dạng nhị phân, sau đó đem chuỗi bit này thay thế cho toàn bộ các bit bị gạch chân bên trên, trong trường hợp khi đổi các số (mạng thứ i ) ra nhị phân mà không vừa đủ bằng số bit gạch chân, ta chỉ việc thêm các bit 0 vào đầu dãy số đã đổi sao cho đủ vừa khít các bit gạch chân để có thể thay thế. Điển hình, ở đây ta sẽ tính được
Mạng thứ 0 trong tổng số 2 mạng như sau:
+ Đổi 0 hệ 10 sang hệ nhị phân 0, vì ở đây phần gạch chân chỉ có 1 bit, do đó ta không cần thêm bit 0 nữa; bê nguyên bit này thay thế cho phần gạch chân bên trên. Kết quả khi thay thế và đổi sang thập phân, mạng thứ 0 cần tính là:
50.68.16.0/21
+ Trong tất cả các trường hợp chia theo kỹ thuật VLSM, mạng con thứ 0 luôn trùng với địa chỉ mạng đang đem chia, chỉ có điều địa chỉ Subnet Mask mới đã được thay đổi (tăng lên).
Mạng thứ 1 là:
+ Đổi số 1 ở hệ 10 sang nhị phân 1, tương tự trên, vì trường hợp này số bit gạch chân chỉ có 1 bit, ta không cần thêm bit 0 nữa; sử dụng chuỗi vừa được đổi ở dạng nhị phân là bit 1 , đem thay thế cho phần bit gạch chân trên, sau đó đổi ra hệ thập phân, kết quả mạng thứ 1 là:
94
00110010.01000100.0001 0 000.00000000 , sau khi được thay thế là: 00110010.01000100.0001 1 000.00000000 , đổi ra thập phân được: 50.68.24.0/21
Kết luận tại bƣớc 1:
Lấy địa chỉ mạng thứ 0 là 50.68.16.0/21 đem cấp cho mạng yêu cầu 1200 host; Và lấy mạng thứ 1 là 50.68.24.0/21 đem chia tiếp (ở bước tiếp theo)
Muốn tìm địa chỉ IP thứ i, ta chỉ việc đổi i ra nhị phân, sau đó bê nguyên khối nhị phân này vào phần bit mượn (phần bit dịch chuyển). Rồi sau đó đổi ra thập phân cho từng octet
b) Bƣớc 2: Lấy địa chỉ 50.68.24.0/21 đem chia cho mạng yêu cầu 632 host
Tương tự bước 1, đầu tiên ta áp dụng công thức: 2h - 2 ≥ 632 -> h = 10
=> cần mượn số bit là n = 32 – 21 – 10 = 1
=> số mạng con mới là 21 = 2 mạng con, địa chỉ Subnet Mask mới của 2 mạng con này là 21 + 1 = /22; mỗi mạng con này sẽ có 2h – 2 = 210 – 2 = 1022 địa chỉ host
Chi tiết các mạng con mới là:
- Mạng thứ 0: tương tự bước 1, ta có ngay kết quả là 50.68.16.0/22 - Mạng thứ 1 là:
Đổi số 1 ở hệ 10 sang nhị phân 1, tương tự trên, vì trường hợp này số bit gạch chân chỉ có 1 bit, ta không cần thêm bit 0 nữa; sử dụng chuỗi vừa được đổi ở dạng nhị phân là bit 1 , đem thay thế cho phần bit gạch chân trên, sau đó đổi ra hệ thập phân, kết quả mạng thứ 1 là:
Mạng ban đầu đem chia: 50.68.24.0/21
00110010.01000100.00011 0 00.00000000 , sau khi được thay thế là: 00110010.01000100.00011 1 00.00000000 , đổi ra thập phân được: 50.68.28.0/22
Kết luận tại bƣớc 2:
Lấy địa chỉ mạng thứ 0 là 50.68.24.0/22 đem cấp cho mạng yêu cầu 632 host; Và lấy mạng thứ 1 là 50.68.28.0/22 đem chia tiếp (ở bước tiếp theo)
95
c) Bƣớc 3: Lấy địa chỉ 50.68.28.0/22 đem chia cho mạng yêu cầu 315 host
Tương tự trên, đầu tiên ta áp dụng công thức: 2h - 2 ≥ 315 -> h = 9
=> cần mượn số bit là n = 32 – 22 – 9 = 1
=> số mạng con mới là 21 = 2 mạng con, địa chỉ Subnet Mask mới của 2 mạng con này là 22 + 1 = /23; mỗi mạng con này sẽ có 2h – 2 = 29 – 2 = 510 địa chỉ host
Chi tiết các mạng con mới là:
+ Mạng thứ 0: tương tự bước trên, ta có ngay kết quả là 50.68.28.0/23 + Mạng thứ 1 là:
Đổi số 1 ở hệ 10 sang nhị phân 1, tương tự trên, vì trường hợp này số bit gạch chân chỉ có 1 bit, ta không cần thêm bit 0 nữa; sử dụng chuỗi vừa được đổi ở dạng nhị phân là bit 1 , đem thay thế cho phần bit gạch chân trên, sau đó đổi ra hệ thập phân, kết quả mạng thứ 1 là:
Mạng ban đầu đem chia: 50.68.28.0/22
00110010.01000100.000111 0 0.00000000 , sau khi được thay thế là: 00110010.01000100.000111 1 0.00000000 , đổi ra thập phân được: 50.68.30.0/23
Kết luận tại bƣớc 3:
Lấy địa chỉ mạng thứ 0 là 50.68.28.0/23 đem cấp cho mạng yêu cầu 315 host; Và lấy mạng thứ 1 là 50.68.30.0/23 đem chia tiếp (ở bước tiếp theo)
d) Bƣớc 4: Lấy địa chỉ 50.68.30.0/23 đem chia cho mạng yêu cầu 60 host
Tương tự trên, đầu tiên ta áp dụng công thức: 2h - 2 ≥ 60 -> h = 6
=> cần mượn số bit là n = 32 – 23 – 6 = 3
=> số mạng con mới là 23 = 8 mạng con, địa chỉ Subnet Mask mới của 2 mạng con này là 23 + 3 = /26; mỗi mạng con này sẽ có 2h – 2 = 26 – 2 = 62 địa chỉ host
Chi tiết các mạng con mới là:
+ Mạng thứ 0: tương tự bước trên, ta có ngay kết quả là 50.68.30.0/26 + Mạng thứ 1 là:
96
Đổi số 1 ở hệ 10 sang nhị phân 1, tương tự trên, vì trường hợp này số bit gạch chân chỉ có 1 bit, ta không cần thêm bit 0 nữa; sử dụng chuỗi vừa được đổi ở dạng nhị phân là bit 1 , đem thay thế cho phần bit gạch chân trên, sau đó đổi ra hệ thập phân, kết quả mạng thứ 1 là:
Mạng ban đầu đem chia: 50.68.30.0/23
00110010.01000100.0001111 0.00 000000, sau khi được thay thế là: 00110010.01000100.0001111 0.01 000000 , đổi ra thập phân được: 50.68.30.64/26
………. Vân vân ………..
ở đây ta sẽ tính thêm một mạng bất kỳ để giải thích rõ hơn việc đổi ra nhị phân sau đó thay thế chuỗi bit gạch chân. Ví dụ, ta cần tìm mạng thứ 2 trong tổng số 8 mạng con là bao nhiêu, ta làm như sau:
Mạng thứ 2 tương đương với việc đổi số 3 ở dạng thập phân (vì ta có tổng số 8 mạng, bắt đầu từ mạng thứ 0 đến mạng thứ 7 cho nên Mạng thứ 2 thì đồng nghĩa với số 3 trong tổng 8 mạng), đổi 3 (ở hệ 10) sang hệ nhị phân được: 11 (có 2 bit), vì số bit gạch chân là 3 nên ta phải thêm vào một bit 0 thành 011, bê nguyên chuỗi bit này thay thế hết các bit bị gạch chân trong mạng ban đầu:
00110010.01000100.0001111 0.00 000000, sau khi được thay thế là: 00110010.01000100.0001111 0.11 000000 , đổi ra thập phân được: 50.68.30.192/26 (là địa chỉ của mạng thứ 2)
Kết luận tại bƣớc 4:
Lấy địa chỉ mạng thứ 0 là 50.68.30.0/26 đem cấp cho mạng yêu cầu 60 host; Và lấy mạng thứ 1 là 50.68.30.64/26 đem chia tiếp (ở bước tiếp theo)
e) Bƣớc 5: Lấy địa chỉ 50.68.30.64/26 đem chia cho mạng yêu cầu 2 host
Tương tự trên, đầu tiên ta áp dụng công thức: 2h - 2 ≥ 2 -> h = 2
=> cần mượn số bit là n = 32 – 26 – 2 = 4
=> số mạng con mới là 24 = 16 mạng con, địa chỉ Subnet Mask mới của 16 mạng con này là 26 + 4 = /30; mỗi mạng con này sẽ có 2h – 2 = 22 – 2 = 2 địa chỉ host
97
Chi tiết các mạng con mới là:
+ Mạng thứ 0: tương tự bước trên, ta có ngay kết quả là 50.68.30.64/30 Các mạng tiếp theo, nếu cần có thể tính tương tự trên.
Kết luận tại bƣớc 5:
98
KẾT LUẬN:
- Địa chỉ mạng sau khi sử dụng kỹ thuật VLSM để đem phân chia cho các mạng có yêu cầu theo đề bài là:
Subne t Name Neede d Size Allocate
d Size Address Mask Dec Mask
Assignable Range Broadcast Mạng 4 1200 2046 50.68.16. 0 /21 255.255.248.0 50.68.16.1 - 50.68.23.25 4 50.68.23.25 5 Mạng 2 632 1022 50.68.24. 0 /22 255.255.252.0 50.68.24.1 - 50.68.27.25 4 50.68.27.25 5 Mạng 5 315 510 50.68.28. 0 /23 255.255.254.0 50.68.28.1 - 50.68.29.25 4 50.68.29.25 5 Mạng 3 220 254 50.68.30. 0 /24 255.255.255.0 50.68.30.1 - 50.68.30.25 4 50.68.30.25 5 Mạng 1 60 62 50.68.31. 0 /26 255.255.255.1 92 50.68.31.1 - 50.68.31.62 50.68.31.63
- Địa chỉ mạng dư thừa tính được ở các bước sẽ được dùng cho việc cấp phát lần sau (ví dụ tăng thêm số người dùng internet, mở thêm chi nhánh công ty, …)
- Có thể sử dụng các ứng dụng phần mềm có sẵn trên Android hoặc IOS hoặc truy cập vào link:
99
Hình 5.7.
5.3.2. Kỹ thuật CIDR
Khi sử dụng VLSM các nên cố gắng phân bố các subnet liền nhau ở gần nhau để có thể tổng hợp địa chỉ. Trước 1997 không có tổng hợp địa chỉ hệ thống định tuyến xương sống của Internet gần như bị sụp đổ mấy lần. Do đó, trên Router cần phải có một cách nào đó để tổng hợp các tuyến, làm giảm kích thước bảng định tuyến và cách giải quyết chính là dùng CIDR.
VD, 1 công ty có 8 địa chỉ lớp C: 200.100.48.0/24 - 200.100.55.0/24, nếu sử dụng trong bảng định tuyến sẽ chiếm 8 entries, nhưng với cách dùng của CIDR, thì 8 địa chỉ đó chỉ biểu diễn bằng 1 địa chỉ duy nhất là 200.100.48.0/21
CIDR(Classless Interdomain Routing) là một cách để gộp(aggregation) các địa chỉ mạng lại thành một địa chỉ được biểu diễn bằng prefix mask(nghĩa là bằng số bit biểu diễn cho mặt nạ). Cách biểu diễn này không quan tâm đến địa chỉ thuộc lớp nào. CIDR khắc phục được vấn đề thiếu hụt địa chỉ và bảng định tuyến lớn.
100 Hình 5.8
Hình 5.8 là một ví dụ cho thấy sự tổng hợp địa chỉ lên các Router tầng trên. Thực chất tổng hợp địa chỉ là bài toán đi ngược lại bài toán chia địa chỉ theo VLSM. Nếu như ví dụ ở phần 1.1.4 là một bài toán đi từ một địa chỉ mạng lớn 192.168.1.0/24 chi thành nhiều tầng subnet nhỏ hơn thì bây giờ bài toán ở Hình 5.8 đi ngược lại, từ các subnet con tổng hợp lại thành subnet lớn hơn. Tổng hợp dẫn cho đến khi thành một địa chỉ mạng lớn 200.199.48.0/22 đại diện chung cho toàn bộ các subnet bên trong hệ thống.
Tương tự như VLSM các muốn thực hiện được tổng hợp địa chỉ thì phải chạy giao thức định tuyến không theo lớp địa chỉ như OSPF EIGRP vì các giao thức này có truyền thông tin về Subnet Mask đi kèm với địa chỉ IP subnet trong các thông tin định tuyến. Mặt khác muốn tổng hợp địa chỉ đúng thì khi chia địa chỉ theo VLSM để phân phối cho hệ thống mạng phải chi a theo cấu trúc phân cấp như v í dụ ở phần 1.1.4 và phân phối các subnet liền nhau ở cạnh tranh nhau trong cấu trúc mạng.
Sau đây là một số nguyên tắc cần nhớ:
1. Mỗi Router phải biết địa chỉ subnet cụ thể của tất cả các mạng kết nối trực tiếp vào nó. 2. Mỗi Router không cần phải gửi thông tin chi tiết về mỗi subnet của nó cho các Router khác nếu như nó có thể tổng hợp các subnet thành một địa chỉ đại diện được.
3. Khi tổng hợp địa chỉ như vậy bảng định tuyến của các Router tầng trên sẽ được rút gọn lại.
101
5.4. Giao thức định tuyến RIPv2
RIPv2 được phát triển từ RIPv1 nên nó vẫn có các đặc điểm như RIPv1.
♦ Là một giao thức định tuyến theo vectơ khoảng cách sử dụng số lượng Hop làm thông số định tuyến.