Множественная адресация
Множественная адресация — это практика подключения хоста или компьютерной сети к более чем одной сети. Данный подход применяется с целью повышения надёжности или производительности работы системы.
Обычно отдельный хост или сеть конечного пользователя подключены только к одной сети. При множественной адресации, соединения с несколькими сетями повышают надёжность: при отказе одного из подключений данные продолжают передаваться через оставшиеся активные каналы. Помимо этого, множественная адресация может улучшить производительность благодаря возможности одновременной передачи данных по нескольким каналам, что увеличивает пропускную способность, а выбор маршрута через ту или иную сеть может быть оптимальнее в зависимости от назначения.
Варианты
Существует несколько способов реализации множественной адресации.
Множественная адресация на хосте
Отдельный хост может быть подключён к нескольким сетям одновременно. Например, мобильный телефон может подключаться как к сети Wi-Fi, так и к 4G. Настольный компьютер может быть подключён к домашней сети и к виртуальной частной сети. Как правило, множественный адресируемый хост получает несколько адресов — по одному на каждую из подключённых сетей.
Классическая множественная адресация
В классической схеме множественной адресации[1][2], сеть подключена к нескольким операторам и использует собственный диапазон адресов (обычно из независимого от провайдера адресного пространства — PI). Пограничные маршрутизаторы сети взаимодействуют с провайдерами с помощью динамического протокола маршрутизации, как правило, BGP (Border Gateway Protocol), анонсируя выделенный адресный диапазон всем провайдерам. В случае отказа одного из каналов динамический протокол обнаруживает сбой за считанные секунды или минуты и перестраивает маршрутизационные таблицы для использования оставшихся каналов, незаметно для конечных хостов.
Классическая множественная адресация требует существенных затрат: необходим диапазон адресов, принимаемый всеми провайдерами, публичный номер автономной системы (AS) и поддержка динамического протокола маршрутизации. Поскольку такие адресные пространства не агрегируются, это ведёт к росту глобальной таблицы маршрутизации[3].
Множественная адресация с несколькими адресами
В этом подходе сеть подключается к нескольким провайдерам и получает от каждого отдельный диапазон адресов. Хосты внутри сети также получают множество адресов — по каждому из провайдеров[4].
Множественная адресация с несколькими адресами дешевле классической и может применяться без участия провайдеров (например, в домашней сети), однако требует дополнительной технологии для корректной маршрутизации:[5]
- для входящего трафика хосты должны ассоциироваться с несколькими DNS-записями A или AAAA, чтобы быть достижимыми через всех провайдеров;
- для исходящего трафика необходимо, чтобы применялась техника, такая как маршрутизация по исходному адресу, а хосты обладали корректными политиками выбора исходного адреса.
Ограничения и особенности
При использовании множественной адресации для повышения надёжности необходимо устранить любые точки отказа:
- Внешние соединения: Каждый сетевой центр эксплуатации должен иметь несколько выходящих каналов к независимым провайдерам. Дополнительно, физическое размещение таких каналов должно быть достаточно разнесено, чтобы снизить риск одновременного повреждения (например, при случайном повреждении машинами типа экскаватор).
- Маршрутизаторы: маршрутизаторы и коммутаторы должны быть организованы так, чтобы ни одно устройство не контролировало все подключения хоста к сети. Например, если несколько интернет-каналов сводятся к одному пограничному маршрутизатору, то его отказ приведёт к потере связи, несмотря на избыточность провайдеров.
- Подключения хоста: «Надёжный» хост должен быть связан с сетью через несколько сетевых интерфейсов, подключённых к разным маршрутизаторам/коммутаторам. В идеале, задачи хоста должны быть дублированы на нескольких компьютерах с разными маршрутами в сеть.
- Реферирование к сущностям: Даже если хост доступен по сети, в ряде случаев необходима работоспособность «ссылочного» доступа, например — функционирование системы доменных имён. Если отказ отдельного элемента препятствует разрешению имени сервера, то он становится недоступным независимо от наличия сетевого подключения.
Увеличение числа интерфейсов и соединений, а также недетерминированная маршрутизация приводят к усложнению администрирования сети.
IPv4
Для IPv4 классическая схема множественной адресации является доминирующей: сеть должна иметь свой собственный публичный диапазон IP-адресов и номер автономной системы.
Хотя множественная адресация с несколькими адресами реализуема и для IPv4[6], она широко не применяется, так как реализации на хостах плохо обрабатывают несколько адресов на интерфейс (что требует использования «виртуальных интерфейсов»)[7]. Также возможно реализовать множественную адресацию для IPv4 с помощью нескольких шлюзов NAT[8].
IPv6
В IPv6 поддерживаются как классическая, так и множественная адресация с несколькими адресами.
Классическая множественная адресация
В IPv6 выделяется адресное пространство PI для независимых пользователей[9]. Этот подход аналогичен IPv4, поддерживает балансировку трафика между несколькими провайдерами и позволяет сохранять существующие TCP- и UDP-сессии при перестроении маршрутов. Критики отмечают, что увеличение размера таблиц маршрутизации может превысить возможности современных маршрутизаторов, но сторонники считают, что развитие аппаратуры и снижение стоимости памяти (в соответствии с законом Мура) позволит справиться с ростом таблиц. Также высказывается мнение, что это на данный момент единственное практически реализуемое решение, а философия «хуже — значит лучше» оправдывает внедрение неидеального варианта до появления идеального.
Из-за фильтрации маршрутов с малыми префиксами большинством провайдеров, для гарантированной глобальной достижимости требуется достаточно крупное «провайдерское» выделение — например, /32, что неэффективно расходует IPv6-пространство (примерно 4 миллиарда префиксов /32). Однако в пересчёте на масштаб IPv6 это допустимо, если общее число множественно адресуемых узлов продолжает исчисляться всего миллионами (по сравнению с миллиардами конечных точек IPv6, которым не требуется множественная адресация). Некоторые региональные интернет-регистраторы (например, RIPE) начали выделять /48-представления PI-адресов из специального диапазона 2001:0678::/29.
Множественная адресация с несколькими адресами
В IPv6 реализована множественная адресация с несколькими адресными префиксами[6][10]. Для исходящего трафика требуется поддержка на стороне хоста, как протокол-независимая (Multipath TCP, SCTP, QUIC и др.), так и специфичная для IPv6 (например, SHIM6).
Другие решения
Примечания
Литература
- Akella, A. Измерительный анализ множественной адресации // Proceedings of the 2003 conference on Applications, technologies, architectures, and protocols for computer communications : [англ.] / Akella, A., Maggs, B., Seshan, S. … [et al.]. — 2003. — P. 353–364. — ISBN 1-58113-735-4. — doi:10.1145/863955.863995.
- De Launois, C.; Bagnulo, M. (2006). “The paths toward IPv6 multihoming”. IEEE Communications Surveys & Tutorials [англ.]. 8 (2): 38—51. DOI:10.1109/COMST.2006.315853. S2CID 37377959.
- Hau, T.; Burghardt, D.; Brenner, W. (2011). “Multihoming, content delivery networks, and the market for Internet connectivity”. Telecommunications Policy [англ.]. 35 (6): 532—542. DOI:10.1016/j.telpol.2011.04.002.