A Virtual Chassis joins several Juniper EX switches so they are managed as one, with two of them acting as the Routing Engines. This guide covers the three families Juniper documents together for this job, the EX2300, EX3400 and EX4300: which switches may join, which ports and cables carry the stack, how the roles are chosen, and the checks after it forms. The numbered steps on this page are Juniper's nonprovisioned method.
Which switches can join which
- EX2300: up to 4 members, and starting in Junos OS Release 18.4R1, you can combine EX2300, EX2300-C, and EX2300 multigigabit switches in the same non-mixed Virtual Chassis.
- EX3400: up to 10 members, and you can interconnect EX3400 switches only with other EX3400 switches in a Virtual Chassis (no mixed mode).
- EX4300: up to 10 members; any EX4300 models other than the multigigabit EX4300-48MP stack together without extra settings, and the EX4300-48MP stacks with its own kind.
- Mixing the EX4300-48MP with other EX4300 models needs mixed mode, the ieee-clause-82 port mode on the other models, and EX4300-48MP switches in the Routing Engine roles.
Whatever the family, all member switches must be running the same version of Junos OS to form a Virtual Chassis, so bring every switch to one release before you cable anything.
Which ports carry the stack
On the EX3400 and EX4300 the job is mostly done at the factory. The QSFP+ uplink ports on EX3400 and EX4300 switches support 40-Gbps speeds, and these ports are set as VCPs by default, so you don't need to explicitly configure them. An EX4300-48T, for example, has four built-in QSFP+ ports alongside its 48 copper ports. Juniper calls those default ports the simplest way to build an EX3400 or EX4300 stack.
The EX2300 is different: EX2300 switches do not have any ports that are configured by default as VCPs, so you must explicitly configure the ports you want to use. On the EX2300-48T and EX2300-48P those are the four built-in 10-Gigabit Ethernet uplink ports on the front panel, which Juniper says you can configure into VCPs to interconnect EX2300 switches into a Virtual Chassis. On any of the three families, SFP+ uplink ports can be made into VCPs; they run at 10-Gbps speeds and can connect switches that are up to 6.2 miles (10 km) apart, which is how members in different wiring closets are joined. Those ports must hold SFP+ transceivers, because you can't form a Virtual Chassis using ports that have SFP transceivers installed. One exception: the four built-in 10-Gbps SFP+ ports on 32-port EX4300 switches can't be VCPs.
More than one link between two members is allowed for bandwidth, and links with identical speeds automatically form a VCP link aggregation group (LAG).
The cables between members
Inside a rack, the usual link between QSFP+ VCPs is a QSFP+ direct attach copper (DAC) cable, which Juniper describes as suitable for in-rack connections between QSFP+ ports on EX3400 and EX4300 switches, among others. These passive cables are hot-removable and hot-insertable and are designed for data rates up to 40 Gbps. Juniper recommends that you use only QSFP+ DAC cables purchased from Juniper Networks with your Juniper Networks device. For members farther apart, SFP+ optics in SFP+ VCPs carry the link, as above.
Nonprovisioned or preprovisioned
Juniper offers two ways to assign roles. In a nonprovisioned configuration the primary sequentially assigns a member ID to other member switches, and the role is decided by primary-role priority. Every switch starts at the default primary-role priority of 128, the switches with the highest values take the primary and backup roles, and a switch with a primary-role priority of 0 never assumes the primary or backup role. When priorities are equal, the switches that have been powered on the longest assume the primary and backup roles in most cases.
A preprovisioned configuration ties each member ID and role to the switch's serial number instead. You set preprovisioned under [edit virtual-chassis], then list each switch, for example set member 0 serial-number abc123 role routing-engine. Serial number values are case-sensitive, and the show chassis hardware command or the serial number label gives you each one. With preprovisioning you can power on the member switches in any order, but you cannot modify the primary-role priority.
After the stack forms
Run show virtual-chassis to see every member: in a nonprovisioned stack Prsnt marks a member that is currently connected and NotPrsnt a member ID that has been assigned but is not currently connected. In a preprovisioned stack, Unprvsnd flags a switch that is cabled in but not in the configuration file. On EX Series stacks the FPC number refers to the member ID assigned to the switch, so each member's ports carry its member ID as their FPC number.
Two defaults catch people out. The interfaces on member switch 0 start in the default VLAN, but the interfaces on all other member switches are not placed into any VLAN, so you must configure a VLAN on them before they pass traffic. On an EX4300 stack, STP is disabled on all interfaces except the interfaces on member switch 0 until some type of spanning-tree protocol is enabled. From then on, save changes with commit synchronize rather than simply commit, so both Routing Engines hold the same configuration.
What we see at Townsend
Buyers ask us for these switches by exact model, and the EX2300-48T and the EX4300-48T were both named in requests in the past month. We have the EX4300-48T, the EX3400-24T and the EX2300-48P in stock, so a stack of matching members can ship together. Our weekly eBay read showed new EX3400-48T asking prices easing between the last two reads, and used EX2300-48P and EX4300 listings outnumbering new ones. Browse the EX4300 shelf, the EX3400 shelf and the EX2300 shelf for more members.




