** Description changed: + === Begin netplan SRU Template === [Impact] Virtual devices such as VLANs, bridges and bonds may require the user to set a specific MAC address for proper operation on networks; where the same MAC may be used by default by the systems due to the methods used to create them. [Test case] /!\ This only works with the networkd renderer; NetworkManager does not currently support setting a MAC on bonds and bridges. 1) Set a MAC address for a virtual device (bond, bridge or vlan), using the following syntax in netplan config: macaddress: ##:##:##:##:##:## 2) Validate that the device gets the MAC address applied. [Regression potential] Failure to bring up a device configured in netplan or to set the MAC should be looked at as a possible regression. Other issues could include failure to write the configuration for networkd or NetworkManager. + === End netplan SRU Template === + http://pad.lv/1690388 + https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1690388 + + === Begin cloud-init SRU Template === + [Impact] + Virtual devices such as VLANs, bridges and bonds may require the user to set a + specific MAC address for proper operation on networks; where the same MAC may + be used by default by the systems due to the methods used to create them. + + cloud-init would not render the mac address of the vlan into its + ifupdown/eni or netplan output. The result is that the vlan device + would not get the desired mac address. + + [Test Case] + The basic idea below is: + a.) launch an instance with proposed version of cloud-init. + b.) inside instance, get cloud-init's network rendering tool from trunk + c.) run the rendering tool against a config that failed before. + d.) check rendered netplan config to verify it has vlan mac addresses present. + + [Regression Potential] + Fairly low chance for regression. The mac address fields were just + not being written, and now they will be. + + ## launch an instance. + $ release=xenial + $ ref=$release-proposed + $ lxc-proposed-snapshot --proposed --publish $release $ref + $ lxc init $ref $name + + ## get render tool + $ wget https://git.launchpad.net/~cloud-init-dev/cloud-init/plain/tools/net-convert.py -O net-convert.py + + ## write a network config with vlan and mac address. + $ cat > net-config.yaml <<"EOF" + version: 1 + config: + - type: physical + name: eth0 + mac_address: "fa:35:9c:85:55:00" + subnets: [{type: dhcp}] + - type: vlan + name: eth0.101 + vlan_link: eth0 + vlan_id: 101 + mac_address: fe:35:9c:85:55:ee + mtu: 1500 + subnets: + - type: static + address: 192.168.2.10/24 + EOF + + $ for k in eni netplan; do + PYTHONPATH=$PWD python3 ./net-convert.py \ + --network-data=net-config.yaml --kind=yaml \ + --output-kind=$k --mac=eth0,fa:35:9c:85:55:00 \ + --directory=out.d ; done + + $ cat out.d/etc/network/interfaces + auto lo + iface lo inet loopback + + auto eth0 + iface eth0 inet dhcp + + auto eth0.101 + iface eth0.101 inet static + address 192.168.2.10/24 + hwaddress fe:35:9c:85:55:ee + mtu 1500 + vlan-raw-device eth0 + vlan_id 101 + + + $ cat out.d/etc/netplan/50-cloud-init.yaml + network: + version: 2 + ethernets: + eth0: + dhcp4: true + match: + macaddress: fe:35:9c:85:55:00 + set-name: eth0 + vlans: + eth0.101: + addresses: + - 192.168.2.10/24 + id: 101 + link: eth0 + macaddress: fe:35:9c:85:55:ee + + + ## If you're running on a openstack system, you can actually take + ## this a step further and replace the system networking with the + ## newly generated config, reboot and see the vlan come up. + ## You'll need to update the 'mac_address' for eth0 in net-config.yaml + ## to match your system, then re-run the net-convert and update the + ## system. + $ sudo cp out.d/etc/network/interfaces /etc/network/interfaces + $ sudo cp out.d/etc/udev/rules.d/70-persistent-net.rules /etc/udev/rules.d/70-persistent-net.rules + ## drop the .rules files and update the initramfs + $ sudo rm -f /etc/systemd/network/50-cloud-init-* + $ sudo update-initramfs -u -k all + $ sudo reboot + + + [Other Info] + Upstream commit at + https://git.launchpad.net/cloud-init/commit/?id=d059d480c3 + + === End cloud-init SRU Template === ---- The expected hwaddresses are as follows: 4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether a0:36:9f:2d:93:80 brd ff:ff:ff:ff:ff:ff inet6 fe80::a236:9fff:fe2d:9380/64 scope link valid_lft forever preferred_lft forever 5: bond0.101@bond0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether a0:36:9f:2d:93:80 brd ff:ff:ff:ff:ff:ff inet 104.130.20.119/24 brd 104.130.20.255 scope global bond0.101 valid_lft forever preferred_lft forever inet6 fe80::a236:9fff:fe2d:9380/64 scope link valid_lft forever preferred_lft forever 6: bond0.401@bond0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether a0:36:9f:2d:93:81 brd ff:ff:ff:ff:ff:ff inet 10.184.7.120/20 brd 10.184.15.255 scope global bond0.401 valid_lft forever preferred_lft forever inet6 fe80::a236:9fff:fe2d:9381/64 scope link valid_lft forever preferred_lft forever however cloud-init shows: May 12 14:33:28 xnox-iad-nr5 cloud-init[1163]: ci-info: ++++++++++++++++++++++++++++++++++++++++Net device info++++++++++++++++++++++++++++++++++++++++ May 12 14:33:28 xnox-iad-nr5 cloud-init[1163]: ci-info: +-----------+------+------------------------------+---------------+-------+-------------------+ May 12 14:33:28 xnox-iad-nr5 cloud-init[1163]: ci-info: | Device | Up | Address | Mask | Scope | Hw-Address | May 12 14:33:28 xnox-iad-nr5 cloud-init[1163]: ci-info: +-----------+------+------------------------------+---------------+-------+-------------------+ May 12 14:33:28 xnox-iad-nr5 cloud-init[1163]: ci-info: | bond0 | True | . | . | . | a0:36:9f:2d:93:81 | May 12 14:33:28 xnox-iad-nr5 cloud-init[1163]: ci-info: | bond0 | True | fe80::a236:9fff:fe2d:9381/64 | . | link | a0:36:9f:2d:93:81 | May 12 14:33:28 xnox-iad-nr5 cloud-init[1163]: ci-info: | bond0.101 | True | 104.130.20.119 | 255.255.255.0 | . | a0:36:9f:2d:93:81 | May 12 14:33:28 xnox-iad-nr5 cloud-init[1163]: ci-info: | bond0.101 | True | fe80::a236:9fff:fe2d:9381/64 | . | link | a0:36:9f:2d:93:81 | May 12 14:33:28 xnox-iad-nr5 cloud-init[1163]: ci-info: | lo | True | 127.0.0.1 | 255.0.0.0 | . | . | May 12 14:33:28 xnox-iad-nr5 cloud-init[1163]: ci-info: | lo | True | ::1/128 | . | host | . | May 12 14:33:28 xnox-iad-nr5 cloud-init[1163]: ci-info: | bond0.401 | True | 10.184.7.120 | 255.255.240.0 | . | a0:36:9f:2d:93:81 | May 12 14:33:28 xnox-iad-nr5 cloud-init[1163]: ci-info: | bond0.401 | True | fe80::a236:9fff:fe2d:9381/64 | . | link | a0:36:9f:2d:93:81 | May 12 14:33:28 xnox-iad-nr5 cloud-init[1163]: ci-info: | ens9f1 | True | . | . | . | a0:36:9f:2d:93:81 | May 12 14:33:28 xnox-iad-nr5 cloud-init[1163]: ci-info: | ens9f0 | True | . | . | . | a0:36:9f:2d:93:81 | May 12 14:33:28 xnox-iad-nr5 cloud-init[1163]: ci-info: +-----------+------+------------------------------+---------------+-------+-------------------+ Specifically bond0 | True | fe80::a236:9fff:fe2d:9381/64 | . | link | a0:36:9f:2d:93:81 bond0.101 | True | 104.130.20.119 | 255.255.255.0 | . | a0:36:9f:2d:93:81 Instead of expected a0:36:9f:2d:93:80 The generated netplan.yaml does not set macaddress on the vlans at all. Where as the network_data.json does explicitely specifies the mac address to be in use for those vlans: "vlan_mac_address" : "a0:36:9f:2d:93:80"
-- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1690388 Title: wrong hwaddr on the vlan bond with nplan and cloud-init To manage notifications about this bug go to: https://bugs.launchpad.net/cloud-init/+bug/1690388/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
