Маршрутизация , зависящая от источника [1], также называемая маршрутизацией, зависящей от адреса источника ( SADR ), [2] - это метод маршрутизации , в котором решение о маршрутизации принимается путем просмотра адреса источника пакета в дополнение к адресу его получателя. Основное применение маршрутизации с привязкой к источнику - обеспечение дешевой формы множественной адресации без необходимости в адресах, не зависящих от провайдера, или в сотрудничестве с вышестоящими интернет-провайдерами.
Проблема
При традиционной маршрутизации следующего перехода пакет направляется только в соответствии с его пунктом назначения, к ближайшему маршрутизатору, который объявляет маршрут, соответствующий этому пункту назначения. Рассмотрим многодомную сеть конечных пользователей, подключенную к двум поставщикам услуг Интернета, BT&T и PacketCast; такая сеть обычно имеет два граничных маршрутизатора , каждый из которых подключен к одному поставщику услуг Интернета.
Оба граничных маршрутизатора объявляют маршрут по умолчанию, что означает, что они готовы принимать пакеты, предназначенные для Интернета. Если пакет с источником в сети BT&T маршрутизируется через граничный маршрутизатор PacketCast, PacketCast будет считать, что это поддельный пакет , и отбрасывает его в соответствии с BCP 38. [3]
Множественная адресация с маршрутизацией от источника
При маршрутизации, зависящей от источника , каждый граничный маршрутизатор объявляет зависящий от источника маршрут по умолчанию : маршрут, который применяется к пакетам, направленным в Интернет, но только в том случае, если их источник находится в заданном префиксе. В результате каждый граничный маршрутизатор привлекает только пакеты, адрес источника которых указан в префиксе этого провайдера.
Желательные изменения хоста
При маршрутизации, зависящей от источника, каждый интерфейс хоста имеет несколько адресов, по одному для каждого префикса, зависящего от поставщика. Для исходящего трафика программное обеспечение хоста должно выбрать правильный адрес источника. Для этого были предложены различные методы на сетевом уровне [4] над сетевым уровнем (см. Shim6 ) или с использованием методов многолучевого распространения на более высоких уровнях (см. Multipath TCP и Multipath Mosh [5] ).
Поддержка протоколов маршрутизации
В сети с одним пограничным маршрутизатором можно реализовать маршрутизацию для конкретного источника путем ручного управления таблицами маршрутизации. [6] При использовании нескольких маршрутизаторов в протоколе маршрутизации требуется явная поддержка маршрутизации, зависящей от источника.
По состоянию на начало 2016 года существует два протокола маршрутизации, которые реализуют поддержку маршрутизации, зависящей от источника:
- Протокол маршрутизации Babel поддерживает маршрутизацию от источника как для IPv4, так и для IPv6; [7] это реализовано для IPv6 в babeld и BIRD (более ранние версии babeld поддерживали исходную маршрутизацию для IPv4 [8] );
- Существует реализация IS-IS с поддержкой маршрутизации от источника только для IPv6. [9]
Набор протоколов IETF Homenet требует поддержки маршрутизации, зависящей от источника, в своем протоколе маршрутизации. [10]
Рекомендации
- ^ Матье Boutier; Юлиуш Хробочек (2015). Маршрутизация в зависимости от источника . Proc. Сеть IFIP 2015 . arXiv : 1403.0445 . Bibcode : 2014arXiv1403.0445B .
- ^ https://tools.ietf.org/html/draft-troan-homenet-sadr-01
- ^ RFC 2827
- ^ RFC 6724
- ^ Матье Бутье; Юлиуш Хробочек (2015). "Многопутевый UDP в пространстве пользователя в Мош". arXiv : 1502.02402 [ cs.NI ].
- ^ http://www.lartc.org/ , раздел 4.2
- ^ https://tools.ietf.org/html/draft-ietf-babel-source-specific-08
- ^ https://alioth-lists.debian.net/pipermail/babel-users/2021-April/003818.html
- ^ https://tools.ietf.org/html/draft-baker-ipv6-isis-dst-src-routing-07
- ^ RFC 7368 , раздел 3.2.4