| Both sides previous revisionPrevious revision | |
| en:dpi:dpi_components:platform:vlan_traffic_handling [2026/06/03 13:10] – old revision restored (2025/11/20 11:54) elena.krasnobryzh | en:dpi:dpi_components:platform:vlan_traffic_handling [2026/06/03 13:19] (current) – elena.krasnobryzh |
|---|
| {{indexmenu_n>10}} | {{indexmenu_n>10}} |
| ====== Handling traffic by VLAN ====== | ====== VLAN Traffic Handling ====== |
| <note warning>The ''vlan group'' data has been moved from UDR to SDR. Global rules for ''vlan drop'', ''vlan pass'', ''vlan hide'', ''vlan permit'', configured previously by the ''vlan group'' CLI command, have been converted and moved from UDR to SDR with removal from UDR.</note> | <note warning>The ''vlan group'' data has been moved from UDR to SDR. Global rules for ''vlan drop'', ''vlan pass'', ''vlan hide'', ''vlan permit'' previously set by the old CLI command ''vlan group'' have been converted and moved from UDR to SDR, being removed from UDR.</note> |
| - Drop traffic without analysis from a specific VLAN:<code bash>fdpi_cli vlan rule add <id> perm drop</code> | - Drop traffic without analysis from a specific VLAN:<code bash>fdpi_cli vlan rule add <id> perm drop</code> |
| - Drop traffic after preliminary analysis, but without sending it to NetFlow statistics from a specific VLAN (used for working with asymmetric traffic, when duplicated traffic from another site is delivered to the site. It is necessary to analyze and drop the traffic so that it does not get into statistics):<code bash>fdpi_cli vlan rule add <id> perm hide</code> | - Drop traffic with preliminary analysis but without passing it to Netflow statistics from a specific VLAN (Used for asymmetric traffic when a copy of traffic from another site is fed to the site. It is necessary to analyze and drop the traffic so that it does not end up in statistics):<code bash>fdpi_cli vlan rule add <id> perm hide</code> |
| - Pass traffic without any analysis from a specific VLAN:<code bash>fdpi_cli vlan rule add <id> perm pass</code> | - Pass traffic without any analysis from a specific VLAN:<code bash>fdpi_cli vlan rule add <id> perm pass</code> |
| - Display existing settings in UDR: <code bash>fdpi_cli vlan rule dump</code>Example of command output:<code bash># fdpi_cli vlan rule dump | - Display existing settings in UDR: <code bash>fdpi_cli vlan rule dump</code> To display rules of only a specific type (e.g., only ''perm''), the ''[type]'' parameter is used: <code bash>fdpi_cli vlan rule dump perm</code> Example command output: <code bash># fdpi_cli vlan rule dump |
| 1000 perm hide | 1000 perm hide |
| 2000 perm drop | 2000 perm drop |
| 3000 perm pass | 3000 perm pass |
| 4000 perm hide | 4000 perm hide |
| </code>In this example, you can see that all protocols related to VLAN 1000 and 4000 fall under the ''hide'' rule, that is, traffic from one site is duplicated to another site; VLAN 2000 — traffic is dropped, VLAN 3000 — traffic is passed. | </code> In this example, all protocols related to VLAN 1000 and 4000 are subject to hide, i.e., traffic from one site is duplicated to another site; VLAN 2000 — traffic is dropped, VLAN 3000 — traffic is passed. |
| |
| <note tip>For more details, see [[en:dpi:bras_bng:bras_pppoe#configuring_service-name_for_vlan|Configuring Service-Name for VLAN]]</note> | <note tip>For more details, see the section [[dpi:bras_bng:bras_pppoe#configuring_service-name_for_vlan|Configuring Service-Name for VLAN]]</note> |
| |
| =====VLAN Rule===== | ===== VLAN Rule ===== |
| VLAN Rule allows flexible management of network traffic at the VLAN and QinQ level, assigning specific packet processing policies for individual VLANs, VLAN ranges, or QinQ tunnels. | VLAN Rule allows flexible management of network traffic at the VLAN and QinQ level, assigning specific packet processing policies for individual VLANs, VLAN ranges, or QinQ tunnels. |
| |
| ====Rule Types==== | ==== Rule Types ==== |
| The following rule types are supported: | The following rule types are supported: |
| |
| * ''dhcp'' — controls the processing of DHCP requests. | * ''dhcp'' — controls DHCP request processing. |
| * ''dhcp enable'' — allow processing of DHCP requests in this VLAN/QinQ. | * ''dhcp enable'' — allow DHCP request processing in this VLAN/QinQ. |
| * ''dhcp disable'' — prohibit DHCP processing. All DHCP packets in this VLAN/QinQ will be dropped. | * ''dhcp disable'' — disable DHCP processing. All DHCP packets in this VLAN/QinQ will be dropped. |
| * ''perm'' — defines the basic processing of all traffic in the VLAN/QinQ. | * ''perm'' — defines basic processing of all traffic in VLAN/QinQ. |
| * ''drop'' — completely drop all packets. | * ''drop'' — completely discard all packets. Packets do not undergo further processing and do not go to Netflow statistics. |
| * ''pass'' / ''accept'' — pass packets for further processing in the system. | * ''pass'' — pass packets without processing. Packets are counted in Netflow statistics. |
| * ''hide'' — (system-specific action, e.g., hide VLAN from broadcast queries). | * ''accept'' — pass packets for further full processing in the system. Packets are counted in Netflow statistics. |
| | * ''hide'' — the packet goes through internal processing stages (with exceptions), but after processing it is always discarded. At the same time: |
| | * the packet does not go to Netflow statistics; |
| | * services 9, 12, 15, 18, NAT, as well as policing (general and channel) are not applied; |
| | * the packet is not written via ajb — to IPFIX, SIP, FTP, etc. |
| | * ''pppoe'' — controls PPPoE packet processing. Filtering by Service-Name is supported, including for QinQ tunnels. The following actions are available: |
| | * ''enable'' — allow PPPoE processing. |
| | * ''drop'' — drop PPPoE packets. |
| | * ''pass'' — pass PPPoE packets through without processing. |
| | * ''delay N'' — establish a PPPoE session with a delay of N seconds (0 < N < 16).\\ Rules can be specified both for all PPPoE traffic in a VLAN/QinQ range and for a specific Service-Name. |
| |
| ====Syntax for Describing VLAN/QinQ Ranges==== | ==== Syntax for VLAN/QinQ Range Description ==== |
| Rules apply to ranges specified in the following format: | Rules apply to ranges specified in the following format: |
| * For a single VLAN: ''156'' | * For a single VLAN: ''156'' |
| * ''12-156.78-90'' — S-VLAN range [12..156], C-VLAN range [78..90]. | * ''12-156.78-90'' — S-VLAN range [12..156], C-VLAN range [78..90]. |
| * ''609.1-199'' — S-VLAN=609, C-VLAN range [1..199]. | * ''609.1-199'' — S-VLAN=609, C-VLAN range [1..199]. |
| <note important>Rules for regular VLANs (''67'') and QinQ (''67.*'') are independent and do not intersect.</note> | <note important>Rules for ordinary VLANs (''67'') and QinQ (''67.*'') are independent and do not overlap.</note> |
| |
| ====Rule Priority==== | **Service-Name Support for QinQ** |
| If the ranges of multiple rules intersect, the system determines the final action based on the principle "from general to specific": | Rules with Service-Name work correctly for QinQ: |
| - Rules with the broadest ranges (e.g., 1-4095 or any.any) are applied first. | * Rules without selectivity by CVLAN: ''SVLAN.*'' with or without Service-Name. |
| - Rules with narrower ranges (e.g., 100-200) can then override the action set by general rules. | * Full QinQ (''SVLAN.CVLAN'') with selectivity by Service-Name. |
| | |
| | ==== Rule Priority ==== |
| | If ranges of several rules overlap, the system determines the resulting action based on the "general to specific" principle: |
| | - First, rules with the broadest ranges (e.g., 1-4095 or any.any) are applied. |
| | - Then rules with narrower ranges (e.g., 100-200) can override the action set by the general rules. |
| |
| **Example:**\\ | **Example:**\\ |
| The following rules will create a policy: "Disable DHCP for all VLANs in the range 300-700, but enable it for VLAN 645 and the range 430-439". | The following rules will create the policy: "Disable DHCP for all VLANs in the range 300-700, but enable it for VLAN 645 and the range 430-439". |
| <code bash> | <code bash> |
| vlan rule add 300-700 dhcp disable | vlan rule add 300-700 dhcp disable |
| </code> | </code> |
| |
| ====Management==== | ==== Management ==== |
| * ''vlan rule add'' — adding a new rule to SDR | * ''vlan rule add'' — add a new rule to SDR.\\ Syntax for PPPoE: |
| * ''vlan rule modify'' — modifying an existing rule in SDR | * Adding a rule for all PPPoE traffic in a range: <code bash>vlan rule add <Range> pppoe [enable | drop | pass | delay N]</code> |
| * ''vlan rule delete'' — deleting a rule from SDR | * Adding a rule for a specific Service-Name: <code bash>vlan rule add <Range> pppoe sname <Service-Name> [enable | drop | pass | delay N]</code> Here ''<Service-Name>'' is the PPPoE Service-Name in single or double quotes (quotes can be omitted if it is an identifier: ''[a-zA-Z_][a-zA-Z_0-9]*''). |
| * ''vlan rule show'' — shows all rules for the specified VLAN/QinQ | * ''vlan rule modify'' — modify an existing rule in SDR (similar syntax). |
| * ''vlan rule dump'' — outputs a dump of all rules in SDR | * ''vlan rule delete'' — delete a rule from SDR. |
| * ''vlan rule purge vlan''/''qinq''/''all'' — clears SDR VLAN/QinQ or both | * ''vlan rule show'' — displays all rules for the specified VLAN/QinQ. The output shows not only the general PPPoE actions but also all permissions for individual Service-Name. |
| * ''vlan rule apply'' — applies rules; by default, rules are applied 5 minutes after the last SDR modification | * ''vlan rule dump'' — dumps all rules in SDR. To filter output by rule type, the ''[type]'' parameter is used (e.g., ''vlan rule dump perm''). |
| | * ''vlan rule purge vlan''/''qinq''/''all'' — clear SDR VLAN/QinQ or both. |
| | * ''vlan rule apply'' — apply rules; by default, rules are applied 5 minutes after the last SDR modification. |
| | |
| | <note important>When using ''*'' in the CLI for QinQ ranges, it is recommended to enclose the expression in quotes (e.g., '' '*.68' '') or use the keyword ''any'' (e.g., ''any.68'') to avoid incorrect interpretation of the ''*'' character by the bash shell.</note> |
| |
| <note important>When using ''*'' in CLI for QinQ ranges, it is recommended to enclose the expression in quotes (e.g., '' '*.68' '') or use the keyword ''any'' (e.g., ''any.68'') to avoid incorrect interpretation of the ''*'' character by the bash shell.</note> | **Change application specifics:** Changes to rules made with ''add'', ''modify'', or ''delete'' are saved in SDR and automatically applied by the system 5 minutes after the last modification. The ''vlan rule apply'' command allows you to apply them forcefully, but no more than once per minute. |
| |
| **Change Application Specifics:** Rule changes made by the ''add'', ''modify'', or ''delete'' commands are saved to SDR and automatically applied by the system 5 minutes after the last modification. The ''vlan rule apply'' command allows forcing their application, but no more than once per minute. | ==== Using VLAN Rule in BALANCER ==== |
| | VLAN rules can also be used by the **BALANCER** component for packet filtering. This allows, at the traffic balancing stage, to filter out unwanted VLAN/QinQ before they reach the main processing modules. |