Re: anaconda/kickstart: bonding device not created as expected

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



On 18/04/2017 15:54, Frank Thommen wrote:
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"
$


Hi Frank,

This is from my satellite kickstart where I'm building the bond at the point of PXE booting, and using static (I'm working on doing this with DHCP and tagged VLANs but currently cant get to the hardware needed since messing up the BMC config :( )

LABEL linux
    KERNEL boot/RedHat-7.3-x86_64-vmlinuz
APPEND initrd=boot/RedHat-7.3-x86_64-initrd.img ks=http://example.com/host.ks ks.device=bootif network ks.sendmac bond=bond0:eno1,eno2:mode=802.3ad vlan=bond0.10:bond0 ip=10.10.0.2::10.10.0.1:255.255.255.0:host.example.com:bond0.10:none nameserver=10.10.0.1


Then in the KS we have
network --bootproto=static --device=link --gateway=10.10.0.1 --hostname=host.example.com --ip=10.10.0.2 --nameserver=10.10.0.1,10.11.0.1 --netmask=255.255.255.0

It should be fairly simple to convert that to use DHCP as you just need to change the IP line in the kernel parameters and ensure you have --device=link in the kickstart.

BTW cat /proc/net/bonding/bond0 shows more info on how the bond is actually setup and working.

Tris



*************************************************************
This email and any files transmitted with it are confidential
and intended solely for the use of the individual or entity to whom they are addressed. If you have received this email in error please notify postmaster@xxxxxxxx

The views expressed within this email are those of the individual, and not necessarily those of the organisation
*************************************************************
_______________________________________________
CentOS mailing list
CentOS@xxxxxxxxxx
https://lists.centos.org/mailman/listinfo/centos



[Index of Archives]     [CentOS]     [CentOS Announce]     [CentOS Development]     [CentOS ARM Devel]     [CentOS Docs]     [CentOS Virtualization]     [Carrier Grade Linux]     [Linux Media]     [Asterisk]     [DCCP]     [Netdev]     [Xorg]     [Linux USB]
  Powered by Linux