Soft-Router (функция маршрутизации) [Документация VAS Experts]

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
dpi:dpi_components:router:start [2023/09/26 11:01] elena.krasnobryzhdpi:dpi_components:router:start [2024/05/20 12:58] (текущий) – [Поддержка LAG] elena.krasnobryzh
Строка 3: Строка 3:
  
 ===== Общее описание ===== ===== Общее описание =====
-<note tip>Подробнее о решении: [[https://www.youtube.com/watch?v=YgWU35Ay-0k|Обзор Роутера]].</note>+<note tip>Подробнее о решении: {{youtube>YgWU35Ay-0k?}}.</note>
 Сам СКАТ не занимается построением таблицы маршрутизации. Он делегирует эту работу проверенным специализированным инструментам, в примере [[dpi:dpi_components:router:start#внутренняя_архитектура_роутера|внутренней архитектуры роутера]] использован [[dpi:dpi_components:router:start#конфигурирование_роут-демона_bird_frr_etc|роут-демон BIRD]]. Роут-демон обрабатывает требуемые протоколы маршрутизации (BGP, OSPF и пр.) и по ним строит общую таблицу маршрутизации, которую загружает в ядро. СКАТ по этой таблице осуществляет маршрутизацию пакетов. Сам СКАТ не занимается построением таблицы маршрутизации. Он делегирует эту работу проверенным специализированным инструментам, в примере [[dpi:dpi_components:router:start#внутренняя_архитектура_роутера|внутренней архитектуры роутера]] использован [[dpi:dpi_components:router:start#конфигурирование_роут-демона_bird_frr_etc|роут-демон BIRD]]. Роут-демон обрабатывает требуемые протоколы маршрутизации (BGP, OSPF и пр.) и по ним строит общую таблицу маршрутизации, которую загружает в ядро. СКАТ по этой таблице осуществляет маршрутизацию пакетов.
  
Строка 30: Строка 30:
  
 ==== Общее описание VRF ==== ==== Общее описание VRF ====
 +<note>Статья в блоге: [[https://vasexperts.ru/blog/skat/vrf-lite-i-l3vpn-v-skat/|VRF Lite и L3VPN в СКАТ]]</note>
 <note tip>В СКАТ реализован VRF Lite — он разделяет таблицы маршрутизации, но не помещает трафик отдельного VRF в уникальный туннель (MPLS, VXLAN).</note> <note tip>В СКАТ реализован VRF Lite — он разделяет таблицы маршрутизации, но не помещает трафик отдельного VRF в уникальный туннель (MPLS, VXLAN).</note>
  
Строка 338: Строка 338:
 <code bash> <code bash>
 router_device { router_device {
-    device= + device= 
-     tap= + tap= 
-     peer= + peer= 
-     vrf=+ vrf=
  subnet=  subnet=
  subnet=  subnet=
-    subnet6=+ subnet6=
  subnet6=  subnet6=
 } }
Строка 548: Строка 548:
 <note tip>Секции ''lag'' в fastdpi.conf - это холодный параметр, требуется рестарт fastdpi при изменении описания LAG.</note> <note tip>Секции ''lag'' в fastdpi.conf - это холодный параметр, требуется рестарт fastdpi при изменении описания LAG.</note>
  
 +====ARP менеджмент====
 +
 +NeighborDB - это БД nexthop, которую обслуживает сам fastDPI: посылает ARP request для выяснения MAC-адреса nexthop, обновляет ARP кеш для этих nexthop. Для обновления используются следующие опции:
 +  * ''router_neighbor_lifetime'' — время жизни записи в ARP кеше, в секундах.\\ По истечении этого времени запись нужно обновить отправкой ARP request (ICMPv6 NDP в случае IPv6). Значение по умолчанию: 300 секунд
 +  * ''router_neighbor_refresh_timeout'' — время ожидания ответа на ARP request (сек). Значение по умолчанию: 3 секунды
 +  * ''router_neighbor_refresh_attempt'' — количество безуспешных попыток обновления, нужных для того чтобы перевести запись ARP-кеша в состояние Unreachable (недостижимая); другими словами, сколько подряд надо послать ARP Request без ответа, чтобы запись стала unreachable.\\ Значение по умолчанию: 10 попыток
 +  * ''router_neighbor_unreachable_refresh'' — после того, как запись становится Unreachable, fastDPI периодически пытается оживить её, посылая ARP Request. Данная опция задает этот период в секундах (по умолчанию 30 сек).
 +
 +Запись nexthop состоит из:
 +  * nexthop IP;
 +  * //Обязательно// — имя порта, через который осуществляется связь с этим nexthop (в случае LAG — один из портов, входящих в LAG);
 +  * //Опционально// — VLAN
 +  * //Опционально// — MAC-адрес nexthop. Записи с явно заданным MAC-адресом nexthop являются static ARP cache record — по ним никогда не посылается ARP-запросов IPv4 и IPv6 NeighborDB хранится в SDR в файле ''router.mdb''. SDR (System Data Repository) — это новая сущность наподобие UDR, но содержащая системные настройки. Каталог, где располагается SDR, задается новой опцией ''sdr_path'', по умолчанию это ''/var/db/dpisdr''.
 +
 +Управление NeighborDB (добавление/модификация/удаление записей) производится через команды CLI:
 +  * ''router neighbor dump'' — вывод полного списка всех загруженных записей и их внутреннего состояния
 +  * ''router neighbor dump db'' — вывод дампа БД router.mdb.
 +  * ''router neighbor add'' — добавление новой записи (нового nexthop) в NeighborDB.
 +  * ''router neighbor update'' — модификация существующей записи NeighborDB
 +  * ''router neighbor delete'' — удаление записи NeighborDB
 +  * ''router neighbor refresh'' — принудительное обновление (отправка ARP Request) MAC-адреса конкретного nexthop IP или всех nexthop в указанном VRF или всей NeighborDB
 +  * ''router neighbor purge'' — удаление всех записей NeighborDB (полная очистка NeighborDB).
 +
 +<note tip>Синтаксис каждой из этих команд см. ''fdpi_cli <command> ?''</note>
 +
 +**Приоритетность в ARP кеше**\\ 
 +С появлением NeighborDB в fastDPI появлились два независимых источника записей в ARP кеше:
 +  * [прежний] BIRD/FRR: fastDPI отлавливает взаимодействие BIRD/FRR с соседями и соотвественно заполняет свой ARP кеш для nexthop; fastDPI не обновляет статус таких записей отправкой ARP Request, а надеется на то, что это сделает BIRD/FRR
 +  * [новый] NeighborDB: fastDPI сам следит за актуальностью записей, своевременно отправляя ARP Request. **Записи NeighborDB имеют бОльший приоритет**, чем записи от BIRD/FRR.
 ===== Поддержка Multi-path routing (ECMP) ===== ===== Поддержка Multi-path routing (ECMP) =====
 В СКАТ 10.2 добавлена поддержка multi-path routing ([[https://en.wikipedia.org/wiki/Equal-cost_multi-path_routing|ECMP]]). В СКАТ 10.2 добавлена поддержка multi-path routing ([[https://en.wikipedia.org/wiki/Equal-cost_multi-path_routing|ECMP]]).
Строка 564: Строка 593:
     # Битовая маска     # Битовая маска
     # Значения:     # Значения:
-    #   - анонсировать адрес абонента в сторону subs +    #   0x00001 - анонсировать адрес абонента в сторону subs 
-    #   - анонсировать адрес абонента в сторону inet (если у абонента не подключен NAT) +    #   0x00002 - анонсировать адрес абонента в сторону inet (если у абонента не подключен NAT) 
-    #   - анонсировать NAT-подсети в сторону inet +    #   0x00004 - анонсировать NAT-подсети в сторону inet 
-    #   - анонсировать абонентские шлюзы (направление задается флагами 1 и 2)+    #   0x00008 - анонсировать абонентские шлюзы (направление задается флагами 1 и 2
 +    #   0x10000 - деанонсировать L3-абонента при наступлении acct idle (закрытие acct-сесси по idle timeout)
     # Значение по умолчанию: 0 - ничего никуда не анонсировать     # Значение по умолчанию: 0 - ничего никуда не анонсировать
 #router_subs_announce=0 #router_subs_announce=0
Строка 583: Строка 613:
 [СКАТ 10.2+] Если в fastdpi.conf задано ''nat_exclude_private=1'', то есть не применять NAT для пакетов "приватный IP -> приватный IP", то СКАТ **будет** анонсировать приватный адрес абонента с подключенным NAT в сторону inet, так как вышестоящий роутер должен знать маршрут до серого IP-адреса абонента. [СКАТ 10.2+] Если в fastdpi.conf задано ''nat_exclude_private=1'', то есть не применять NAT для пакетов "приватный IP -> приватный IP", то СКАТ **будет** анонсировать приватный адрес абонента с подключенным NAT в сторону inet, так как вышестоящий роутер должен знать маршрут до серого IP-адреса абонента.
  
 +<note>Описание параметров [[dpi:opt_cgnat:сgnat_settings:start#параметры_и_возможные_значения|по ссылке]]</note>
 ==== Анонс адресов L3-абонентов ==== ==== Анонс адресов L3-абонентов ====
  
-В СКАТ 10.2 действует следующий алгоритм анонсов IP-адресов [[dpi:bras_bng:opt_bras_l3:start|L3-абонентов]]:+В СКАТ 10.2 действует следующий алгоритм анонсов IP-адресов [[dpi:bras_bng:general_setup:start#настройка_bras_l3_в_fastdpi|L3-абонентов]]:
   * по умолчанию, анонс адреса производится для успешной авторизации (accept) и НЕ производится для неуспешной (reject)   * по умолчанию, анонс адреса производится для успешной авторизации (accept) и НЕ производится для неуспешной (reject)
   * fastdpi.conf-параметр ''auth_announce_reject'' позволяет глобально разрешить анонсы для reject:   * fastdpi.conf-параметр ''auth_announce_reject'' позволяет глобально разрешить анонсы для reject: