Что такое маска подсети?

Данный вопрос порой непонятен новичкам, кратко хочу рассказать что такое маска подсети и для чего она используется.

Для начала, нужно понять как работает адресация в сети ethernet.

Представим, что компьютер у нас в сети 192.168.0.0/24. Наш компьютер имеет адрес 192.168.0.2 а искомый компьютер имеет адрес 192.168.0.3. При его поиске, система проверяет, находимся мы в одной подсети, либо же нет. От этого зависит дальнейшее действие.

Если мы в одной подсети - идет широковещательный запрос всем устройствам в сети: у кого IP адрес 192.168.0.3 сообщите свой MAC адрес. Все устройства в сети получают этот пакет, если IP адрес не совпадает - отбрасывают. А вот получатель с данным адресом в ответ отправляет свой MAC адрес. Исходный компьютер (192.168.0.2) формирует пакет ethernet с MAC адресом получателя в заголовке, и отправляет его в сеть.

Коммутатор (он же свитч) получает тот пакет, рассылает во все порты в первый раз, и запоминает, за каким портом получатель, и в дальнейшем уже отправляет пакеты именно в этот порт для минимизации трафика. По этой причине коммутаторы называют устройствами второго (канального) уровня, так они работают с протоколом ARP и MAC адресами.

Посмотреть кэш сопоставления MAC и IP адреса можно набрав команду arp -a на домашнем компьютере.

Если же компьютер находится в другой подсети, то пакет отправляется в “шлюз по умолчанию”, который имеет таблицу маршрутизации, и знает куда передать пакет что бы достичь получателя, и работает на более высоком уровне 3, который называется сетевой.

Широковещательные пакеты передаются только в пределах широковещательного домена уровня 2. То есть тем устройствам, которые можно достичь по MAC адресу.

Так а что же такое маска? В данном примере маска записана как /24. В другом представлении это 255.255.255.0. А если перевести в двоичное представление. то это будет 11111111.11111111.11111111.00000000. Видим, что в начале у нас 24 единицы.

Единицы, это адрес сети. Наложив на адрес 192.168.0.2, получим сеть 192.168.0 (первые три октета). Все что дальше - адреса хостов в сети. То есть 192.168.0.0 это адрес сети. 192.168.0.255 широковещательный адрес. А диапазон 192.168.0.1-192.168.0.254 могут использовать оконечные устройства.