Windows Server 2016 LACP with Juniper EX Virtual Chassis

I’m not a Juniper guy or even a networking guy for that matter, but trying to help out a customer who has a few HPE DL380 boxes with Windows Server 2016 on them containing 4 NICs @ 1 gbit each, connected to Juniper EX series Virtual Chassis (stack). The customer needed more bandwith, so we tried to use the Windows Server NIC teaming feature, which has been around since Windows Server 2012.

The Windows side of things is very straight forward. I’ll show the details later down, first I needed to configure the switch.

Start with creating an Aggrated Link Group (LAG) using the command:

Juniper labels the LAG with ae followed by some number, I just took the next available. (You can list all existing with show interfaces ae and pressing tab. Or show lacp interfaces.) So in this example number 22 is used.

set interfaces ae22 aggregated-ether-options lacp active
set interfaces ae22 aggregated-ether-options lacp periodic fast
set interfaces ae22 unit 0 family ethernet-switching interface-mode access
set interfaces ae22 unit 0 family ethernet-switching vlan members Server
set interfaces ae22 description "To Server MyServer"

And for each of the interfaces:

set interfaces ge-1/0/4 description MyServer-NIC-A
set interfaces ge-1/0/4 speed 1g
set interfaces ge-1/0/4 link-mode full-duplex
set interfaces ge-1/0/4 ether-options 802.3ad ae11

Sadly I ran into an error :

[edit interfaces ge-1/0/4]
'unit 0'
logical unit is not allowed on aggregated links
error: xSTP configuration disallowed on interface ge-1/0/4 as it is part of an aggregate bundle
error: configuration check-out failed

Listing the configuration of the interfaces (show interfaces ge-1/0/4) didn’t show any unit 0.

admin@switch# show interfaces ge-1/0/4
description MyServer-NIC-A;
speed 1g;
link-mode full-duplex;
ether-options {
802.3ad ae22;
}

I found someone that suggested to create unit 0, and than deactivating it:

set interfaces ge-1/0/4 unit 0 family ethernet-switching
deactivate interfaces ge-1/0/4 unit 0

But still no luck. As I said, I’m completely new to Juniper.

Then I found that the switches were configured to use something called interfaces ranges. It’s quite a nice concept, in which you can group interfaces and give them a common configuration.

show interface-range

I found that some of the interfaces I wanted to use for my LAG were included in an interface range. Within the interface range a unit 0 was defined. All it did was set the vlan, but it was standing in the way of my efforts. So I removed my interfaces from the interface range.

delete interfaces interface-range RangeName member ge-1/0/4

And what do you know? commit check, didn’t trow any error.

Commiting the config may result in loosing connectivity, make sure you have another way of getting into the machine (iLO/iDRAC/IPMI/iBMC)

I had an iLO connection open, and could connect to the console of the machine.

Just open Server Manager, go to Local Server and click the ‘Disabled’ link just right of ‘NIC Teaming’. In the NIC Teaming window, click TASKS, New Team.

Select all Interfaces, choose LACP as Teaming mode: and Dynamic for Load Balancing Mode. Click OK.

After a few moments the Team will move from Failed to the OK status
admin@switch# run show interfaces terse | match ae22    
ge-1/0/4.0 up up aenet --> ae22.0
ge-2/0/4.0 up up aenet --> ae22.0
ge-3/0/4.0 up up aenet --> ae22.0
ge-4/0/4.0 up up aenet --> ae22.0
ae22 up up
ae22.0 up up eth-switch
Whohoo, Windows sees a 4 Gbps link

I found that since the customer uses static IP addresses, the wizard doesn’t migrate the IP address. I needed to set the static IP on the Team adapter. I ended up setting the default gateway again, since it didn’t save it in the configuration. The default gateway was prefilled from DHCP, but the gui didn’t save, while it was displayed… Took me a few minutes to realize that the missing ping reply was due to this, and not the config of the switch.

We didn’t push anything, but the machine just resumed its tasks and consumed 2 Gbps

The complete configuration as used on the Juniper switch:

(It should work without the created and disabled unit 0 on the interfaces, but I haven’t tried that)

All was done on Juniper EX3400 switches loaded with JUNOS 15.1 in a Virtual Chassis configuration

#Create the LAG
set interfaces ae22 aggregated-ether-options lacp active
set interfaces ae22 aggregated-ether-options lacp periodic fast
set interfaces ae22 unit 0 family ethernet-switching interface-mode access
set interfaces ae22 unit 0 family ethernet-switching vlan members Server
set interfaces ae22 description "To Server MyServer"

#Remove any interfaces from the interface-range
delete interfaces interface-range RangeName member ge-1/0/4
delete interfaces interface-range RangeName member ge-2/0/4
delete interfaces interface-range RangeName member ge-3/0/4
delete interfaces interface-range RangeName member ge-4/0/4

#Configure the first interface
set interfaces ge-1/0/4 description MyServer-NIC-A
set interfaces ge-1/0/4 speed 1g
set interfaces ge-1/0/4 link-mode full-duplex
set interfaces ge-1/0/4 unit 0 family ethernet-switching
deactivate interfaces ge-1/0/4 unit 0
set interfaces ge-1/0/4 ether-options 802.3ad ae22

#Configure the second interface
set interfaces ge-2/0/4 description MyServer-NIC-B
set interfaces ge-2/0/4 speed 1g
set interfaces ge-2/0/4 link-mode full-duplex
set interfaces ge-2/0/4 unit 0 family ethernet-switching
deactivate interfaces ge-2/0/4 unit 0
set interfaces ge-2/0/4 ether-options 802.3ad ae22

#Configure the third interface
set interfaces ge-3/0/4 description MyServer-NIC-C
set interfaces ge-3/0/4 speed 1g
set interfaces ge-3/0/4 link-mode full-duplex
set interfaces ge-3/0/4 unit 0 family ethernet-switching
deactivate interfaces ge-3/0/4 unit 0
set interfaces ge-3/0/4 ether-options 802.3ad ae22

#Configure the last interface
set interfaces ge-4/0/4 description MyServer-NIC-D
set interfaces ge-4/0/4 speed 1g
set interfaces ge-4/0/4 link-mode full-duplex
set interfaces ge-4/0/4 unit 0 family ethernet-switching
deactivate interfaces ge-4/0/4 unit 0
set interfaces ge-4/0/4 ether-options 802.3ad ae22

show | compare
commit check

1 reply
  1. josh
    josh says:

    this is because the default interface config on each physical interface contains unit 0.
    I recommend, the first step in configuring any Juniper device, go straight to config mode and type ‘delete’.
    this would have saved you a bit of time.

    if you go into the default device, run the command “show configuration interfaces”, and you would have seen that each interface has unit 0.

    Reply

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply

Your email address will not be published. Required fields are marked *