ON THIS PAGE
Example: Creating a QFabric Flow Group
In a QFabric system, a hash function is used to select an Interconnect device to forward traffic between two Node devices. Since this hash function is performed on all Interconnect devices, it is possible for redundant multicast streams to flow through one Interconnect device, making that Interconnect device a potential single point of failure for the redundant flows. Some applications require that the redundant multicast streams flow through different Interconnect devices to prevent a single Interconnect device from potentially dropping both streams of multicast traffic during a failure. You can enforce this use of separate Interconnect devices by using the QFabric system flow groups feature. This example creates two flow groups.
A single point of failure can occur because the hash function can pick the same Interconnect device for two different sets of Node devices. For example, a set of Node devices (N1, N2) can be hashed to Interconnect device IC1 and another set of Node devices (N3, N4) are also hashed to IC1, so IC1 can then be a potential single point of failure.
Requirements
This example uses the following hardware and software components:
QFX5100-F switches
QFabric system
Junos 14.1X53-D15
Before you create a flow group on your QFX Series switches, be sure you have installed and set up a QFabric system. See QFX3000-G QFabric System Installation Overview.
Overview
In this example, you configure two flow-groups
flows
on QFX5100-F switches in a QFabric system. Each flow will use its
configured Interconnect device. You can optionally configure a backup
option for one of the flows to use the Interconnect device in the
other flow in case of failure.
Topology
This example creates two flow groups, flowA and flowB, in a QFabric system.
You always have a default flow group that contains any unassigned Interconnect devices and unassigned Node devices—in this case, the only member of the default flow group will be the Interconnect device IC3 after your configurations. The flow groups, Node devices (TORs—Top-of-Rack devices), and Interconnect devices that you configure are listed in Table 1.
Flow Group Name |
Node Devices |
Interconnect Device Names |
---|---|---|
flowA |
P2025-C P1360-C |
IC-4892 IC-4 |
flowB |
BBAK8822 P1523-C |
IC-F4908 |
default flow-group |
IC3 |
The software enforces flows by setting each Node device to one of three preferences for Interconnect devices:
high
—Use this Interconnect device in the hashing algorithm for the specified flow.normal
—Use this Interconnect device for backup when no Interconnect devices with high settings are available.never
—Do not use this Interconnect device in the hashing algorithm for the specified flow.
Unassigned Interconnect devices in the default group are
set to normal
, meaning when no Interconnect device set
to high
is available in a flow group, the flow will look
for unused Interconnect devices set to normal
and use one
that is available. This helps prevent loss of data in the event of
an Interconnect device failure. The high
and never
settings for Interconnect devices are set by the software when you
configure flow groups.
Configuration
In this example, you configure two flow groups:
flowA and flowB. FlowA has two Interconnect devices set to high
. If both Interconnect devices in flowA fail, there is one automatic
backup because the default group contains an Interconnect device.
You can also, optionally, provide a specific backup Interconnect device
for flowA—in this example, we specifically configure the Interconnect
device for flowB as backup for flowA. Therefore, if both Interconnect
devices in flowA (IC-4892 and IC-4) fail, an Interconnect device with
preference normal
will take over. IC3 is available at this
point.
- CLI Quick Configuration
- Configure Flow Group flowA
- Configure Flow Group flowB
- Configure a Backup Interconnect-Device For FlowA (Optional)
- Results
CLI Quick Configuration
To quickly configure flow groups flowA and flowB with backup for the Interconnect device in flowA, copy and paste these commands into your CLI:
set fabric flow-groups flowA node-device P2025-C set fabric flow-groups flowA node-device P1360-C set fabric flow-groups flowA interconnect-device IC-4892 set fabric flow-groups flowA interconnect-device IC4 set fabric flow-groups flowB node-device BBAK8822 set fabric flow-groups flowB node-device P1523-C set fabric flow-groups flowB interconnect-device IC-F4908 set fabric flow-groups node-device P2025-C interconnect-device IC-4908 preference normal
Configure Flow Group flowA
Step-by-Step Procedure
Set up two Node devices for flowA:
set fabric flow-groups flowA node-device P2025-C set fabric flow-groups flowA node-device P1360-C
Set up two Interconnect devices for flowA:
set fabric flow-groups flowA interconnect-device IC-4892 set fabric flow-groups flowA interconnect-device IC4
Results
At this point, the software’s Node devices preference settings for flow A are P2025-C and P1360-C, with the following Inteconnect device preferences for flowA:
IC-4892:
high
(assigned to flowA)IC4:
high
(assigned to flowA)IC-F4908:
normal
(not assigned to any specific flow group and is available for backup)IC3:
normal
(not assigned to any specific flow group and available for backup)
Neither IC-F4908 or IC3 have been assigned yet, so they
are both set to normal
in flowA and are available for automatic
backup. That will change with the next configuration—when flowB
is configured, the IC-F4908 preference for flowA will automatically
change.
Configure Flow Group flowB
Step-by-Step Procedure
Set up two Node devices for flowB:
set fabric flow-groups flowB node-device BBAK8822 set fabric flow-groups flowB node-device P1523-C
Set up one Interconnect device for flowB:
set fabric flow-groups flowB interconnect-device IC-F4908
Results
At this point, the software’s Node device preference settings for flowB are BBAK8822 and P1523-C, with the following Interconnect device preferences for flowB:
IC-F4908:
high
(assigned to flowB)IC4:
never
(assigned to another flow group, flowA)IC-4892:
never
(assigned to another flow group, flowA)IC3:
normal
(not assigned to any specific flow group and available for backup)
Also, now the software’s Interconnect device preference settings for flowA have changed automatically as a result of assigning Internconnect device IC-F4908 to another flow group, flowB. At this point, the Interconnect device preference settings for flowA are as follows:
IC-4892:
high
(assigned to flowA)IC4:
high
(assigned to flowA)IC-F4908:
never
(assigned to another flow group, flowB)IC3:
normal
(not assigned to any specific flow group and is available for backup)
After an Interconnect device is explicitly assigned to
a flow group, all other flow groups mark its preference for their
flow as never
.
Configure a Backup Interconnect-Device For FlowA (Optional)
Step-by-Step Procedure
The software sets Interconnect device preferences automatically—however,
you can override this setting using the preference
option
of the flow-groups
CLI statement. You might want to do
this for backup reasons.
In this example, the TOR switch P2025-C will always use either
Interconnect device IC-F4908 or IC4 because these Interconnect devices
are configured for flow group flowA. After adding the optional preference
override setting described here, if both Interconnect devices IC4
and IC-F4908 subsequently fail, the TOR switches in flowA will start
using an available Interconnect device that is set to preference normal
, instead of dropping traffic. This step overrides the
TOR switch P1523-C preference for the Interconnect device IC-4892,
changing it from never
to normal
, resulting
in two Interconnect devices with preference setting normal
—IC-4892 in flowB and IC3 in the default group.
Override the TOR switch P2025-C preference for the Interconnect device IC-4908, changing it from
never
tonormal
:set fabric flow-groups node-device P2025-C interconnect-device IC-4908 preference normal
Results
At this point, the Interconnect device preference settings for the Node device P2025-C are as follows:
IC-4892:
high
(assigned to flowA)IC4:
high
(assigned to flowA)IC-F4908:
normal
(by explicit preference configuration for Node device P2025-C)IC3:
normal
(not assigned to any specific flow group and available for backup)
The preference settings for the Node devices in flowB are the same as they were before you configured the Interconnect device preference override for the Node device P2025-C in flowA:
IC-F4908:
high
(assigned to flowB)IC4:
never
( assigned to flowA)IC-4892:
never
(assigned to flowA)IC3:
normal
not assigned to any specific flow group and available for backup)
To see more reasons you might want to alter the software’s preference settings, see Segregating QFabric Traffic Flows With Flow Groups.
Results
Type show fabric flow-groups in configuration mode to see your configuration.
root@qfabric# show fabric flow-groups flowA { node-device { P2025-C; P1360-C; } interconnect-device { IC-F4892; IC-4; } } flowB { node-device { P1523-C; BBAK8822; } interconnect-device { IC-F4908; } } node-device P2025-C { interconnect-device IC-F4908 { preference normal; } }
Verification
Verifying Flow Groups
Purpose
Check to see if the INEs in a QFabric system recognize the flow groups.
Action
After configuring the flow groups, you can see if the preference configuration has taken effect by running the following command on any of the INEs in a QFabric system:
root@P2025-C> show fabric multicast vccpdf-adjacency Flags: S - Stale Src Src Src Dest Src Dest link Dev id INE Dev type Dev id Interface Flags Port Port Preference 2 260 TOR 256 n/a -1 -1 NORMAL 2 260 TOR 768 n/a -1 -1 NORMAL 3 262 TOR 256 n/a -1 -1 NORMAL 3 262 TOR 774 n/a -1 -1 NORMAL 5 265(s) TOR 257 fte-0/1/2.32768 2 9 HIGH 256 256 F1_F3 2 n/a -1 -1 NORMAL