I have an 802.3ad port channel comprised of 2 10GigE links from a Force10 E1200 switch to a Linux server with one dual-ported 10G NIC. This setup works great when Linux speaks LACP and brings up a bonded interface. However, when the PXE option ROM in the Linux NICs runs, before Linux is in play, it doesn't work. That is, as I have things configured, the PXE option ROM isn't able to send or receive any packets on the expected native VLAN, when the switch ports are both set to port channel mode.
What I'd like is a way for the Force10 switch port to fall back to a normal switchport, when LACP hasn't established a portchannel, so that PXE will still work.
How can I do this? Hopefully with just some additional switch config?
I'm aware of work-arounds for this like PXE-booting off a different non-portchannel interface, etc. I'm really constrained by the hardware I have and looking for a solution that involves only the switch I have, along with the two 10G NIC ports. Further, I'm aware of other Linux bonding types that don't require a port channel on the switch side (e.g., balance-rr, active-backup). I've tested these, and they do work both in Linux and with PXE, but what I'm really after is the single 20Gb/s link and a port channel on the switch side.
The Force10 switch is configured like:
interface TenGigabitEthernet 7/32 no ip address ! port-channel-protocol LACP port-channel 99 mode active no shutdown
and:
interface TenGigabitEthernet 8/32 no ip address ! port-channel-protocol LACP port-channel 99 mode active no shutdown
and:
#show int switch Po99 Codes: U - Untagged, T - Tagged x - Dot1x untagged, X - Dot1x tagged G - GVRP tagged, M - Trunk Name: Port-channel 99 ... 802.1QTagged: Hybrid Vlan membership: Q Vlans U 123 Native VlanId: 123.
The Linux server has:
# cat /etc/sysconfig/network-scripts/ifcfg-bond0 DEVICE=bond0 NAME=bond0 TYPE=Bond BONDING_MASTER=yes IPADDR=... GATEWAY=... PREFIX=... ONBOOT=yes BOOTPROTO=none BONDING_OPTS="mode=802.3ad miimon=100" DNS1=A.B.C.D DOMAIN=bar.com foo.bar.com
and:
# cat /etc/sysconfig/network-scripts/ifcfg-enp6s0f0 TYPE=Ethernet BOOTPROTO=none DEVICE=enp6s0f0 NAME=enp6s0f0 ONBOOT=yes MASTER=bond0 SLAVE=yes
and:
# cat /etc/sysconfig/network-scripts/ifcfg-enp6s0f1 TYPE=Ethernet BOOTPROTO=none DEVICE=enp6s0f1 NAME=enp6s0f1 ONBOOT=yes MASTER=bond0 SLAVE=yes