| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | 
| dpi:bras_bng:bras_l2_options:bras_l2_vlan_local [2023/10/13 12:30]  – удалено - внешнее изменение (Дата неизвестна) 127.0.0.1 | dpi:bras_bng:bras_l2_options:bras_l2_vlan_local [2024/09/26 15:29] (текущий)  – внешнее изменение 127.0.0.1 | 
|---|
|   | ====== Замыкание локального трафика ====== | 
|   | {{indexmenu_n>2}} | 
|   | ===== Описание ===== | 
|   | FastDPI BRAS может замыкать локальный (внутрисетевой) трафик между пользователями (''local interconnect''). При включенном режиме замыкания BRAS ищет в своей БД UDR IP-адрес получателя. Если он найден и сессия не просрочена и не является явно закрытой (не было DHCPRELEASE), то пакет не пропускается наружу, а отправляется обратно на входной DPDK-интерфейс получателя. Так как это локальный трафик, никакие функции СКАТ (фильтрация, полисинг, услуги) к нему не применяются. | 
|   |  | 
|   | При замыкании локального трафика BRAS корректирует L2-заголовки пакета: в качестве MAC-адреса источника подставляет свой MAC-адрес ''bras_arp_mac'', MAC-адрес получателя определяется по свойствам IP-адреса получателя, VLAN-теги меняет на теги, относящиеся к абоненту-получателю (BRAS запомнил эти теги и MAC-адрес в UDR при старте [[dpi:bras_bng:bras_l2_vlan:bras_l2_vlan_session|DHCP-сессии]] получателя). При этом допускается разное количество VLAN-тегов у отправителя и получателя; например, в разнородной локальной сети абонент-отправитель может иметь два VLAN-тега (QinQ, VLAN-per-user), а абонент-получатель – один VLAN-тег, или наоборот. | 
|   |  | 
|   | ===== Настройка ===== | 
|   | Включение этой возможности регулируется параметром ''bras_terminate_local'' конфигурационного файла ''fastdpi.conf'':  | 
|   |   * Значение 0 – данная возможность отключена (**это значение по умолчанию**) | 
|   |   * Значение 1 – замыкание локального трафика включено | 
|   | <note important>Локальность трафика определяется автономной системой, как описано [[dpi:bras_bng:general_setup#настройка_bras_l3_в_fastdpi|здесь]]</note> | 
|   |  | 
|   | Существует возможность запретить замыкание локального трафика для конкретного абонента, см. Радиус-атрибут [[dpi:bras_bng:radius_integration:radius_auth_server_integration:radius_auth_response#VasExperts-Enable-Interconnect|VasExperts-Enable-Interconnect]]. Пакет от одного локального абонента к другому будет дропнут, если хотя бы для одного из абонентов интерконнект запрещен. | 
|   |  | 
|   | <note warning>В случае добавления QinQ-заголовка существует проблема [[dpi:bras_bng:bras_l2_vlan_term:bras_l2_vlan_qinqtype|Double VLAN EtherType]]</note> | 
|   |  | 
|   | <note important>СКАТ запрещает local interconnect между абонентами в одном VLAN, но относящимся к разным подсетям. Это сделано для борьбы с ''fdb storm'' для некоторых (старых) коммутаторов. Начиная с версии СКАТ 8.1, эту проверку можно отключить параметром ''fastdpi.conf'' | 
|   | <code bash> | 
|   | bras_skip_detect_vlan_interconnect=1 | 
|   | </code></note> | 
|   |  | 
|   | ==== Замыкание по автономным системам (AS) ==== | 
|   | СКАТ 7.4+: добавлен режим [[dpi:bras_bng:bras_l2_vlan_term:bras_l2_vlan_term_as|терминации по AS]]: в этом режиме для замыкания локального трафика IP-адрес приемника должен относится к автономной системе, помеченной как ''term''.  | 
|   |  | 
|   | В сетях, где ядро (внутренние серверы и службы, доступные абонентам) находится перед СКАТ, и имеется несколько входящих (смотрящих на абонентов) DPDK-интерфейсов, дополнительно можно указать для каждого DPDK-интерфейса, с какими параметрами замыкать трафик абонентов к ядру. Предполагается, что IP-адреса серверов ядра относятся к локальной AS и что IP-адреса серверов прописаны статически. | 
|   | Для этого для каждого входного DPDK-интерфейса задается параметр в ''fastdpi.conf'': | 
|   | <code bash> | 
|   | bras_term_dev_inner=dev=17-00.1;bras_gateway_ip=10.0.1.17;bras_gateway_mac=00:1f:a0:11:53:b4;bras_vlan_subst=33 | 
|   | bras_term_dev_inner=dev=17-00.0;bras_gateway_ip=10.0.1.18;bras_gateway_mac=00:1f:a0:11:53:b5;bras_vlan_subst=35 | 
|   | </code> | 
|   |  | 
|   | При замыкании локального трафика по AS СКАТ проверяет, задан ли параметр ''bras_term_dev_inner'' для DPDK-интерфейса, с которого пришел пакет. Если задан, то СКАТ действует по следующим правилам: | 
|   |  | 
|   | ^  destination AS  ^^^^ | 
|   | ^  source AS       ^  non-local  ^  local  ^  local+term   ^ | 
|   | | **non-local**    |  pass       | pass((Замыкание локального трафика проводится только для потока из LAN в WAN, поэтому **такого рода пакеты не должны попадать в СКАТ**, — они должны быть смаршрутизированы оборудованием до СКАТ.\\ где:\\ 1. ''pass'' — пакет обрабатывается далее (пропускается наружу)\\ 2. ''dest abonent'' — пакет направляется к абоненту-получателю обратно в локальную сеть. Если абонент-получатель неизвестен СКАТ — пакет отбрасывается.\\ - ''srcMAC = bras_arp_mac''\\ - ''destMAC = MAC-адрес'' абонента-получателя\\ - VLAN-теги берутся из свойств абонента-получателя\\ 3. ''dev'' — (обращение к локальному сервису) пакет направляется обратно в локальную сеть с параметрами, взятыми из conf-параметра ''bras_term_dev_inner'':\\ - ''srcMAC = bras_arp_mac''\\ - ''destMAC = bras_gateway_mac'' для данного входного интерфейса (из ''bras_term_dev_inner'' для интерфейса)\\ - VLAN-тег = ''bras_vlan_subst'' для данного входного интерфейса (из ''bras_term_dev_inner'' для интерфейса) ))  | dest abonent  | | 
|   | | **local**        |  pass       | pass((Замыкание локального трафика проводится только для потока из LAN в WAN, поэтому **такого рода пакеты не должны попадать в СКАТ**, — они должны быть смаршрутизированы оборудованием до СКАТ.\\ где:\\ 1. ''pass'' — пакет обрабатывается далее (пропускается наружу)\\ 2. ''dest abonent'' — пакет направляется к абоненту-получателю обратно в локальную сеть. Если абонент-получатель неизвестен СКАТ — пакет отбрасывается.\\ - ''srcMAC = bras_arp_mac''\\ - ''destMAC = MAC-адрес'' абонента-получателя\\ - VLAN-теги берутся из свойств абонента-получателя\\ 3. ''dev'' — (обращение к локальному сервису) пакет направляется обратно в локальную сеть с параметрами, взятыми из conf-параметра ''bras_term_dev_inner'':\\ - ''srcMAC = bras_arp_mac''\\ - ''destMAC = bras_gateway_mac'' для данного входного интерфейса (из ''bras_term_dev_inner'' для интерфейса)\\ - VLAN-тег = ''bras_vlan_subst'' для данного входного интерфейса (из ''bras_term_dev_inner'' для интерфейса) ))  | dest abonent  | | 
|   | | **local+term**   |  pass       |  dev   | dest abonent  | | 
 |  |