CIDR
Classless Inter-Domain Routing (CIDR) — это метод адресации и маршрутизации в компьютерных сетях, основанный на протоколе IP, который позволяет гибко делить пространство IP-адресов на подсети произвольного размера и агрегировать (объединять) маршрутные записи. Разработан в 1993 году как замена устаревшей классовой архитектуре адресации (Classful Networking), CIDR обеспечил более эффективное использование адресного пространства и снизил нагрузку на маршрутизаторы магистральных сетей.
История возникновения
Проблемы классовой адресации
В первоначальной архитектуре интернета (до 1993 года) использовалась классовая адресация, где IP-адреса были жёстко разделены на три основных класса: A, B и C. Сети класса A содержали 16 777 216 адресов, класса B — 65 536, класса C — 256. Этот подход приводил к неэффективному расходу адресов: организациям, которым требовалось более 256 адресов, выдавалась сеть класса B, в которой чаще всего оставалась огромная неиспользуемая часть адресного пространства. Кроме того, маршрутизаторы в глобальной сети должны были хранить записи обо всех этих сетях, что приводило к быстрому росту таблиц маршрутизации.
Разработка стандарта
В 1992 году Инженерный совет Интернета (IETF) создал рабочую группу для решения проблемы исчерпания адресного пространства и роста маршрутных таблиц. Результатом стал стандарт RFC 1517—1520, опубликованный в сентябре 1993 года. Метод получил название Classless Inter-Domain Routing, или бесклассовая междоменная маршрутизация. Одним из ключевых нововведений стала концепция префикса сети, задаваемого в формате «IP-адрес/длина маски».
Внедрение
Внедрение CIDR началось в 1994 году и шло поэтапно: сначала — на основных магистральных маршрутизаторах, затем — у региональных интернет-регистраторов (RIR) и провайдеров. К середине 1990-х годов CIDR стал обязательным стандартом для работы в глобальной сети.
Основные понятия и принципы
Префикс и маска подсети
В системе CIDR каждый IP-адрес сопровождается указанием длины префикса — числа бит, определяющих сетевую часть адреса. Длина префикса записывается после косой черты: например, 192.168.0.0/24 означает, что первые 24 бита (три октета) являются адресом сети, а оставшиеся 8 бит — адресом узла внутри этой сети. Маска подсети в такой записи — 255.255.255.0.
Деление на подсети (Subnetting)
CIDR позволяет делить крупные сети на подсети произвольного размера. Например, сеть 10.0.0.0/8 (размер — 16 777 216 адресов) может быть разделена на 256 подсетей /16 (по 65 536 адресов) или на 65 536 подсетей /24 (по 256 адресов). Для этого нужно просто изменять длину маски, не привязываясь к границам классов.
Агрегация маршрутов (Supernetting)
Обратная операция — объединение нескольких меньших сетей в одну большую — называется агрегацией или суперсетью. Если у провайдера есть диапазон 192.168.0.0/22, он может объявить о маршрутизации всего блока целиком, а не отдельных /24 подсетей. Это кардинально уменьшает размер таблиц маршрутизации в магистральных маршрутизаторах.
Запись и формат CIDR
Стандартная запись
Формат CIDR выглядит так: <IPv4-адрес>/<длина префикса>, где длина префикса — целое число от 0 до 32 для IPv4. Примеры корректной записи:
10.0.0.0/8172.16.0.0/12192.168.1.0/24
Для IPv6 длина префикса может быть от 0 до 128, например, 2001:db8::/32.
Эквивалентность маске подсети
Длина префикса напрямую связана с маской подсети (netmask):
/24— маска255.255.255.0/16— маска255.255.0.0/8— маска255.0.0.0/28— маска255.255.255.240(первые 28 бит — единицы)
Таблица соответствия длины префикса и количества адресов
| Длина префикса | Маска подсети | Число адресов узлов | Класс (для справки) |
|---|---|---|---|
| /32 | 255.255.255.255 | 1 | — (один хост) |
| /30 | 255.255.255.252 | 4 | — |
| /29 | 255.255.255.248 | 8 | — |
| /28 | 255.255.255.240 | 16 | — |
| /24 | 255.255.255.0 | 256 | C |
| /16 | 255.255.0.0 | 65 536 | B |
| /8 | 255.0.0.0 | 16 777 216 | A |
| /0 | 0.0.0.0 | ~4,3 миллиарда (весь IPv4) | — |
Примечание: Из общего числа адресов в подсети вычитаются два: широковещательный адрес (все единицы) и адрес самой сети (все нули). Например, в подсети /24 доступно 254 узла, а не 256.
Применение
Распределение адресов провайдерами
Региональные интернет-регистраторы (RIPE NCC, ARIN, APNIC и др.) выдают блочные диапазоны адресов провайдерам именно в формате CIDR. Провайдеры, в свою очередь, делят полученные блоки на более мелкие подсети для клиентов. Например, провайдер может получить блок /20 (4096 адресов) и выделить клиенту подсеть /27 (32 адреса).
Конфигурация сетей
CIDR повсеместно используется при настройке маршрутизаторов, межсетевых экранов, серверов DHCP и другого сетевого оборудования. Большинство современных протоколов (OSPF, BGP, RIP версии 2) поддерживают CIDR.
Оптимизация маршрутизации
Благодаря агрегации, операторы связи могут объявлять о своих адресных блоках всего несколькими записями. Например, провайдер с блоком /16 может не раскрывать внутреннюю структуру своей сети — он просто сообщает магистральным маршрутизаторам: «Все адреса из этого /16 находятся у меня».
Виртуализация и облачные вычисления
Платформы облачных вычислений (AWS, Google Cloud, Яндекс.Облако) при создании виртуальных частных облаков (VPC) используют CIDR для задания диапазона внутренних IP-адресов. Например, можно задать VPC с диапазоном 10.0.0.0/16, а затем разделить его на подсети /24 в разных зонах доступности.
Сравнение с классовой адресацией
| Параметр | Классовая адресация | CIDR |
|---|---|---|
| Фиксированные размеры сетей | Да (A, B, C) | Нет (любое число) |
| Запись | Только IP-адрес | IP-адрес/маска |
| Эффективность использования адресов | Низкая (много пропадает) | Высокая |
| Размер таблицы маршрутизации | Огромный | Меньше (благодаря агрегации) |
| Поддержка в современных протоколах | Нет | Да |
Ограничения и критика
Исчерпание адресов IPv4
CIDR лишь отсрочил, но не решил фундаментальную проблему нехватки IPv4-адресов. К 2011 году IANA распределила все блоки адресов верхнего уровня, а к 2020 году большинство региональных регистраторов исчерпали свои пулы. Решением стало внедрение протокола IPv6, где используется аналогичная система префиксов, но в значительно большем адресном пространстве (128 бит).
Сложность расчётов
Для расчёта подсетей CIDR вручную требуется знание двоичной арифметики. Хотя существуют онлайн-калькуляторы, начинающим администраторам может быть неочевидно, как найти широковещательный адрес или допустимый диапазон адресов узлов.
Несовместимость с устаревшими протоколами
Некоторые старые протоколы маршрутизации, такие как RIPv1 и IGRP, не поддерживают CIDR. Поэтому при использовании такого оборудования требуется особая конфигурация или полная замена.
Интересные факты
- Создатели CIDR — сотрудники IETF Филип Альмквист (Philipp Almquist) и Йон Постел (Jon Postel) — разработали метод всего за полтора года, причём Постел был одним из авторов самого протокола TCP/IP.
- Агрегация маршрутов в CIDR иногда называется супернетированием (supernetting), хотя этот термин чаще применяют к объединению нескольких сетей одного класса.
- В 1994 году в таблицах маршрутизации магистральных маршрутизаторов было более 100 000 записей. Благодаря CIDR к началу 2000-х годов число записей удалось сократить до ~80 000, несмотря на рост интернета в десятки раз.
Источники
- RFC 1518 — An Architecture for IP Address Allocation with CIDR
- RFC 4632 — Classless Inter-domain Routing (CIDR): The Internet Address Assignment and Aggregation Plan
- Douglas E. Comer, «Internetworking with TCP/IP», Vol. 1 (6th edition), 2013
- Andrew S. Tanenbaum, David J. Wetherall, «Computer Networks» (5th edition), 2011
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →