Hi,
I am currently struggling with the right way to configure a bonding device via kickstart (via PXE).
I am installing servers which have "eno" network interfaces. Instead of the expected bonding device with two active slaves (bonding mode is balance-alb), I get a bonding device with only one active slave and an independent, non-bonded network device. Also the bonding device gets its MAC address from the second instead of from the first device.
I appreciate any hint (or rtfm with the name of the correct fm ;-) on how to achieve the desired setup through kickstart. Please find the used PXE and kickstart settings and resulting network configuration below.
I did this with CentOS 7.2.1511. We cannot go further due to Infiniband and lustre drivers which are currently only supported for this CentOS 7.x version
Cheers frank
--------------------------------------------------
The used PXE configuration is
LABEL CentOS-7 kernel centos-7/vmlinuz append initrd=centos-7/initrd.img ip=dhcp nameserver=xx.xx.xx.xx ksdevice=eno1 inst.repo=http://our.mirror.server/7/os/x86_64 inst.ks.sendmac inst.ks=http://our.kickstart.server/ks.cgi
and the network settings in the kickstart file are
network --device bond0 --bondslaves=eno1,eno2 --bondopts=mode=balance-alb --bootproto=dhcp --hostname=myhost --activate
I would have expected to get a bonding device with eno1 and eno2 as slave devices, the bonding device inheriting the MAC address from eno1 (otherwise DHCP won't work). Instead the result is a bonding device with eno2 as - sole - slave device and eno1 as a single active device with the main IP address of the host:
bond0: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST> mtu 1500 inet6 fe80::42f2:e9ff:fec7:b5f1 prefixlen 64 scopeid 0x20<link> ether 40:f2:e9:c7:b5:f1 txqueuelen 0 (Ethernet) RX packets 29 bytes 5274 (5.1 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 39 bytes 3486 (3.4 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet xx.xx.xx.xx netmask 255.255.255.0 broadcast xx.xx.xx.xx inet6 fe80::42f2:e9ff:fec7:b5f0 prefixlen 64 scopeid 0x20<link> ether 40:f2:e9:c7:b5:f0 txqueuelen 1000 (Ethernet) RX packets 4303 bytes 798163 (779.4 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 1686 bytes 481585 (470.2 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 device interrupt 16
eno2: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500 ether 40:f2:e9:c7:b5:f1 txqueuelen 1000 (Ethernet) RX packets 29 bytes 5274 (5.1 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 39 bytes 3486 (3.4 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 device interrupt 17
The ifcfg-files look basically ok, but there are two for the eno1 device.
ifcfg of the bonding device:
$ cat ifcfg-bond0 # Generated by parse-kickstart IPV6INIT="yes" DHCP_HOSTNAME="myhost" NAME="Bond connection bond0" BONDING_MASTER="yes" BOOTPROTO="dhcp" BONDING_OPTS="mode=balance-alb" DEVICE="bond0" TYPE="Bond" ONBOOT="yes" UUID="35910614-4a7c-43c9-8e44-dcf44b783358" $
ifcfg of the two slave devices
$ cat ifcfg-bond0_slave_1 # Generated by parse-kickstart NAME="bond0 slave 1" MASTER="35910614-4a7c-43c9-8e44-dcf44b783358" HWADDR="40:f2:e9:c7:b5:f0" TYPE="Ethernet" ONBOOT="yes" UUID="f3a0a007-861c-42b6-8264-6efba62232ce" $
$ cat ifcfg-bond0_slave_2 # Generated by parse-kickstart NAME="bond0 slave 2" MASTER="35910614-4a7c-43c9-8e44-dcf44b783358" HWADDR="40:f2:e9:c7:b5:f1" TYPE="Ethernet" ONBOOT="yes" UUID="ee3f7c84-d4cb-412e-887d-6b1c753eb913" $
ifcfg of eno1 (which physically has the MAC address 40:f2:e9:c7:b5:f0, which is the same as ifcfg-bond0_slave_1
$ cat ifcfg-eno1 # Generated by dracut initrd NAME="eno1" DEVICE="eno1" ONBOOT=yes NETBOOT=yes UUID="d20645a0-8093-45f3-9630-d0249f76726b" IPV6INIT=yes BOOTPROTO=dhcp TYPE=Ethernet DNS1="192.55.188.177" $