В предыдущей статье шла речь о переводе чисел в различные системы счислений, что поможет нам разделять сетевую и хостовую части для различного масштаба сетей, определять максимальное количество устройств(хостов) в сети, определять адрес сети и широковещательный адрес, и т.п. Об этом всем и пойдет речь в данной статье. Так как мы будем обсуждать и работать с IPv4 адресами – начнем с теории и потом плавно перейдем к практике.
1. IP-адреса
IP-адрес – это число, которое позволяет (должно) уникально идентифицировать узел компьютерной сети. Одним словом – это идентификатор с которым вы можете лазить по сетям и обмениваться информацией с различными сервисами и устройствами. Адрес представляет собой четыре октета (8 двоичных разрядов) разделенных точкой – общая длинна 32 бита.
Сам по себе IP-адрес состоит из сетевой и хостовой частей, по которой определяется номер сети и номер узла. Для определения этих параметров используется два вида адресации:
- Классовая
- Бесклассовая
1.1 Классовая адресация
Сначала все сети строились используя только этого вид адресации, поскольку никто не думал, что пул адресов так быстро иссякнет. Здесь номер сети и узла определялись используя классы, в которых по первым битам можно было определить номер сети, а все остальное отводилось на узел (рис. 1.1.1).
Рисунок 1.1.1 – Распределение битов в классовой адресации
В классовой адресации все сети делились на 5 классов. Каждый класс имеет свой диапазон адресов, но не все адреса из данного диапазона можно использовать. Многие из них зарезервированы (рис. 1.1.2).
Рисунок 1.1.2 – Особенности классовой адресации
С этой таблицы можно увидеть диапазоны адресов каждого из классов, маску сетей для каждого класса, доступное количество хостов и сетей и диапазон некоторых зарезервированных адресов по каждому из классов (список всех зарезервированных адресов можно найти в rfc3330).
Каждый из А, В, С классов сетей имеет диапазон адресов, которые используются в локальных сетях и относятся к частным (private). Вот эти диапазоны:
10.0.0.0/8 10.0.0.0 — 10.255.255.255
172.16.0.0/12 172.16.00 — 172.31.255.255
192.168.0.0/16 192.168.0.0 — 192.168.255.255
Любой из этих диапазонов можно использовать в локальных сетях, но если использовать классовую адресацию, то минимальное количество узлов в сети может быть – 254, если брать класс С. И когда у нас ситуация, что нужно в одной сети иметь, к примеру, 500 компьютеров, то нужно уже резервировать класс В, и брать маску 16 с 65534 доступными IP – чего нам вообще не нужно. В связи з этим (и не только этим), и стали переходить на бесклассовою адресацию.
1.2 Бесклассовая адресация
Данный вид адресации еще называют CIDR (Classless Inter-Domain Routing). В отличии от классовой (длинна маски фиксирована по октетам), здесь можно сэкономить IP-адреса используя маски переменной длинны (VLSM — variable length subnet mask). В этом случаи на 500 компьютеров можно резервировать любой класс сети (А, В, С), но с маской – 255.255.254.0 (префикс — /23). Диапазон адресов будет следующим:
10.0.0.0 – 10.0.1.255
172.16.0.0 – 172.16.1.255
192.168.0.0 – 192.168.1.255
В каждом из диапазонов у нас будет 510 хостов. О том, как это подсчитать пойдет речь в следующей главе.
1.3 Планирование сети
После того, как мы немного познакомились с сетями, пора переходить к практике. При планировании сети предприятия нужно в первую очередь определиться с классом сети и возможным количеством конечных узлов сети (компьютеров, сетевых принтеров, wi-fi роутеров, телефонов, ноутбуков, виртуальных машин, и т.п.). Класс не столько важен, сколько максимальное количество хостов, которое определяется по формуле:
Х = 2n — 2, (1.3.1)
Где,
Х – это количество хостов в подсети;
n – количество бит отведенных на хостовую часть;
Мы отнимаем 2, потому что в каждой из сетей резервируется два адреса:
- Адрес сети (все биты отведенные на хостовую часть равны нулю)
- Широковещательный адрес (все биты отведенные на хостовую часть равны единице)
Каждую сеть можно разбить на подсети. Количество подсетей считается по формуле:
С = 2n, (1.3.2)
Где,
С – это количество подсетей;
n – количество бит отведенных на адрес сети;
Еще, при расчете, нам понадобится заранее подготовленная таблица с масками сетей в двоичной и, соответственно, десятичной форме и указанием максимального количества хостов в сети (рис. 1.3.1).
Рисунок 1.3.1 – Маски подсетей в десятичной и двоичной форме с соответствующим префиксом и максимальным количеством хостов
Давайте помечтаем, что у нас огромное предприятие с 250000 хостами, которые должны получить уникальный IP-адрес. Используя рис. 1.3.1 видим, что для этого нам нужна маска 255.252.0.0, которая покроет чуть больше 250 000 адресов. Префикс сети равен 14. Префикс – это краткое обозначение количества единичек в сетевой части.
Теперь возьмем, к примеру, IP-адрес с предыдущей статьи с префиксом 14 (98.251.16.138/14) и на его базе определим:
- Адрес сети
- Широковещательный адрес
- Адрес первого хоста сети
- Адрес последнего хоста сети
- Максимальное количество хостов в сети
- Количество сетей
Рисунок 1.3.2 – Подсчет параметров сети
Теперь объясню, что здесь было сделано. Для начала мы перевели каждый октет из десятичной формы в двоичную и провели грань между адресом сети и хостовой частью используя маску. В результате получили адрес сети (красное) и хостовую часть в двоичной форме. Теперь нужно перевести адрес сети в десятичную форму, для этого пользуемся предыдущей статьей и у нас получается адрес – 98.248.0.0. Теперь таким же образом узнаем широковещательный адрес (где вся хостовая часть равна единичкам) и получаем – 98.251.255.255. Оба этих адреса мы не можем использовать как адреса хоста, так как они зарезервированы уже. Теперь первый адрес хоста – это адрес сети плюс единичка (т.е. 98.248.0.1), а последний – это широковещательный адрес минус единичка (т.е. 98.251.255.254). Количество сетей и хостов определяем по формуле 1.3.1 и 1.3.2.
Вот и все.