Thứ tư, 12/03/2014 | 00:00 GMT+7

Subnet là gì, mạng con là gì?

Hiểu về mạng là một phần cơ bản của việc cấu hình các môi trường phức tạp trên internet. Bài viết này thảo luận về một số khái niệm cụ thể hơn liên quan đến việc thiết kế hoặc tương tác với các máy tính nối mạng. Cụ thể, ta sẽ đề cập đến các lớp mạng, mạng con và ký hiệu CIDR để nhóm các địa chỉ IP.

Trong hướng dẫn trước, ta đã xem qua một số thuật ngữ mạng cơ bản . Bạn nên xem qua hướng dẫn đó đảm bảo đã quen thuộc với các khái niệm được trình bày ở đó.

Địa chỉ IP

Mọi vị trí hoặc thiết bị trên mạng phải có địa chỉ , khi ta đề cập đến một địa chỉ trên mạng Internet, ta đang nói về một địa chỉ IP. Bên cạnh đó có một địa chỉ khác là địa chỉ MAC Address, nó có ý nghĩa trong mạng cục bộ và nằm ở tầng dưới so với địa chỉ IP trong mô hình mạng TCP/IP phố biến đang sử dụng. Ở  đây ta sẽ bàn về địa chỉ IP.

Địa chỉ IP cho phép truy cập tài nguyên mạng thông qua network interface (card mạng hay giao tiếp mạng). Một máy tính muốn giao tiếp với một máy tính khác qua địa chỉ IP. 

Có nhiều mạng và chúng kết nối với nhau thành mạng Internet, mỗi địa chỉ IP phải là duy nhất trên mạng của nó. Các mạng có thể được tách biệt với nhau và chúng có thể được nối với nhau để các thiết bị kết nối được. Một hệ thống được gọi là  Network Address Translation (NAT), cho phép các địa chỉ được ánh xại khi các gói đi qua biên giới các mạng để cho phép chúng tiếp tục đến đích chính xác.
Nghe có vẻ phức tạp, đơn giản như Số nhà, một phố có thể có cùng một số  số nhà, hay thành phố có cùng một vài tên phố. Tổ chức mạng IP cũng vậy. Mỗi Số nhà tương đương một địa chỉ IP, để gửi thông tin đến số nhà đó, ta sẽ đi qua các các đường phố. Ta thấy sự tương ứng giữa đường phố - là một mạng, thành phố - là một mạng lớn hơn chứa các mạng con trong đó là các phố... 
 

Sự khác biệt giữa IPv4 và IPv6

Có hai bản sửa đổi của giao thức IP được thực hiện rộng rãi trên các hệ thống ngày nay. IPv4, là phiên bản thứ tư của giao thức, hiện là thứ mà phần lớn các hệ thống hỗ trợ. Bản sửa đổi mới hơn, thứ sáu, được gọi là IPv6, đang được triển khai thay thế những hạn chế của không gian địa chỉ IPv4.

Địa chỉ IPv4 là địa chỉ 32 bit. Mỗi byte, hoặc đoạn 8 bit của địa chỉ, được chia cho một dấu chấm và thường được biểu thị bằng số 0-255. Mặc dù những con số này thường được biểu thị bằng số thập phân để giúp con người hiểu được, mỗi phân đoạn thường được gọi là một octet để thể hiện thực tế rằng nó là đại diện của 8 bit.

Địa chỉ IPv4 điển hình trông giống như sau:

192.168.0.5

Giá trị thấp nhất trong mỗi octet là 0 và giá trị cao nhất là 255.

Ta cũng có thể biểu thị điều này trong hệ nhị phân để hiểu rõ hơn về bốn bộ tám sẽ trông như thế nào. Ta sẽ phân tách mỗi 4 bit bằng một khoảng trắng để có thể đọc được và thay thế các dấu chấm bằng dấu gạch ngang:

1100 0000 - 1010 1000 - 0000 0000 - 0000 0101

Nhận thức rằng hai định dạng này đại diện cho cùng một số sẽ rất quan trọng để hiểu các khái niệm sau này.

Mặc dù có một số khác biệt khác về giao thức và chức năng nền của IPv4 và IPv6, sự khác biệt đáng chú ý nhất là không gian địa chỉ. IPv6 biểu thị địa chỉ dưới dạng số 128 bit.
Số lượng IPv4 là 2^32 khoảng 4 tỷ, còn số lượng IPv6 là 2^128 lớn hơn rất nhiều.

Để thể hiện dải địa chỉ mở rộng này, IPv6 thường được viết dưới dạng tám đoạn gồm bốn chữ số thập lục phân. Số thập lục phân đại diện cho các số 0-15 bằng cách sử dụng các chữ số 0-9, cũng như các số a-f để biểu thị các giá trị cao hơn. Địa chỉ IPv6 điển hình có thể trông giống như sau:

1203:8fe0:fe80:b897:8990:8a7c:99bf:323d

Bạn cũng có thể thấy những địa chỉ này được viết ở định dạng nhỏ gọn. Các-luật của IPv6 cho phép bạn loại bỏ bất kỳ số 0 ở đầu nào khỏi mỗi octet và thay thế một dải đơn lẻ của các group số 0 bằng dấu hai chấm kép (: :).

Ví dụ: nếu bạn có một group trong địa chỉ IPv6 trông giống như sau:

...:00bc:...

Thay vào đó, bạn có thể chỉ cần nhập:

...:bc:...

Để minh họa trường hợp thứ hai, nếu bạn có một phạm vi trong địa chỉ IPv6 với nhiều group là số 0, như sau:

...:18bc:0000:0000:0000:00ff:...

Bạn có thể thu gọn điều này như vậy (cũng loại bỏ các số 0 ở đầu của group như ta đã làm ở trên):

...:18bc::ff...

Mặc dù IPv6 đang trở nên phổ biến hơn mỗi ngày, nhưng trong hướng dẫn này, ta sẽ khám phá các khái niệm còn lại bằng cách sử dụng địa chỉ IPv4 vì nó dễ thảo luận hơn với không gian địa chỉ nhỏ hơn.

Các lớp (class) địa chỉ IPv4 và dải địa chỉ riêng

Địa chỉ IP thường được tạo từ hai thành phần riêng biệt. Phần đầu tiên của địa chỉ được sử dụng để xác định mạng mà địa chỉ đó thuộc về. Phần sau đó được sử dụng để chỉ định một server cụ thể trong mạng đó.

Địa chỉ IPv4 theo truyền thống được chia thành năm “lớp-class” khác nhau, được đặt tên từ A đến E, nghĩa là để phân biệt các phân đoạn của không gian IPv4 có thể địa chỉ sẵn có. Chúng được xác định bởi bốn bit đầu tiên của mỗi địa chỉ. Bạn có thể xác định địa chỉ IP thuộc lớp nào bằng cách xem các bit này.

Đây là bảng dịch xác định các địa chỉ dựa trên các bit đầu của chúng:

  • Lớp A

    • 0— : Nếu bit đầu tiên của địa chỉ IPv4 là “0”, điều này nghĩa là địa chỉ đó là một phần của lớp A. Điều này nghĩa là bất kỳ địa chỉ nào từ 0.0.0.0 đến 127.255.255.255 đều thuộc lớp A.
  • Lớp B

    • 10– : Loại B bao gồm bất kỳ địa chỉ nào từ 128.0.0.0 đến 191.255.255.255 . Điều này đại diện cho các địa chỉ có "1" cho bit đầu tiên , nhưng không có "1" cho bit thứ hai .
  • Lớp C

    • 110- : Lớp C được định nghĩa là các địa chỉ nằm trong khoảng từ 192.0.0.0 đến 223.255.255.255 . Điều này đại diện cho tất cả các địa chỉ có "1" cho hai bit đầu tiên, nhưng không có "1" cho bit thứ ba .
  • Lớp D

    • 1110 : Lớp này bao gồm các địa chỉ có “111” là ba bit đầu tiên, nhưng là “0” cho bit tiếp theo. Dải địa chỉ này bao gồm các địa chỉ từ 224.0.0.0 đến 239.255.255.255 .
  • Lớp E

    • 1111 : Lớp này xác định địa chỉ từ 240.0.0.0 đến 255.255.255.255 . Bất kỳ địa chỉ nào bắt đầu bằng bốn bit “1” đều có trong lớp này.

Địa chỉ lớp D được dành riêng cho các giao thức multicast (đa truyền) là truyền gói tin cùng lúc với hàng loạt thiết bị trong mạng. Địa chỉ Lớp E được dành riêng cho việc sử dụng trong tương lai và thử nghiệm, và phần lớn không được sử dụng.

Theo truyền thống, mỗi lớp thông thường (AC) chia phần mạng và phần server của địa chỉ khác nhau để phù hợp với các mạng có kích thước khác nhau. Địa chỉ lớp A sử dụng phần còn lại của octet đầu tiên để đại diện cho mạng và phần còn lại của địa chỉ để xác định server. Điều này rất tốt cho việc xác định một vài mạng có nhiều server mỗi mạng.

Các địa chỉ lớp B sử dụng hai octet đầu tiên (phần còn lại của octet đầu tiên và toàn bộ thứ hai) để xác định mạng và phần còn lại để xác định các server trên mỗi mạng. Địa chỉ lớp C sử dụng ba octet đầu tiên để xác định mạng và octet cuối cùng để xác định các server trong mạng đó.

Dãy riêng dành riêng

Cũng có một số phần của không gian IPv4 được dành riêng cho các mục đích sử dụng cụ thể mang tính nội bộ trong một mạng riêng.

Một trong những phạm vi dành riêng hữu ích nhất là phạm vi loopback (truyền lại) được chỉ định bởi các địa chỉ từ 127.0.0.0 đến 127.255.255.255. Phạm vi này được sử dụng bởi mỗi server để kiểm tra kết nối mạng với chính nó. Thông thường, điều này được thể hiện bằng địa chỉ đầu tiên trong phạm vi này: 127.0.0.1.

Mỗi lớp bình thường cũng có một phạm vi bên trong chúng được sử dụng để chỉ định các địa chỉ mạng riêng. Ví dụ, đối với các địa chỉ lớp A, các địa chỉ từ 10.0.0.0 đến 10.255.255.255 được dành riêng cho việc gán mạng riêng. Đối với lớp B, phạm vi này là 172.16.0.0 đến 172.31.255.255. Đối với lớp C, phạm vi từ 192.168.0.0 đến 192.168.255.255 được dành riêng cho việc sử dụng riêng.

Bất kỳ máy tính nào không được kết nối trực tiếp với internet, nghĩa là không có địa chỉ trên Internet, đều có thể sử dụng các địa chỉ này theo ý muốn.

Có các dải địa chỉ bổ sung dành riêng cho các trường hợp sử dụng cụ thể. Bạn có thể tìm thấy một bản tóm tắt các địa chỉ dành riêng tại đây.

Netmasks và Subnet

Quá trình phân chia một mạng thành các phần nhỏ hơn được gọi là mạng subnetting. Điều này có thể hữu ích cho nhiều mục đích khác nhau và giúp cô lập các group server với nhau và xử lý chúng một cách dễ dàng.

Như ta đã thảo luận ở trên, mỗi không gian địa chỉ được chia thành một phần mạng và một phần dành cho server. Số lượng địa chỉ mà mỗi trong số này chiếm phụ thuộc vào lớp mà địa chỉ đó thuộc về. Ví dụ, đối với địa chỉ lớp C, 3 octet đầu tiên được sử dụng để mô tả mạng. Đối với địa chỉ 192.168.0.15 , 192.168.0 mô tả mạng và phần 15 mô tả server.

Theo mặc định, mỗi mạng chỉ có một mạng con, chứa tất cả các địa chỉ server được xác định bên trong. Mặt nạ mạng về cơ bản là một đặc tả về số lượng bit địa chỉ được sử dụng cho phần mạng. Mặt nạ mạng con là một mặt nạ mạng khác bên trong được sử dụng để phân chia mạng hơn nữa.

Mỗi bit của địa chỉ được coi là quan trọng để mô tả mạng phải được biểu diễn dưới dạng “1” trong mặt nạ mạng.

Ví dụ: địa chỉ mà ta đã thảo luận ở trên, 192.168.0.15 có thể được biểu thị như thế này, ở dạng nhị phân:

1100 0000 - 1010 1000 - 0000 0000 - 0000 1111

Như ta đã mô tả ở trên, phần mạng cho địa chỉ lớp C là 3 octet đầu tiên hoặc 24 bit đầu tiên. Vì đây là những bit quan trọng mà ta muốn lưu giữ, mặt nạ mạng sẽ là:

1111 1111 - 1111 1111 - 1111 1111 - 0000 0000

Điều này có thể được viết ở định dạng IPv4 bình thường là 255.255.255.0 . Bất kỳ bit nào là “0” trong biểu diễn nhị phân của mặt nạ mạng đều được coi là một phần của phần server của địa chỉ và có thể thay đổi. Tuy nhiên, các bit “1” là tĩnh đối với mạng hoặc mạng con đang được thảo luận.

Ta xác định phần mạng của địa chỉ bằng cách áp dụng thao tác bitwise AND giữa địa chỉ và mặt nạ mạng. Thao tác AND bitwise về cơ bản sẽ lưu phần mạng của địa chỉ và loại bỏ phần server. Kết quả của điều này trong ví dụ trên đại diện cho mạng là:

1100 0000 - 1010 1000 - 0000 0000 - 0000 0000

Điều này có thể được biểu thị bằng 192.168.0.0 . Sau đó, đặc điểm kỹ thuật của server là sự khác biệt giữa giá trị gốc này và phần server. Trong trường hợp , server là “ 0000 1111 ” hoặc 15 .

Ý tưởng của mạng con là lấy một phần không gian lưu trữ của một địa chỉ và sử dụng nó như một đặc điểm kỹ thuật mạng bổ sung để phân chia lại không gian địa chỉ.

Ví dụ: mặt nạ mạng là 255.255.255.0 như ta đã thấy ở trên để lại cho ta 254 server trong mạng (bạn không thể kết thúc bằng 0 hoặc 255 vì chúng được đặt trước). Nếu ta muốn chia điều này thành hai mạng con, ta có thể sử dụng một bit của phần server lưu trữ thông thường của địa chỉ làm mặt nạ mạng con.

Vì vậy, tiếp tục với ví dụ , phần mạng là:

1100 0000 - 1010 1000 - 0000 0000

Phần server là:

0000 1111

Ta có thể sử dụng bit đầu tiên của server để chỉ định một mạng con, nhằm tách một mạng ra thành các mạng con khác. Ta có thể làm điều này bằng cách điều chỉnh mặt nạ mạng con từ sau:

1111 1111 - 1111 1111 - 1111 1111 - 0000 0000

Về điều này:

1111 1111 - 1111 1111 - 1111 1111 - 1000 0000

Trong ký hiệu IPv4, điều này sẽ được biểu thị là 192.168.0.128 . Những gì ta đã làm ở đây là chỉ định bit đầu tiên của octet cuối cùng có ý nghĩa quan trọng trong việc định địa chỉ mạng. Điều này tạo ra hai mạng con một cách hiệu quả. Mạng con đầu tiên là từ 192.168.0.1 đến 192.168.0.127 . Mạng con thứ hai chứa các server 192.168.0.129 đến 192.168.0.255 .

Ta có thể nhận được nhiều mạng con hơn với cách trên.

Ký hiệu CIDR (Classless Inter-Domain Routing)

Một hệ thống được gọi là Định tuyến liên miền không phân lớp , hoặc CIDR, được phát triển như một giải pháp thay thế cho mạng con truyền thống. Ý tưởng là bạn có thể thêm một thông số kỹ thuật trong chính địa chỉ IP về số lượng bit quan trọng tạo nên phần định tuyến hoặc mạng.

Mục tiêu CIDR là để làm chậm sự cạn kiệt tài nguyên địa chỉ IPv4. 

Ví dụ: 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

Ví dụ: ta có thể thể hiện ý tưởng rằng địa chỉ IP 192.168.0.15 được liên kết với mặt nạ mạng 255.255.255.0 bằng cách sử dụng ký hiệu CIDR là 192.168.0.15/24 . Điều này nghĩa là 24 bit đầu tiên của địa chỉ IP đã cho được coi là có ý nghĩa đối với việc định tuyến mạng.

Điều này cho phép ta một số khả năng thú vị. Ta có thể sử dụng chúng để tham chiếu "supernet". Trong trường hợp này, ta muốn nói đến một dải địa chỉ bao hàm hơn mà mặt nạ mạng con truyền thống không thể thực hiện được. Ví dụ, trong mạng lớp C, như trên, ta không thể kết hợp các địa chỉ từ mạng 192.168.0.0192.168.1.0 vì mặt nạ mạng cho địa chỉ lớp C là 255.255.255.0 .

Tuy nhiên, bằng cách sử dụng ký hiệu CIDR, ta có thể kết hợp các khối này bằng cách tham chiếu đoạn này là 192.168.0.0/23 . Điều này chỉ định rằng có 23 bit được sử dụng cho phần mạng mà ta đang đề cập đến.

Vì vậy, mạng đầu tiên (192.168.0.0) có thể được biểu diễn như thế này trong hệ nhị phân:

1100 0000 - 1010 1000 - 0000 0000 - 0000 0000

Trong khi mạng thứ hai (192.168.1.0) sẽ như thế này:

1100 0000 - 1010 1000 - 0000 0001 - 0000 0000

Địa chỉ CIDR mà ta chỉ định cho biết 23 bit đầu tiên được sử dụng cho khối mạng mà ta đang tham chiếu. Điều này tương đương với một mặt nạ mạng là 255.255.254.0 hoặc:

1111 1111 - 1111 1111 - 1111 1110 - 0000 0000

Như bạn thấy, với khối này, bit thứ 24 có thể là 0 hoặc 1 và nó vẫn sẽ khớp, bởi vì khối mạng chỉ quan tâm đến 23 chữ số đầu tiên.

Về cơ bản, CIDR cho phép ta kiểm soát nhiều hơn việc giải quyết các khối địa chỉ IP liên tục. Điều này hữu ích hơn nhiều so với mạng con mà ta đã nói đến ban đầu.

Kết luận

Bạn đã có hiểu biết về cơ bản một số ý nghĩa mạng của giao thức IP. Mặc dù loại mạng này không phải lúc nào cũng trực quan và đôi khi có thể khó làm việc, nhưng điều quan trọng là phải hiểu những gì đang xảy ra để cấu hình phần mềm và các thành phần của bạn một cách chính xác.


Tags:

Các tin trước

Cài đặt và sử dụng yum repositories trên Centos-6 vps 2013-10-01
Sử dụng SSH để kết nối tới Remote Server trong Ubuntu 2013-09-10
Backup postgresql databases trên Ubuntu vps 2013-08-28
Sử dụng Cron để tự động hóa các công việc việc trên server 2013-08-23
Bảo mật postgresql trên Ubuntu vps 2013-08-22
Sử dụng sftp-to-securely-transfer-files với remote-server 2013-08-13
Quản trị packages trong Ubuntu và Debian với apt-get-apt-cache 2013-08-06
Sử dụng roles và quản lý cấp quyền trong postgresql trên vps 2013-08-05
Lệnh truy vấn SQL trong postgresql sử dụng select 2013-08-02
Các lệnh truy cấn quản lý bảng dữ liệu trong postgresql trên cloud-server 2013-08-01
Bảo mật MySQL và MariaDB Databases trên Linux VPS 2013-07-23