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

«Что такое маска подсети?» — вопрос из категории Сети, который задают на 26% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Маска подсети (subnet mask) — это 32-битное число, которое определяет, какая часть IP-адреса относится к идентификатору сети, а какая — к идентификатору хоста. Это фундаментальное понятие для маршрутизации и сегментации сетей.

Как это работает:

  • Маска состоит из последовательных битов 1 (сеть) и 0 (хост).
  • Например, маска 255.255.255.0 (или /24 в нотации CIDR) означает, что первые 24 бита IP-адреса — это адрес сети, а оставшиеся 8 бит — адрес хоста.
  • Для адреса 192.168.1.10/24:
    • Сеть: 192.168.1.0
    • Доступные хосты: 192.168.1.1192.168.1.254
    • Широковещательный адрес: 192.168.1.255

Практическое применение в DevOps:

  1. Проектирование VPC/сетей: Разбиение большой сети (например, 10.0.0.0/16) на меньшие подсети (10.0.1.0/24, 10.0.2.0/24) для изоляции окружений (prod, staging) или сервисов.
  2. Безопасность: Настройка групп безопасности (Security Groups) и сетевых ACL (Access Control Lists) на основе диапазонов подсетей.
  3. Маршрутизация: Определение, является ли адрес назначения локальным (отправляется через коммутатор) или удаленным (отправляется на шлюз по умолчанию).

Пример расчета с ipcalc:

$ ipcalc 192.168.1.10/24
Address:   192.168.1.10        11000000.10101000.00000001.00001010
Netmask:   255.255.255.0 = 24  11111111.11111111.11111111.00000000
Wildcard:  0.0.0.255           00000000.00000000.00000000.11111111
=>
Network:   192.168.1.0/24      11000000.10101000.00000001.00000000
HostMin:   192.168.1.1         11000000.10101000.00000001.00000001
HostMax:   192.168.1.254       11000000.10101000.00000001.11111110
Broadcast: 192.168.1.255       11000000.10101000.00000001.11111111