6.2 KiB
status, type, tags, created, updated, aliases
| status | type | tags | created | updated | aliases | |||
|---|---|---|---|---|---|---|---|---|
| stable | concept |
|
2025-12-17 | 2026-05-07 |
|
VLSM
Стоит вспомнить про IP-адрес, а конкретно то, что существует две версии IPv4 и IPv6.
IP бывают публичные и приватные. Публичный адрес уникален, он виден всем в интернете. Каждый сайт глобальной сети имеет свой IP-адрес (белый). Устройства же также имеют публичный IP-адрес, но под ним же в сеть могут выходить ещё сотни устройств, т.к. это IP не конкретного устройства, а маршрутизатора, который эти устройства обслуживает.
Приватные же IP-адреса - это адреса, используемые в пределах одной сети, они могут повторяться в разрезе разных сетей, но в одной строго идентифицируют конкретное устройство. Стандартные диапазоны приватных сетей:
- 10.0.0.0-10.255.255.255
- 172.16.0.0 - 172.31.255.255
- 192.168.0.0 - 192.168.215.255
В период зарождения интернета, было принято делить IP-адреса в интернете на классы:
При этом, 0.0.0.0 используется для протокола DHCP, этот адрес присваивается новому устройству в сети и он отправляет широковещательный (broadcast) запрос на адрес 255.255.255.255, т.е. всем устройствам сети, в надежде найти DHCP-сервер.
127.*.*.* - используются для lookback-адресации (адресация на самом хосте).
IP-адрес, в сущности, имеет две части:
- Адрес сети
- Адрес узла, который определяется маской сети
Маска сети - это 32-битное число, где подряд идущие биты всегда равны единице. Вообще говоря, каждое десятичное число IP-адреса - это сумма степеней двойки.
Принадлежность адреса к классу определялась по первым битам. Для сетей класса A, первый бит всегда был равен 0, B - 10, C - 110. И, разумеется, за каждым классом закреплялась своя маска подсети:
- A -> 255.0.0.0
- B -> 255.255.0.0
- C -> 255.255.255.0
Со временем стало ясно, что система классов не особо эффективно использует адреса. Поэтому мир перешел на CIDR (Classless Inter-Domain Routing) или, проще говоря, бесклассовую адресацию.
Однако, даже это не решило проблему полностью. Отделу бухгалтерии в крупной фирму надо выделить сеть с адресом 192.168.1.0/24, при этом в отделе всего 25 хостов, значит 229 адресов остаются неиспользованными. 192.168.1.0 - адрес сети 192.168.1.255 - широковещательный адрес.
Есть формула для вычисления кол-ва занятых адресов в указанной сети:
H = 2^{n}-2,\ \text{где H - число хостов, n - число бит, отведенных под номер хоста}
Например, в адресе 192.168.1.0 - первые 24 бита 192.168.1 - определяются номер сети, а остальные 8 бит .0 - номер конкретного устройства, поэтому 2^{8}-2 = 254 хоста.
Вспоминаем про деление на подсети. Это не только позволяет экономить адресное пространство, но и дает дополнительную безопасность, т.к. пользователи одной подсети не могут слушать трафик другой подсети. Вдобавок, мы можем увеличивать количество широковещательных доменов, сокращая широковещательный трафик.
В сегментировании сети используется маска сети с переменной длиной VLSM (Variable Length Subnet Mask). Суть состоит в том, что вам выделяют пул (диапазон) адресов и надо их распределить так, чтобы никто не мог перехватить трафик, но и всем досталось, как минимум, по одному адресу.
Выделением IP-адресов занимается организация IANA (Internet Assigned Numbers Authority). Она делегирует права на выделение региональным регистраторам, которые выделяют адреса национальным регистраторам. Например, для Европы, региональным является RIPE. А те делят адреса между провайдерами.
IANA -> Региональные регистраторы - Национальные регистрации -> Провайдеры
192.168.25.0/24, где 24 - кол-во единиц в маске. 255.255.255.0
Для определения количества подсетей: N = 2^{n}, где N - число подсетей, а n - число бит, заимствованных из хостовой части IP-адреса.