Что такое маска подсети
Что проверяют
Базовую сетевую грамотность. Бэкендеру она нужна каждый раз, когда он правит списки доступа, настраивает сеть контейнеров или разбирается, почему сервис видит соседа, но не видит шлюз.
Как отвечать
Маска подсети это тридцать два бита, в которых старшие единицы отмечают сетевую часть адреса, а нули хостовую. Единицы идут подряд, поэтому маску коротко записывают числом единиц: 255.255.255.0 это то же самое, что /24.
Адрес сети получается побитовым И адреса и маски. Для 192.168.1.10 с маской /24 сеть это 192.168.1.0, номер узла десять, широковещательный адрес 192.168.1.255.
Число адресов равно двум в степени количества нулей маски, два из них зарезервированы под адрес сети и широковещательный, поэтому в /24 помещается двести пятьдесят четыре узла. Чем длиннее префикс, тем меньше подсеть: /25 делит её пополам.
Практический смысл: узел накладывает маску на свой адрес и на адрес получателя. Сетевые части совпали, значит собеседник в том же сегменте и кадр уйдёт напрямую; не совпали, пакет уйдёт на шлюз.
В Java это всплывает при разборе записи CIDR для фильтров доступа. Считать удобно на int, но помнить, что он знаковый: сдвигать нужно беззнаково, а сравнивать через перевод в long, иначе адреса из верхней половины диапазона уедут в минус.
Где спотыкаются
Путают маску с классами адресов и говорят «сеть класса C» про любую /24. Классовая адресация давно не действует, длина префикса задаётся маской и бывает любой, а не только /8, /16 и /24.
Забывают про зарезервированные адреса и обещают в /24 двести пятьдесят шесть узлов. Ещё чаще путаются на краю диапазона: /30 оставляет два пригодных адреса, а /31 на двухточечных каналах используется целиком.
Считают, что одинаковая маска у двух узлов означает общую сеть. Значение имеет не сама маска, а результат её наложения: при разных сетевых частях узлы не увидят друг друга, даже если маска у них совпадает до бита.