Ответ
CIDR (Classless Inter-Domain Routing) — это метод бесклассовой адресации, который заменил устаревшую классовую систему (A, B, C). Он позволяет гибко определять размер сети с помощью записи IP-адрес/префикс, где префикс указывает количество бит в сетевой части адреса.
Как это работает:
Адрес 192.168.1.0/24 означает:
- Сетевой адрес:
192.168.1.0 - Маска подсети:
255.255.255.0(24 единичных бита слева) - Диапазон хостов:
192.168.1.1—192.168.1.254 - Широковещательный адрес:
192.168.1.255
Практическое применение в DevOps:
- Проектирование VPC/Cloud Networks: В AWS VPC я обычно создаю сеть
/16(например,10.0.0.0/16) и разбиваю её на публичные и приватные подсети размером/24в разных AZ.10.0.1.0/24 — public-subnet-a 10.0.2.0/24 — private-subnet-a 10.0.3.0/24 — public-subnet-b - Безопасность: CIDR-блоки используются в Security Groups и Network ACLs для точного контроля доступа. Например, разрешить SSH только из офиса:
Ingress: TCP/22, Source: 203.0.113.32/28. - Маршрутизация: В таблицах маршрутов указываются CIDR-назначения.
Полезные команды:
# Рассчитать сеть и диапазон (Linux)
$ ipcalc 10.0.1.32/27
Address: 10.0.1.32 00001010.00000000.00000001.001 00000
Netmask: 255.255.255.224 = 27
Network: 10.0.1.32/27 00001010.00000000.00000001.001 00000
HostMin: 10.0.1.33 00001010.00000000.00000001.001 00001
HostMax: 10.0.1.62 00001010.00000000.00000001.001 11110
Broadcast: 10.0.1.63 00001010.00000000.00000001.001 11111
Hosts/Net: 30 Ответ 18+ 🔞
Давай разберём эту тему, чтобы у тебя в голове всё встало на свои места, а не болталось как хуй в проруби. CIDR — это, по сути, отказ от тупой классовой системы, которая была придумана ещё когда трава была зеленее, а интернет — диковинкой. Вместо того чтобы делить сети на жёсткие классы A, B, C, как будто на дворе 2002-й год, мы получили гибкий инструмент.
Суть проще пареной репы:
Запись IP-адрес/префикс — это и есть наш волшебный ключ. Префикс — это просто количество единичек в маске подсети, которые мы не поленились посчитать. Возьмём классику: 192.168.1.0/24.
- Сеть:
192.168.1.0— это как адрес дома, где живут все хосты. - Маска:
255.255.255.0— потому что 24 бита слева — единицы. Остальные 8 — нули, для хостов. - Кто в доме живет: С
192.168.1.1по192.168.1.254. Первый адрес — шлюз обычно, последний — на широковещание. - Кричать на всех:
192.168.1.255— чтобы все в подсети услышали.
Где это в работе встаёт поперёк горла:
-
Проектируем сети в облаке (VPC): Берём, к примеру, здоровенную сеть
/16—10.0.0.0/16. Это овердохуища адресов. А потом режем её на аккуратные куски под разные зоны доступности. Как маньяк-повар.10.0.1.0/24 — public-subnet-a (публичная, в зоне А) 10.0.2.0/24 — private-subnet-a (приватная, в зоне А) 10.0.3.0/24 — public-subnet-b (публичная, в зоне B)И так далее. Главное — не накосячить с пересечениями, а то будет тебе хиросима и нигерсраки в маршрутизации.
-
Безопасность — наше всё: Security Groups и ACLs живут и дышат CIDR. Хочешь пустить SSH только из офиса? Пожалуйста:
Ingress: TCP/22, Source: 203.0.113.32/28. Точный, как удар вилкой в глаз. Никаких лишних дыр. -
Маршрутизация: В таблицах маршрутов ты именно CIDR-блоки и указываешь. "На сеть
10.10.0.0/16шли через такой-то интерфейс". Всё чётко.
Чтоб не считать в уме, есть инструменты: Запусти в консоли, и жизнь станет проще. Я серьёзно, терпения ноль ебать — считать эти биты руками.
# Рассчитать сеть и диапазон (Linux)
$ ipcalc 10.0.1.32/27
Address: 10.0.1.32 00001010.00000000.00000001.001 00000
Netmask: 255.255.255.224 = 27
Network: 10.0.1.32/27 00001010.00000000.00000001.001 00000
HostMin: 10.0.1.33 00001010.00000000.00000001.001 00001
HostMax: 10.0.1.62 00001010.00000000.00000001.001 11110
Broadcast: 10.0.1.63 00001010.00000000.00000001.001 11111
Hosts/Net: 30
Вот видишь? Взяли /27 — получили 30 адресов для хостов. Всё наглядно, ни хуя себе, как удобно. Главное — понять принцип, а дальше только практика. И да, не путай /32 с широковещательным адресом, а то сам от себя охуеешь, когда ничего не заработает.