Multihoming — это практика подключения хоста или компьютерной сети к более чем одной сети. Это может быть сделано для повышения надежности или производительности.
Типичная хостовая или пользовательская сеть подключена только к одной сети. Подключение к нескольким сетям может повысить надежность, поскольку в случае сбоя одного соединения пакеты все равно могут быть направлены через оставшееся соединение. Подключение к нескольким сетям также может повысить производительность, поскольку данные могут передаваться и приниматься через несколько соединений одновременно, что увеличивает пропускную способность и, в зависимости от назначения, может быть более эффективным маршрутизировать через одну или другую сеть.
Существует несколько различных способов реализации многоадресности.
Один хост может быть подключен к нескольким сетям. Например, мобильный телефон может быть одновременно подключен к сети WiFi и сети 3G , а настольный компьютер может быть подключен как к домашней сети, так и к VPN . Многосетевому хосту обычно назначается несколько адресов, по одному на каждую подключенную сеть.
В классическом многоадресном режиме [1] [2] сеть подключена к нескольким провайдерам и использует свой собственный диапазон адресов (обычно из диапазона Provider Independent (PI)). Граничные маршрутизаторы сети взаимодействуют с провайдерами с помощью протокола динамической маршрутизации , обычно BGP , который объявляет диапазон адресов сети всем провайдерам. Если один из каналов выходит из строя, протокол динамической маршрутизации распознает сбой в течение нескольких секунд или минут и перенастраивает свои таблицы маршрутизации для использования оставшихся каналов, прозрачно для хостов.
Классический multihoming является дорогостоящим, поскольку он требует использования адресного пространства, которое принимается всеми провайдерами, публичного номера автономной системы (AS) и динамического протокола маршрутизации. Поскольку multihomed адресное пространство не может быть агрегировано, это приводит к росту глобальной таблицы маршрутизации. [3] [ failed verification ]
В этом подходе сеть подключена к нескольким провайдерам и назначено несколько диапазонов адресов, по одному для каждого провайдера. Хостам назначается несколько адресов, по одному для каждого провайдера. [4]
Многоадресность с несколькими адресами дешевле, чем классическая многоадресность, и может использоваться без какого-либо сотрудничества со стороны провайдеров (например, в домашней сети), но требует дополнительных технологий для выполнения маршрутизации: [5]
При использовании множественной адресации для повышения надежности необходимо принять меры по устранению любой единой точки отказа (SPOF):
Увеличивая количество используемых интерфейсов и каналов и делая маршрутизацию менее детерминированной, многосетевое подключение усложняет администрирование сети [ необходима ссылка ] .
Классический multihoming является доминирующей техникой для IPv4. Это требует, чтобы сеть имела свой собственный диапазон публичных IP-адресов и публичный номер AS.
Хотя многоадресность с несколькими адресами была реализована для IPv4, [6] она обычно не используется, поскольку реализации хостов не справляются с несколькими адресами на интерфейс, что требует использования «виртуальных интерфейсов». [7] Также возможно реализовать многоадресность для IPv4 с использованием нескольких шлюзов NAT . [8]
В IPv6 может использоваться как классическая многоадресность, так и многоадресность с несколькими адресами.
Пространство адресов, независимое от поставщика (PI), доступно в IPv6. [9] Этот метод имеет преимущество в том, что работает как IPv4, поддерживая балансировку трафика между несколькими провайдерами и поддерживая существующие сеансы TCP и UDP посредством переходов. Критики говорят, что увеличенный размер таблиц маршрутизации, необходимых для обработки множественной адресации таким образом, перегрузит текущее оборудование маршрутизатора. Сторонники говорят, что новое оборудование сможет справиться с увеличением за счет более дешевой памяти, которая падает в цене в соответствии с законом Мура . Сторонники также говорят, что это единственное жизнеспособное решение на данный момент, и философия « чем хуже, тем лучше » поддерживает идею о том, что лучше развернуть несовершенное решение сейчас, чем идеальное решение, когда будет слишком поздно.
Поскольку многие интернет-провайдеры отфильтровывают объявления маршрутов с небольшими префиксами, это, как правило, требует выделения большого IP-адреса «размером с интернет-провайдера», например /32, для обеспечения глобальной достижимости. Использование таких больших префиксов является неэффективным использованием адресного пространства IPv6; существует всего около 4 миллиардов префиксов /32. Однако с прагматической точки зрения выделение /32 эквивалентно по стоимости глобального адресного пространства выделению одного адреса IPv4, и это может быть приемлемо, если, как это кажется вероятным в обозримом будущем, количество многосетевых сайтов можно будет исчислять только миллионами, в отличие от многих миллиардов не-многосетевых конечных точек, которые, как ожидается, составят подавляющее большинство конечных точек IPv6. [ необходима цитата ] Некоторые региональные интернет-регистраторы (RIR), такие как RIPE, начали выделять /48 из определенного префикса для этой цели. RIPE выделяет независимые от провайдера адресные пространства IPv6 /48 или короче от 2001:0678::/29.
Для IPv6 реализована многоадресность с несколькими адресами. [6] [10] Для исходящего трафика требуется поддержка на хосте, независимо от протокола ( Multipath TCP , SCTP , QUIC и т. д.) или специфичная для IPv6 (например, SHIM6 ).