Subnetting ! 1) Basic Các bạn đã biết, địa chỉ IP là gì và cấu tạo của nó, cũng như chức năng của nó. Trong một dãy địa chỉ IP có 2 địa chỉ được dành riêng và không được gán cho các host. Đó là địa chỉ tượng trưng cho network hay 1 segment hay 1 subnet và địa chỉ broadcast. Ví dụ: địa chỉ IP 192.168.1.0 sẽ có phần network field hay còn gọi là Network ID là 192.168.1., còn phần host field là .0…. Như vậy 192.168.1 là đại diện cho 1 mạng lớp C có địa chỉ là 192.168.1, nó bao gồm tất cả các địa chỉ từ 192.168.1.0 tới 192.168.1.255. Do đó, người ta dùng địa chỉ đầu tiên 192.168.1.0 ( network number ) để đại diện dãy địa chỉ 192.168.1.0 tới 192.168.1.255 và địa chỉ broadcast là 192.168.1.255. Như vậy, khi cho 1 địa chỉ IP, như 192.168.1.0 thì chỉ có dãy địa chỉ từ 192.168.1.1 tới 192.168.1.254 là được gán cho các host. Tại sao địa chỉ IP 192.168.1.0 có thể đại diện cho 1 dãy địa chỉ từ 192.168.1.0 tới 192.168.1.255 ? : thứ nhất, là do quy ước… thứ hai, phần host field chiếm 1 byte, do đó ta có (2 mũ 8 địa) = 256 ( từ 0 tới 255 ) chỉ có thể có… Nhưng bỏ đi hai địa chỉ dành riêng ( như nói ở trên ) thì ta có (2 mũ 8 - 2) = 254 địa chỉ để gán cho các host. Tại sao haji hay dùng từ host vậy ? : để đại diện cho tất cả các thiết bị điện tử có thể gán địa chỉ IP trong một mạng như printer, laptop, PC, interface in router, switch… 2)Subnet là gì ? Nói nôm na, “sub” là phụ, “net” là network …. Dzậy thì subnet là “network phụ” hay nói đúng hơn nó là một network con của một network chính. Chắc hẳn, trong chúng ta, ai cũng đã từng nghe qua câu nói chia để trị, dùng để chia những vấn đề lớn thành những vấn đề phụ và giải quyết các vấn đề phụ đó… Nói một cách so sánh thì nó giống như công việc WMC trong môn Công nghệ phần mềm nâng cao mới học xong học kỳ vừa rồi… Việc cũng tương tư trong mạng, đối với một mạng lớn, người quản trị chia chúng thành những mạng con cho dễ quản lý, mỗi mạng con này là một broadcast domain và collision domain khác nhau, vì thế chúng ( các mạng con hay ) được nối với nhau bằng router… Do đó, mỗi mạng con sẽ có một network number đại diện cho mạng con đó ( như tên của mỗi người ấy mà ). Nhưng trong thực tế, nếu ta có một địa chỉ lớp C ( có khả năng có 254 host trong mạng đó ) nhưng công ty của chúng ta cần phải chia ra 3 mạng con ( subnet ) và mỗi subnet chỉ cần khoảng 15 host… Vậy chẳng lẽ mỗi subnet là một địa chỉ IP lớp C à ( quá lãng phí )… Trong khi tổng số host tối đa của 3 subnet đó là khoảng 45 host << 254 host có thể có khi dùng một địa chỉ lớp C… Do đó, ta có thể chia địa chỉ lớp C đó ra để dùng cho các subnet. Vì trong computer sử dụng hệ tính nhị phân, nên số subnet chia được là một bội số của 2, ví dụ như 2, 4, 6, 8… Dzậy thì địa chỉ lớp C đó, ví dụ 192.168.1.0 là một mạng chính, còn các subnet khác là các mạng phụ ( nói nôm na í mà, tại vì các subnet có địa chỉ IP là từ địa chỉ trên mà ra cả )… Để làm sao cho router phân biệt được đâu là địa chỉ nào là thuộc subnet nào và làm cách nào người ta nhìn vào một địa chỉ IP thì biết nó thuộc subnet nào và cách chia subnet thì người ta dùng một subnet mask. Khi này, trong một địa chỉ mạng bao gồm trong đó phần network field, subnet field và host field… Phần network field thì “ vũ như cẩn “, phần subnet field là lấy một phần của host field ban đầu (để cho biết đó là subnet thứ mấy ) và phần còn lại sau khi mượn là host field. 3) Subnetworks Giả sử ta có địa chỉ IP 192.168.1.0 cho 2 subnet thì ta phải mượn 2 bit trong phần host field để chia cho subnet…Như vậy, ta có 2 bit cho subnet ( 2 mũ 2 = 4 subnets )và 6 bit cho phần host field, nên mỗi subnet có 64 địa chỉ IP.( 2 mũ 6 = 64 ). Trong đó, loại đi hai địa chỉ dành riêng là network number và broadcast address, nên mỗi subnet chỉ còn lại 62 địa chỉ IP có thể gán cho host trong mỗi subnet thôi. Mỗi subnet có network number cách nhau là 64 ( cách nhau 64 IP address ). Ví dụ: Cho địa chỉ IP 192.168.1.0, ta mượn hai bit làm subnet, thì ta có: Subnet 0 : 192.168.1.0 Subnet 1 : 192.168.1.64 Subnet 2 : 192.168.1.128 Subnet 3 : 192.168.1.192 Trong đó, subnet 0 và subnet 3 không dùng được do: ** subnet 0 có chứa địa chỉ 192.168.1.0 là địa chỉ đại diện cho toàn mạng (3 subnet ) nên không dùng, vì có thể gây nên lầm lẫn ( chỉ là quy ước ) ** subnet 1 có chứa địa chỉ 192.168.1.255 là địa chỉ broadcast của toàn mạng nên cũng không dùng. Như vậy trong 4 subnet trên, ta chỉ sử dụng được 2 subnet mà thôi ! Nhưng ở đây ta lại cần sử dụng tới 3 subnet. Vậy phải làm cách nào ? ( Bàn ra ngoài 1 chút : trong thực tế, người ta có thể sử dụng subnet 0 này bằng cách khai báo trên router lệnh: Router (config)# ip subnet-zero ) Trong 4 subnet trên, sau khi ghi ra network number của từng subnet thì ta dễ dàng xác định được dãy địa chỉ của từng subnet và địa chỉ broadcast address của từng subnet ( là địa chỉ cuối cùng ứng với dãy địa chỉ của từng subnet ) Trong ví dụ trên, ta có: Subnet 0 : 192.168.1.0 – 192.168.1.63 trong đó 192.168.1.63 là broadcast address của subnet 0 Subnet 1 : 192.168.1.64 – 192.168.1.127 trong đó 192.168.1.127 là broadcast address của subnet 1. Subnet 2 : 192.168.1.128 – 192.168.1.191 trong đó 192.168.1.191 là broadcast address của subnet 2. Subnet 3: 192.168.1.192 – 192.168.1.255 trong đó 192.168.1.255 là broadcast address của subnet 3 ( theo lý thuyết ) nhưng nó cũng là broadcast address của mạng 192.168.1.0 nên người ta bỏ subnet 3 và sử dụng 192.168.1.255 là broadcast address của toàn mạng 192.168.1.0… Chú ý: Như vậy, khi chia subnet thì ta có thể mượn tối thiểu là 2 bit và tối đa là 6 bit để chia subnet… ****Có ai giải thích được là tại sao không ?**** == Khi mượn bit để chia subnet thì ta phải mượn bắt đầu từ trái qua phải, tính từ bit đầu tiên của host field. 4) Subnet mask ( Extended network prefix ) --Có cấu trúc cũng giống như địa chỉ IP, nghĩa là dài 32 bits, chia thành 4 octets. Nó thường đi kèm với một địa chỉ IP để xác định xem phần nào trong địa chỉ IP là network field ( bao gồm network position ban đầu + subet field ). --Trong subnet mask, thì toàn bộ network field được biểu diễn bằng 1s ở dạng binary, còn host field thì bằng 0s ở dạng binary. Ví dụ: Như ví dụ trên, ta có: 192.168.1.0, ta mượn 2 bit ở host field để chia subnet, vậy phần host field có dạng: xx000000. Vậy thì subnet mask tương ứng sẽ là: 11111111 11111111 11111111 11000000, trong đó thì 3 octet đầu toàn là 1s vì đó là phần network positions ( Class C ), 2 bit đầu tiên của host position là 1s vì đó bây giờ là phần subnet field ( ta mượn 2 bit ) còn phần host field còn lại được biểu diễn là 0s. Viết ở dạng thập phân thì subnet mask của ta là : 255.255.255.192… Vậy, ta viết địa chỉ IP như sau: 192.168.1.0 255.255.255.192 hay 192.168.1.0/26 ( có nghĩa là 26 bit đầu tiên tính từ trái qua là 1s ). Viết như vậy, thì người ta có thể hiểu là admin đã mượn 2 bit để chia subnet. Còn nếu ta viết: 192.168.1.0 255.255.255.0 hay 192.168.1.0/24 thì người ta hiểu là địa chỉ này chưa chia subnet. ( toàn bộ phần network field tương ứng với mỗi Class là 1s ở dạng binary ). . Subnetting ! 1) Basic Các bạn đã biết, địa chỉ IP là gì và cấu tạo của nó, cũng