Первое, что необходимо знать и понимать сетевому специалисту, это что такое адрес, сеть и маска подсети. Без понимания этих слов и их значений нету дороги дальше в мир коммуникационных сетей.
Сначала была сеть. Звучит как в библии, неправда ли? Так вот, чтобы распознавать узлы в сети им назначали адреса. IP адрес любого хоста в интернете или какой-нибудь локальной сети состоит с четырех октетов. Например, адрес моего компьютера — 192.168.0.2, а адрес моего роутера — 192.168.0.1. Каждый октет — это десятичное число размером с байт, то есть 2 в степени 8. Октет имеет минимальное значение 0, максимальное 255. Таким образом, в сети может быть 255*255*255*255 хостов. Вроде, большое число, но, как вы возможно слышали, оно уже исчерпывается. IP адрес также можно записать в шестнадцатеричном варианте как MAC-адреса, а можно и в двоичном варианте. Например, адрес 192.168.0.1 в двоичном варианте записывается так: 11000000.10101000.00000000.00000001.
Для того, чтобы как-то структурировать сети, их поделили на классы. Классы сетей были введены в 1981 году на заре рождения интернета. Тогда никто еще не беспокоился о возможности исчерпания адресного пространства. Именовали принцип класификации словом «classful». Всего использвалось пять классов сетей: A, B, C, D, E. Первые три класса для адресации сетей, другие два имели специальное назначение. В таблице показана структура классов сетей.
Класс А
0 |
N сети |
N узла |
Класс В
1 |
0 |
N сети |
N узла |
Класс С
1 |
1 |
0 |
N сети |
N узла |
Класс D
1 |
1 |
1 |
0 |
адрес группы multicast |
Класс Е
1 |
1 |
1 |
1 |
0 |
зарезервирован |
- Если адрес начинается с 0, то сеть относят к классу А, и номер сети занимает один байт, остальные 3 байта интерпретируются как номер узла в сети. Сети класса А имеют номера в диапазоне от 1 до 126. (Номер 0 не используется, а номер 127 зарезервирован для специальных целей.) В сетях класса А количество узлов должно быть больше 216 , но не превышать 224.
- Если первые два бита адреса равны 10, то сеть относится к классу В и является сетью средних размеров с числом узлов 28 — 216. В сетях класса В под адрес сети и под адрес узла отводится по 16 битов, то есть по 2 байта.
- Если адрес начинается с последовательности 110, то это сеть класса С с числом узлов не больше 28. Под адрес сети отводится 24 бита, а под адрес узла — 8 битов.
- Если адрес начинается с последовательности 1110, то он является адресом класса D и обозначает особый, групповой адрес — multicast. Если в пакете в качестве адреса назначения указан адрес класса D, то такой пакет должны получить все узлы, которым присвоен данный адрес.
- Если адрес начинается с последовательности 11110, то это адрес класса Е, он зарезервирован для будущих применений.
Но понятие класса сети использовалось недолго в силу того, что необходимо было економически грамотно использовать адреса в сетях, которые при подходе как у classful очень быстро заканчивались. К примеру, сетей класса А можно было бы построить только 127 штук. И если не все адреса сети были использованы, то они просто пропадали. В связи с этим в 1993 году была введена безклассовая адресация — Classless Inter-Domain Routing (CIDR). На смену классам сетей пришли маски, которые позволили разбивать сети на подсети (которые тоже являются сетями). Маска подсети существует для разделения сетей на логические подсети. Если быть точней, то маска определяет сколько хостов, с какими адресами может быть в данной подсети. Для таких хостов не нужно маршрутизации, обмен данными осуществляется на уровне коммутации.
Итак, по CIDR адрес состоит из двух логических частей — номера сети и номера хоста. Для того, чтобы определить номер сети и номер узла, необходимо на двоичную запись адреса хоста наложить двоичную запись маски подсети. Например, если у нас адрес хоста 192.168.0.1, а в двоичном варианте 11000000.10101000.00000000.00000001 и маска подсети 255.255.255.0, а в двоичном варианте 11111111.11111111.11111111.00000000, и применить к этим числам побитовое «AND», а потом дополнить пустые октеты нулями, то получим соответственно результат: 11000000.10101000.00000000.00000000 и 00000000.00000000.00000000.00000001. В десятеричном варианте записи будем иметь соответственно: 192.168.0.0 и 0.0.0.1. Первое значение это номер сети, а второе — номер узла. Если не использовать понятия масок, то наш адрес можно отнести к классу С так как адрес сети относится к классу C (начинается на 110).
Стандартным классам сетей могли бы соответствовать следующие маски:
- Класс A — 255.0.0.0
- Класс B — 255.255.0.0
- Класс C — 255.255.255.0
Итак, подведем итоги. Classful делит сети на классы A, B, C, D, E. В таблице приведены диапазоны номеров сетей, соответствующих каждому классу сетей.
Класс |
Наименьший адрес |
Наибольший адрес |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A |
1.0.0.0 |
126.0.0.0 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
B |
128.0.0.0 |
191.255.0.0 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
C |
192.0.0.0. |
223.255.255.0 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
D |
224.0.0.0 |
239.255.255.255 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
E |
240.0.0.0 |
247.255.255.255 |
С 1993 года classful не используется, введена CIDR, которая предусматривает маски подсетей. Маска подсети определяет номер сети и номер хоста. Результаты определяются наложением двоичных записей адреса и маски и применение операции «И» над ними.
Таблица соответствия префиксов и масок по CIDR:
адресов битов префикс класс маска
1 0 /32 255.255.255.255
2 1 /31 255.255.255.254
4 2 /30 255.255.255.252
8 3 /29 255.255.255.248
16 4 /28 255.255.255.240
32 5 /27 255.255.255.224
64 6 /26 255.255.255.192
128 7 /25 255.255.255.128
256 8 /24 1C 255.255.255.0
512 9 /23 2C 255.255.254.0
1K 10 /22 4C 255.255.252.0
2K 11 /21 8C 255.255.248.0
4K 12 /20 16C 255.255.240.0
8K 13 /19 32C 255.255.224.0
16K 14 /18 64C 255.255.192.0
32K 15 /17 128C 255.255.128.0
64K 16 /16 1B 255.255.0.0
128K 17 /15 2B 255.254.0.0
256K 18 /14 4B 255.252.0.0
512K 19 /13 8B 255.248.0.0
1M 20 /12 16B 255.240.0.0
2M 21 /11 32B 255.224.0.0
4M 22 /10 64B 255.192.0.0
8M 23 /9 128B 255.128.0.0
16M 24 /8 1A 255.0.0.0
32M 25 /7 2A 254.0.0.0
64M 26 /6 4A 252.0.0.0
128M 27 /5 8A 248.0.0.0
256M 28 /4 16A 240.0.0.0
512M 29 /3 32A 224.0.0.0
1024M 30 /2 64A 192.0.0.0
2048M 31 /1 128A 128.0.0.0
4096M 32 /0 256A 0.0.0.0