Разбиение сети на подсети: VLSM
Допустим нам нужно отправить почтой посылку куда-то в Лондон. Что мы делаем? Идем в почту, берём специальный бланк и заполняем соответствующие поля. Отправитель Вася Пупкин, адрес: ул. Тверская, дом 40, кв. 36., Москва, Россия. Кому: Шерлок Холмс, Baker Street 221B, London, United Kingdom. То есть мы отправили посылку конкретному лицу, проживающему по конкретному адресу. Как и в реальном мире, в мире информационных технологий тоже есть своя адресация. В данном случае получателем выступает компьютер, за которым закреплён соответствующий IP адрес. IP aдрес это уникальный идентификатор устройства, подключённого к локальной сети или интернету.
На данный момент существуют две версии IP адресов: IP версии 4 (IPv4) и IP версии 6 (IPv6). Смысл создания новой версии заключается в том, что IP адреса в 4-ой версии уже исчерпаны. А новые устройства в сети появляются с огромной скоростью и им всем нужно выделать свой уникальный адрес.
IPv4 представляет собой 32-битное двоичное число. Удобной формой записи IP-адреса (IPv4) является запись в виде четырёх десятичных чисел (от 0 до 255), разделённых точками, например, 192.168.0.1. Но так как компьютеры понимают только двоичную систему исчисления, то указанный адрес преобразуют в двоичную форму - 11000000 10101000 00000000 00000000.
Длина же IPv6 адресов равна 128-битам. IPv6 адрес представляется в виде строки шестнадцатеричных цифр, разделенной двоеточиями на восемь групп, по 4 шестнадцатеричных цифр в каждой. Например: 2003:00af:cafe:3daf:1000:edaf:1001:afad. Каждая группа равна 16 битам в двоичном представлении.
IP адреса принято делить на публичные и приватные. Публичный адрес это адрес, который виден в Интернете. Все сайты в глобальной сети имеют публичный или "белый" IP адрес. Для merionet.ru он равен 212.193.249.136. Да и ваш компьютер тоже имеет публичный адрес, который можете просмотреть либо на роутере, либо на специальных сайтах, например 2ip.ru. Но в вашем случае под одним IP адресом в Интернет могут выходить 10, 50, 100 пользователей из вашей же сети. Потому что на самом деле это адрес не конкретного компьютера в сети, а маршрутизатора, через который вы выходите в сеть. Публичные адреса должны быть уникальны в пределах всего Интернета.
Приватные же адреса это такой тип адресов, которые используют в пределах одной локальной сети и не используют в Интернете. Существуют следующие диапазоны приватных IP адресов: 10.0.0.0-10.255.255.255, 172.16.0.0-172.31.255.255, 192.168.0.0-192.168.255.255. Посмотреть свой локальный приватный адрес можете либо в свойствах сетевого адаптера, либо в командной строке набрав команду ipconfig.
В начале зарождения Интернета IP адреса было принято делить на классы:
Класс | Начальный IP | Конечный IP | Число сетей | Число хостов |
Класс A | 0.0.0.0 | 127.255.255.255 | 126 | 16777214 |
Класс B | 128.0.0.0 | 191.255.255.255 | 16382 | 65536 |
Класс C | 192.0.0.0 | 223.255.255.255 | 2097150 | 254 |
Класс D | 224.0.0.0 | 239.255.255.255 | ||
Класс E | 240.0.0.0 | 254.255.255.255 |
При этом адрес 0.0.0.0 зарезервирован, он назначается хосту, когда он только что подключен к сети и не имеет IP адреса. Если в сети имеется DHCP сервер, то хост в качестве адреса источника отправляет адрес 0.0.0.0. Адрес 255.255.255.255 это широковещательный адрес. А адреса начинающиеся на 127 зарезервированы для так называемой loopback адресации.
Адреса класса D зарезервированы для мультикаст соединений, адреса класса E для исследований (не только крысы страдают от исследований).
IP адрес хоста имеет две части адрес сети и адрес узла. Где адрес сети, а где адрес узла - определяется маской сети. Маска сети это 32-битное число, где подряд идущие биты всегда равны 1. На самом деле каждое десятичное число IP адреса - это не что иное, как сумма степеней числа 2. Например, 192 это 1100000. Чтобы получить это значение переводим десятичное число в двоичное. Хотя это азы информатики, но подойдет любой калькулятор, даже встроенный в Windows:

А теперь посмотрим как мы получаем 192 из суммы степеней двойки:
1 * 27+1*26+0*25+0*24+0*23+0*27+0*21+0*20 = 1*27+1*26 = 128 + 64 = 192. И так каждый октет может включать в себя следующие числа:
128 64 32 16 8 4 2 1. Если в IP адресе есть место одной из указанных чисел, то в двоичном представлении на месте этого числа подставляется 1, если нет 0. В маске сети все подряд идущие биты должны быть равны 1.
Первый октет | Второй октет | Третий октет | Четвёртый октет |
255 | 255 | 255 | 0 |
11111111 | 11111111 | 11111111 | 00000000 |
Принадлежность адреса классу определяется по первым битам. Для сетей класса A первый бит всегда равен 0, для класса B 10, для класса С 110.
При классовой адресации за каждым классом закреплена своя маска подсети. Для класса А это 255.0.0.0, класса B 255.255.0.0, а для класса C 255.255.255.0.
Но со временем стало ясно, что классовая адресация не оптимально использует существующие адреса. Поэтому перешли на бесклассовую адресацию, так называемую Classless Inter-Domain Routing (CIDR), где любой подсети можно задать любую маску. Отличную от стандартной. При это, маску подсети можно увеличивать, но никак не уменьшать. Наверное не раз встречали адреса типа 10.10.121.25 255.255.255.0. Этот адрес по сути является адресом класса А, но маска относится к классу C.
Но даже в случае бесклассовой адресации наблюдается перерасход IP адресов. В маленьких сетях, где всего один отдел с 40-50 компьютерами это не очень заметно. Но в больших сетях, где нужно каждому отделу выделить свой диапазон IP адресов этот вопрос стоит боком. Например, бухгалтерии вы выделили сеть с адресом 192.168.1.0/24, а там всего 25 хостов. В указанной сети же 254 адресов. Значит 229 адреса остаются не используемыми.
На самом деле здесь 256 адресов, но первый 192.168.1.0 является адресом сети, а последний 192.168.1.255 — широковещательным адресом. Итого в распоряжении администратора 254 адреса. Количество доступных адресов хостов рассчитывается по формуле:
H = 2n − 2
Где H число хостов, n число бит отведенных под номер хоста. Например, 192.168.1.0 маска 255.255.255.0. Здесь первые 24 бита определяют номер сети, а оставшиеся 8 бит номер хоста. Исходя из этого, H=28-2 = 254.
Тут и вспоминаем про деление сетей на подсети. Кроме экономии адресного пространства, сабнеттинг дает еще и дополнительную безопасность. Трафик между сетями с разной маской не ходит, а значит пользователи одной подсети не смогут прослушать трафик пользователей в другой. Это еще и упрощает управление разрешениями в сети, так как можно назначать списки доступа и тем самым ограничивать доступ пользователей в критически важные сегменты сети.
С другой стороны, сегментирование сети позволяет увеличивать количество широковещательных доменов, уменьшая при этом сам широковещательный трафик.
В сегментировании сети используется такой подход как маска подсети с переменной длиной VLSM (Variable Length Subnet Mask). Суть состоит в том, что вам выделяют диапазон IP адресов, и вы должны распределить их так, чтобы никто не мог перехватить трафик другого и всем досталось хотя бы по одному адресу.
Выделением блоков IP адресов занимается организация IANA (Internet Assigned Numbers Authority ). Она делегирует права региональным регистраторам, которые в свою очередь выделяют блоки адресов национальным. Например, региональным регистратором для Европы является RIPE. А последние в свою очередь делят адреса, имеющиеся у них, между провайдерами.
Например, нам выделили адрес 192.168.25.0 с маской подсети 255.255.255.0.
Маску подсети можно указывать сокращенно: 192.168.25.0/24. 24 это число единиц в маске.
Нам как администраторам предприятия предстоит разделить их между четырьмя отделами, в которых по 50 хостов. Начинаем вычисления. Нам нужно 4 × 50 = 200 уникальных адресов. Но основная задача, пользователи должны быть в разных подсетях. Значит необходимо четыре подсети. Для определения количества подсетей в сети есть специальная формула:
N = 2n
Где N число подсетей, а n число бит заимствованных из хостовой части IP адреса. В нашем случае мы пока не позаимствовали ничего значить подсеть всего одна: 20 = 1. Нам же нужно четыре подсети. Простая математика нам подсказывает, что должны позаимствовать минимум 2 бита: 22 = 4. Итак, маска у нас становиться 255.255.255.192 или /26. Остальные 6 битов нам дают количество адресов равных 64 для каждой подсети, из которых доступны 62 адреса, что полностью покрывает нужду наших подсетей:
Сеть № | Число хостов | Маска подсети | Первый IP | Последний IP | Номер подсети | Широковещательный адрес |
Сеть 1 | 50 | 255.255.255.192 | 192.168.25.1 | 192.168.25.62 | 192.168.25.0 | 192.168.25.63 |
Сеть 2 | 50 | 255.255.255.192 | 192.168.25.65 | 192.168.25.126 | 192.168.25.64 | 192.168.25.127 |
Сеть 3 | 50 | 255.255.255.192 | 192.168.25.129 | 192.168.25.190 | 192.168.25.128 | 192.168.25.191 |
Сеть 4 | 50 | 255.255.255.192 | 192.168.25.193 | 192.168.25.254 | 192.168.25.192 | 192.168.25.255 |