Первый октет уже указывает класс сети (1-127: A, 128-191: B, 192-223: C и т.д.). A, B или C подразумевают количество октетов для сети (соответственно 255.0.0.0, 255.255.0.0, 255.255.255.0), которое автоматически сообщает, сколько хостов разрешено для каждого класса сети.
Хотя это было исторически правдой. Это не было правдой в течение многих лет. Несколько лет назад 24.0.0.0/8 было разослано разным провайдерам. (Я считаю, что это было в основном для кабельных провайдеров.)
Даже когда это было верно для сетевых назначений, сетевые маски были необходимы для внутренних сетей, чтобы упростить маршрутизацию. Эффективная маршрутизация сети, подобной 10.0.0.0/8, требует разделения на более мелкие сети. Это может быть простая схема, использующая подразделения /16 и /8, но, скорее всего, это будет бесклассовое подразделение. Большие подсети обеспечивают более эффективное использование адресного пространства (более 99% из /24 доступно для устройств, в то время как доступно только 50% из /30.
Локальная сеть маршрутизируется непосредственно с устройства, а другие адреса передаются через маршрутизатор. Хосты с несколькими интерфейсами могут быть подключены к сетям разных размеров.
Для подсетей без многодомных хостов /24 содержит больше адресов, чем требуется. Большинство маршрутизаторов, с которыми я работал, имеют 24, 48 или 96 портов и могут поддерживаться подсетями /27, /26 или /25. Это позволяет использовать некоторые дополнительные адреса для DCHP и /или множественной адресации. Организации могут стандартизировать распределение подсетей /24 или /23 для маршрутизации.
Поскольку IPv4-адрес уже предоставляет информацию о сети и хосте, зачем нам все-таки нужна маска подсети?
Многие устройства используют маску по умолчанию /24, которая во многих случаях соответствует размеру локальной подсети (localnet), назначенной маршрутизатору. Это в равной степени применимо к классам A, B и C. Если размер подсети не соответствует подсети по умолчанию, требуется маска сети.
Если адреса указаны в формате CIDR, маску сети и сеть можно рассчитать по адресу. Если нет, сеть может быть рассчитана по адресу и маске сети. Невозможно надежно рассчитать маску сети из адреса и сети.
Предоставление адреса шлюза (маршрутизатора) для подсети позволяет настроить маршрут по умолчанию, позволяя выполнять маршрутизацию к адресам вне подсети.