Network initialization
Network Initialization Management is performed by network-initd
. This daemon periodically scans for physical network interfaces and adds them to the Linux bonding device bond0
.
Physical interfaces are selected by reading the list of interfaces from
the kernel (via /proc) and then excluding interfaces that are not of
type Ethernet or match known names for virtual interfaces (vnet*
, u-*
,
i-*
, tap*
, etc.).
Once the list of physical interfaces that have been added since the last
scan are determined, network-initd
listens for LACP datagrams on
each interface to determine if LACP should be enabled for the bond0
interface. If not, one of the other Linux bonding modes is used. For
nodes where LACP is not used and where the interface will be added to a
Linux bridge to participate in a virtual switch environment the bonding
mode selected is Transmit Load Balancing
(TLB), otherwise (again,
unless LACP is available) the bonding mode selected is Adaptive Load
Balancing
(ALB).
ALB mode cannot be used with bonding interfaces that are part of Linux bridges because they modify the source MAC address in order to control the remote (switch) sides transmission back to the source, which means rewriting MAC address for bridged Ethernet frames, which prevents the frames from being returned to the correct interface in the bridge upon reply.