Virtual circuits are created within circuits in the policy tree and are used to logically divide or partition the circuit. The virtual circuit defines what traffic will be processed in this partition and how much bandwidth it is allowed. The virtual circuit can enforce fair sharing amongst the network hosts. Traffic is evaluated against the definition of the virtual circuit. Traffic that does not fall within the virtual circuit is evaluated by the next virtual circuit and so on. Each virtual circuit will have it's own set of policy rules.
The following are common use cases for virtual circuits.
A virtual circuit can partition the circuit by filtering the traffic by time of day, by VLAN range, by subnets or hosts, by particular application or application group, by traffic direction, and by capping the number of active connections or capping the number of active hosts within the virtual circuit. Any combination of these filters can be applied. For example, you can create a virtual circuit such that a particular branch (or subnet) is allowed a certain set of policies for inbound traffic (as direction) during off work hours (using a schedule).
A virtual circuit specifies its desired bandwidth either as kbps or as a percentage of it's parent circuit. When the sum of the desired bandwidths for all the virtual circuits within a circuit exceeds the circuit's bandwidth, the circuit is oversubscribed. Each virtual circuit specifies how it would like to deal with oversubscription. That is, either let the system automatically share the bandwidth amongst the virtual circuits, or specify a minimum bandwidth that is required.
Additionally, a virtual circuit can enable fair sharing amongst hosts in the virtual circuit. When fair sharing is enabled, the virtual circuit is called a dynamic virtual circuit and a further level of traffic shaping is introduced. Traffic is first shaped at the host level, then at the policy level. The bandwidth allocated will be the minimum of the two levels.
A virtual circuit can provide preferential treatment to a limited number of active hosts or to a limited number of active connections.
![]() |
Note When configuring a dynamic virtual circuit, the system will not allow the per host bandwidth to be less than 10 kbps, in which case the number of allowed hosts is calculated to be the virtual circuit bandwidth/10 kbps. Any hosts beyond the limit are then evaluated against later virtual circuits in the policy tree. There is a system limit of 32,500 hosts that can fall into each dynamic virtual circuit. This may occur if the virtual circuit has more than 300 Mbps of bandwidth. When this limit is exceeded, hosts fall into the next applicable virtual circuit. |
---|
![]() |
Best Practice: It is a best practice to create an overflow virtual circuit immediately after a virtual circuit with a connection limit or a host limit, to capture the connections or hosts that were excluded. |
---|
Network objects are typically used when virtual circuits are created for specific branch office locations, or other subsets of the network, or user groups. Each branch office location or user group would be represented by a static network object or a dynamic network object (such as an Active Directory group). A default network object, private net, exists which defines all non-routable subnets. This can be used to create a virtual circuit for all WAN data.
The direction is used to ensure that the virtual circuit only captures traffic in a certain direction. This is useful for asymmetric circuits, as these generally require that at least two virtual circuits are defined - one for the inbound bandwidth and one for the outbound bandwidth.
Virtual circuits are part of the policy tree. To learn how circuits, virtual circuits, and policies work together, see Policy Tree.
![]() | Note The desired bandwidth for a single virtual circuit must not exceed it's parent circuit's bandwidth in either direction. |
---|
Specify how to handle Oversubscription
![]() | Note The sum of all the manually set guaranteed bandwidths across the virtual circuits must not exceed the parent circuit’s bandwidth in each direction. If the sum of the manually set guaranteed bandwidths equals the parent circuits bandwidth, the virtual circuits with automatically determined guaranteed bandwidth will be guaranteed 0 bandwidth. |
---|
![]() | Note Connections that arrive after the connection limit has been reached will be evaluated for inclusion in the following virtual circuits in the policy tree, potentially being caught in the catch-all virtual circuit. |
---|
The direction options are: Both directions, Inbound, and Outbound.
![]() | Note The direction is relative to the LAN. Consider an example where a network object and a direction is specified: |
---|
Network Object | Direction | Captured Traffic |
---|---|---|
'Internal' or 'External' network objects | Both | Only inbound and outbound traffic to and from the subnets defined by the network object. |
'Internal' network object | Inbound | Only inbound traffic to the subnets defined as 'internal' by the network object. |
'External' network object | Inbound | Only inbound traffic to the LAN from the subnets defined as 'external' by the network object. |
'Internal' network object | Outbound | Only outbound traffic from the subnets defined as 'internal' by the Network Object. |
'External' network object | Outbound | Only outbound traffic from the LAN to the subnets defined as 'external' by the Network Object. |
Virtual circuits are oversubscribed when the sum of the virtual circuit bandwidths exceeds the parent circuit's bandwidth. For example:
Circuit Bandwidth = 3Mbps
This means, the sum of the three virtual circuits is 4Mpbs, but the circuit bandwidth is only 3Mbps.
VC A: automatic VC B: automatic VC C: automatic |
Each VC gets: desired bandwith / sum of VC bandwith * circuit bandwidth
|
VC A: manual = 2 Mbps VC B: manual = 0.5 Mbps VC C: manual = 0.5 Mbps |
Each virtual circuit with manually set oversubscription bandwidth will get their guaranteed amount
|
VC A: automatic VC B: automatic VC C: manual = 0.75 Mbps |
Each virtual circuit with manually set oversubscription bandwidth will get their guaranteed amount. Virtual circuits with automatic oversubscription calculations will share the remaining bandwidth as: virtual circuit's desired bandwidth / total remaining bandwidth * (circuit's bandwidth - sum of manually specified oversubscription bandwidths)
|
![]() |
Note Once a virtual circuit connection limit has been reached, it will no longer match any incoming traffic. Therefore, connections that arrive later will be evaluated against the remaining virtual circuits in the circuit. Once some of the active connections in the virtual circuit terminate, the virtual circuit will be used to match new traffic again. |
---|
![]() |
Best Practice: It is a best practice to create a virtual circuit immediately after a virtual circuit with a connection limit, to capture the connections that were excluded. |
---|
Dynamic virtual circuits can be configured for fair sharing amongst the hosts or dynamic virtual circuits can be configured to limit the number of hosts so that those hosts get preferential treatment.
For fair sharing, you must specify how you would like the virtual circuit's bandwidth to be shared amongst the hosts. You can fix the per host bandwidth and have the system calculate the number of allowed hosts. Note that if there are less than the allowed hosts, each active host can burst to gain more bandwidth (if you have configured the virtual circuit to allow bursting). Or you can fix the number of hosts and have the system calculate the amount of bandwidth allowed per host. You can specify to automatically calculate the per host bandwidth and the number of allowed hosts. The system will then divide the virtual circuit's bandwidth by the number of active hosts.
On the Add New Virtual Circuit form:
Set the guaranteed Per Host Bandwidth that each host will receive.
Set the Per Host Maximum Bandwidth that each host is allowed.
Set the Location of the hosts to that will receive this fair sharing functionality.
Internal hosts are those that are on the LAN side of the appliance. External hosts are those that are on the WAN side of the appliance.
Set the maximum number of hosts that can be captured by this dynamic virtual circuit.
Any host that becomes active after the maximum number of hosts is exceeded, does not fall into this virtual circuit.
![]() |
Note When configuring a dynamic virtual circuit with the "automatically share” option enabled, the system divides the available bandwidth evenly among all of the hosts. The maximum number of hosts that can fit inside this type of DVC is the total bandwidth available divided by 10 kbps, with 10 kbps being the minimum allocated to each host. For example, if the available bandwidth was 100 kbps, the maximum number of hosts would be 10. Any surplus hosts are evaluated against later virtual circuits in the policy tree. There is a system limit of 32,500 hosts that can fall into each dynamic virtual circuit. This may occur if the virtual circuit has more than 325 Mbps of bandwidth. When this limit is exceeded, hosts fall into the next applicable virtual circuit. |
---|
As examples, consider the following scenarios where the virtual circuit is defined to have 1024 kbps bandwidth in both directions and applies to a network object defining internal users and fair sharing is turned on.
Per Host Bandwidth: Auto Per User Max Bandwidth: 100% Host Location: Internal Max Hosts: Auto |
|
Per Host Bandwidth: 10% Per User Max Bandwidth: No Host Location: Internal Max Hosts: Auto |
|
Per Host Bandwidth: 64kbps Per User Max Bandwidth: 50% Host Location: Internal Max Hosts: 16 |
|
Set the DVC settings to:
Set the DVC settings to:
Set the DVC settings to:
Set the DVC settings to:
Set the DVC settings to:
If you set a bandwidth cap per host by setting the Per User Max Bandwidth and you set the maximum number of hosts, it is possible that you prevent access to excess bandwidth.
If the allocated bandwidth is less than the virtual circuit bandwidth, then you are making some of the bandwidth inaccessible.
|
|