sts-sponsors team mailing list archive
-
sts-sponsors team
-
Mailing list archive
-
Message #02215
[Bug 1820929] Re: netplan should consider adding more udev attribute for exact matching of failover 3-netdev interfaces
Jay,
The good news is that, with 0.130ubuntu3.11, initramfs-tools is now able
to render a correct netplan YAML file:
# cat /run/netplan/ens3.yaml
network:
version: 2
renderer: networkd
ethernets:
ens3:
set-name: ens3
dhcp4: true
dhcp-identifier: mac
critical: true
nameservers:
addresses: ["100.100.100.60", "100.100.100.160"]
search: ["domainname.com"]
However, net_failover 3-netdev interfaces are still showing incorrect
names:
# ip l
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens3: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
link/ether 12:3f:bd:fd:bb:1e brd ff:ff:ff:ff:ff:ff
3: rename3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master ens3 state UP mode DEFAULT group default qlen 1000
link/ether 12:3f:bd:fd:bb:1e brd ff:ff:ff:ff:ff:ff
4: rename4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master ens3 state UP mode DEFAULT group default qlen 1000
link/ether 12:3f:bd:fd:bb:1e brd ff:ff:ff:ff:ff:ff
while we should expect to see something like:
# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens3: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
link/ether 12:3f:bd:fd:bb:1e brd ff:ff:ff:ff:ff:ff
3: ens3nsby: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master ens3 state UP mode DEFAULT group default qlen 1000
link/ether 12:3f:bd:fd:bb:1e brd ff:ff:ff:ff:ff:ff
4: ens4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master ens3 state UP mode DEFAULT group default qlen 1000
link/ether 12:3f:bd:fd:bb:1e brd ff:ff:ff:ff:ff:ff
The culprit, as I ever indicated before, is that even with the seemingly
correct netplan config provided, the netplan tool itself still doesn't
recognize the 3-netdev failover interface, ending up with below udev
rules renderred that runs conflict with the 3-netdev model:
# cat /run/systemd/network/10-netplan-ens3.link
[Match]
MACAddress=12:3f:bd:fd:bb:1e
[Link]
Name=ens3
WakeOnLan=off
# cat /run/udev/rules.d/99-netplan-ens3.rules
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="12:3f:bd:fd:bb:1e", NAME="ens3"
I understand that the solution we agreed upon has to rely on cloud-init
providing supplemental udev rules for naming the ens3nsby (failover
standby) and the ens4 (failover primary) interface. But, I don't see how
the resulted 99-netplan-ens3.rules would work, given that all the 3
netdevs share a same MAC address, and there's no other udev attribute to
differentiate? What's in your mind that needs to be fixed next, netplan
or udevd?
Thanks,
-Siwei
--
You received this bug notification because you are a member of STS
Sponsors, which is subscribed to the bug report.
https://bugs.launchpad.net/bugs/1820929
Title:
netplan should consider adding more udev attribute for exact matching
of failover 3-netdev interfaces
Status in netplan:
Triaged
Status in initramfs-tools package in Ubuntu:
New
Status in netplan.io package in Ubuntu:
Triaged
Status in systemd package in Ubuntu:
Incomplete
Status in initramfs-tools source package in Bionic:
Fix Released
Status in netplan.io source package in Bionic:
New
Status in systemd source package in Bionic:
New
Bug description:
[Impact]
* At present, virtual machines utilizing net_failover network
interface configurations are incorrectly configured due to the
reliance on the MAC address to identify specific network interfaces.
When net_failover is utilized, multiple interfaces will bear the same
MAC address (the net_failover master itself, as well as the interfaces
subordinate to it), rendering the MAC address ineffective for unique
identification of the interface. This results in incorrect naming of
network interfaces from the "set-name" directive in the netplan
configuration.
* The solution here is to use the interface name instead of the MAC
address when the interface is a net_failover master device. Logic is
added on initramfs-tools to check the device type and virtio flags to
apply this change only to net_failover master devices.
[Test Case]
* The change can be tested by configuring a virtual machine with a
virtio_net network device with the "failover=on" option to the
"-device" option to qemu, e.g.,
-device virtio-net-
pci,netdev=hostnet0,id=net0,bus=pci.0,addr=0x3,mac=00:00:17:00:18:04,failover=on
* This will set the virtio device "standby" feature bit (bit 62,
counting from 0). This requires a version of qemu with support for
this feature.
* When so configured, the netplan configuration generated by initramfs
will not contain a "macaddress:" match directive for the network
interface in question.
[Regression Potential]
* Erroneous identification of a network interface as a net_failover
master device could lead to omission of a macaddress directive,
causing interfaces to be incorrectly named.
To manage notifications about this bug go to:
https://bugs.launchpad.net/netplan/+bug/1820929/+subscriptions