31-битная адресация
31-битная адресация — это схема адресации в компьютерных сетях и телекоммуникационных системах, в которой для идентификации узла или канала используется 31 бит вместо стандартных 32. Данная техника применялась в некоторых версиях протокола IP (в частности, в IPv4) и в цифровых телефонных сетях (ISDN) для оптимизации использования адресного пространства, обычно в контексте двухточечных соединений.
История
Понятие 31-битной адресации возникло в конце 1980-х — начале 1990-х годов, когда стало очевидно, что адресное пространство IPv4 (ограниченное примерно 4,3 миллиардами адресов) используется неэффективно. В частности, в локальных сетях с маршрутизацией, где не требовалась поддержка широковещательных запросов (broadcast), традиционные 32-битные подсети часто приводили к пустой трате ресурсов.
Изначально считалось, что для всех точек входа и выхода из сети (интерфейсов) необходимо использовать как минимум 32-битные адреса с сетевым префиксом и идентификатором хоста. Однако для соединений «точка-точка» (point-to-point) характерна ситуация, когда два маршрутизатора или коммутатора соединены напрямую, и им для общения нужен только один логический канал. Сохранять для такого канала пул из нескольких адресов (например, целую подсеть) было расточительно.
В 1993 году предложение по использованию 31-битной адресации для IPv4 было закреплено в стандарте RFC 3021 (под названием «Using 31-Bit Prefixes on IPv4 Point-to-Point Links»). Этот стандарт разрешил применять маски подсети 255.255.255.254 (или /31), что позволяло выделять только два адреса в подсети. Ранее, до принятия RFC 3021, маска /31 часто считалась запрещённой, так как якобы нарушала логику широковещательных доменов.
Техническая реализация
Суть метода
В традиционной IPv4-адресации (32-битной) адрес сети и адрес хоста жёстко разделены через маску подсети. Для соединения «точка-точка» обычно выделяют подсеть с маской /30, которая даёт 4 адреса: адрес сети, два используемых адреса (для каждого конца канала) и один широковещательный адрес. Из-за этого один канал занимает 4 адреса, хотя фактически используются только 2.
31-битная адресация (маска /31) использует только 1 бит для идентификации хостов, что даёт 2 возможных значения (0 и 1). В таком случае понятие «широковещательного адреса» в классическом смысле теряется — все биты хостовой части (кроме адреса сети) трактуются как уникальные идентификаторы интерфейсов. Конфликта не происходит, поскольку в канале «точка-точка» нет возможности для широковещательных рассылок между несколькими хостами — в сети всего два узла.
Формат адреса
При маске /31 из 32 бит IPv4-адреса 31 бит считается сетевой частью, а 1 младший бит — идентификатором хоста. Таким образом, для каждого интерфейса выделяется либо чётный, либо нечётный адрес (если сетевой префикс заканчивается на 0 или 1). Например:
- Подсеть: 10.0.0.0/31
- Интерфейс A: 10.0.0.0
- Интерфейс B: 10.0.0.1
Адрес 10.0.0.0 формально является адресом сети, а 10.0.0.1 — «широковещательным» адресом по старой терминологии, но в контексте /31 они оба — полностью легитимные адреса узлов. Маршрутизаторы, поддерживающие RFC 3021, умеют обрабатывать эти адреса без ограничений.
Поддержка в оборудовании
Технически поддержка 31-битной адресации реализована в большинстве современных маршрутизаторов и сетевых операционных систем (Cisco IOS, Juniper JunOS, Linux, Windows Server), но требует явного включения или корректной настройки. В некоторых старых системах использование маски /31 на интерфейсе считалось ошибкой, поэтому для обратной совместимости чаще применяли маску /30.
Применение
В сетях IPv4
Основная область применения 31-битной адресации — это двухточечные каналы между маршрутизаторами в крупных сетях (уровень доступа, агрегации, ядра). Она позволяет:
- Экономить до 50 % адресного пространства на каждом канале (вместо 4 адресов тратится 2).
- Уменьшать размер таблиц маршрутизации (при использовании /31 подсеть занимает один запись в таблице, а не несколько).
- Упрощать конфигурацию: не нужно помнить про широковещательный адрес.
Особенно это актуально для провайдеров, управляющих тысячами каналов связи (например, в сетях с протоколами OSPF или BGP). Например, магистральный канал между Москвой и Санкт-Петербургом может быть настроен как подсеть 10.0.0.0/31.
В цифровых телефонных сетях (ISDN)
В сетях ISDN применяется понятие 31-битной адресации в контексте каналов D (сигнализация) и B (данные). Традиционно в ISDN-канале (BRI или PRI) используется 30 или 31 информационный канал для передачи данных, но для адресации самих оборудований (TEI — Terminal Endpoint Identifier) может применяться 31-битный идентификатор, который кодирует до 2 миллиардов теоретических оконечных точек. Однако на практике используется 7–8-битная адресация для TEI. Понятие «31-битная адресация» в ISDN чаще встречается в старых спецификациях и не является основным способом идентификации.
Преимущества и недостатки
Преимущества
- Экономия адресного пространства: Для крупных сетей с тысячами двухточечных каналов экономия может составлять тысячи адресов.
- Упрощение администрирования: Не требуется отдельно настраивать broadcast-адрес и вычислять маски.
- Повышение предсказуемости маршрутизации: За счёт уменьшения количества подсетей снижается нагрузка на маршрутизаторы.
Недостатки
- Совместимость: Старое оборудование (до 2000-х годов) могло некорректно обрабатывать маску /31, считая её невалидной. Сегодня эта проблема практически решена.
- Ограничение на тип канала: 31-битная адресация применима только для каналов «точка-точка». В многоточечных сетях (например, Ethernet с несколькими узлами) её использование приводит к конфликтам, так как два узла получают одинаковую сетевую часть, а третий адрес отсутствует для широковещания.
- Трудности для некоторых протоколов: Например, протоколы динамической маршрутизации (RIP, OSPF) могут требовать настройки дополнительных параметров для работы с /31.
Пример конфигурации
На маршрутизаторе Cisco IOS настройка интерфейса с 31-битной адресацией выглядит следующим образом:
`` interface GigabitEthernet0/0 ip address 10.0.0.0 255.255.255.254 no ip redirects no ip unreachables ! ``
Для второго конца канала:
`` interface GigabitEthernet0/0 ip address 10.0.0.1 255.255.255.254 no ip redirects no ip unreachables ! ``
На обоих концах канала должен быть разрешён приём пакетов на адрес, который формально является широковещательным. В Cisco IOS для этого используется команда ip local-proxy-arp (если требуется ARP) или явное разрешение.
Связь с IPv6
В протоколе IPv6 (128-битная адресация) проблема неэффективного использования адресов менее актуальна. Однако для двухточечных каналов в IPv6 также существует аналог — использование префиксов /64, /127 или /126. Стандарт RFC 6166 (2008) рекомендует использовать для каналов «точка-точка» префиксы /127, что концептуально близко к 31-битной адресации IPv4. В IPv6 также нет широковещательных адресов, а multicast-запросы заменяют broadcast.
Источники
- RFC 3021 — Using 31-Bit Prefixes on IPv4 Point-to-Point Links (2000).
- RFC 6166 — IPv4 and IPv6 Point-to-Point Links (2010).
- Cisco Press: «IP Addressing Fundamentals» (2001), глава 9 «Point-to-Point Links».
- Стефанова, М. Сети и телекоммуникации. — М.: Издательство ДМК, 2004. — С. 88–90.
- Сетевые протоколы: ISDN (ITU-T I.430, I.431).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →