vault backup: 2026-05-24 15:03:28
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
---
|
||||
status: stable
|
||||
type: concept
|
||||
tags:
|
||||
- network
|
||||
- networking
|
||||
created: 2025-12-17
|
||||
updated: 2026-05-07
|
||||
title: VLSM
|
||||
---
|
||||
|
||||
# VLSM
|
||||
Стоит вспомнить про [[IP-адрес]], а конкретно то, что существует две версии IPv4 и IPv6.
|
||||
|
||||
IP бывают _публичные_ и _приватные_. Публичный адрес уникален, он виден всем в интернете. Каждый сайт глобальной сети имеет свой IP-адрес (_белый_). Устройства же также имеют публичный IP-адрес, но под ним же в сеть могут выходить ещё сотни устройств, т.к. это IP не конкретного устройства, а маршрутизатора, который эти устройства обслуживает.
|
||||
|
||||
Приватные же IP-адреса - это адреса, используемые в пределах одной сети, они могут повторяться в разрезе разных сетей, но в одной строго идентифицируют конкретное устройство. Стандартные диапазоны приватных сетей:
|
||||
|
||||
1. 10.0.0.0-10.255.255.255
|
||||
2. 172.16.0.0 - 172.31.255.255
|
||||
3. 192.168.0.0 - 192.168.215.255
|
||||
|
||||
В период зарождения интернета, было принято делить IP-адреса в интернете на классы:
|
||||
|
||||

|
||||
|
||||
При этом, `0.0.0.0` используется для протокола DHCP, этот адрес присваивается новому устройству в сети и он отправляет **широковещательный** (_broadcast_) запрос на адрес `255.255.255.255`, т.е. всем устройствам сети, в надежде найти DHCP-сервер.
|
||||
|
||||
`127.*.*.*` - используются для **lookback**-адресации (адресация на самом хосте).
|
||||
|
||||
IP-адрес, в сущности, имеет две части:
|
||||
|
||||
1. Адрес сети
|
||||
2. Адрес узла, который определяется маской сети
|
||||
|
||||
**Маска сети** - это 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-адреса.
|
||||
|
||||

|
||||
Reference in New Issue
Block a user