canonical / canonical/cloud-init

ENI format - configuring metadata network-interfaces with iface defined twice but different family breaks all networking on cloud-init instance

Open
#3,105 8 comments 0 reactions 0 assignees View on GitHub
bug launchpad
Dominant language
Python
Stars
3.8k
Forks
1.1k
Avg merge
2d 23h
Merged PRs (30d)
18

Description

This bug was originally filed in Launchpad as [LP: #1745671](https://bugs.launchpad.net/cloud-init/+bug/1745671)

Launchpad details

affected_projects = ['cloud-init (CentOS)']

assignee = None
assignee_name = None
date_closed = None
date_created = 2018-01-26T19:45:38.021665+00:00
date_fix_committed = None
date_fix_released = None
id = 1745671
importance = medium
is_complete = False
lp_url = https://bugs.launchpad.net/cloud-init/+bug/1745671
milestone = None
owner = akaris
owner_name = Andreas Karis
private = False
status = triaged
submitter = akaris
submitter_name = Andreas Karis
tags = []
duplicates = []

_Launchpad user **Andreas Karis(akaris)** wrote on 2018-01-26T19:45:38.021665+00:00_

Description of problem:
Configuring metadata network-interfaces with "iface eth2 inet6 static" breaks all networking on cloud-init instance. This only works when configuring a sub interface.

The following breaks networking:
~~~
auto eth2
iface eth2 inet static
address 192.168.0.166
network services
netmask 255.255.0.0
broadcast 192.168.255.255
gateway 192.168.0.1
iface eth2 inet6 static
address 2001::166
gateway 2001::1
hwaddress aa:aa:aa:bb:bb:bb
~~~

According to https://wiki.debian.org/NetworkConfiguration , this should work, though:
+++
If you're configuring it manually then something like this will set the default gateway (network, broadcast and gateway are optional):

auto eth0
iface eth0 inet static
address 192.0.2.7
netmask 255.255.255.0
gateway 192.0.2.254

If you want to add an IPv6 address, too, append something like:

iface eth0 inet6 static
address 2001:db8::c0ca:1eaf
netmask 64
gateway 2001:db8::1ead:ed:beef
+++

And https://manpages.debian.org/jessie/ifupdown/interfaces.5.en.html
+++
Options are usually indented for clarity (as in the example above) but are not required to be.
+++

The following works correctly:
~~~
iface eth2 inet static
address 192.168.0.166
network services
netmask 255.255.0.0
broadcast 192.168.255.255
gateway 192.168.0.1
auto eth2:0
iface eth2:0 inet6 static
address 2001::166
gateway 2001::1
hwaddress aa:aa:aa:bb:bb:bb
~~~

Additional info:
result working:

Working instance: ./sosreport-20180125-075718/svc-1-lvsrouter/var/log/cloud-init-output.log
~~~
Cloud-init v. 0.7.9 running 'init-local' at Thu, 25 Jan 2018 07:48:44 +0000. Up 12.41 seconds.
Cloud-init v. 0.7.9 running 'init' at Thu, 25 Jan 2018 07:48:47 +0000. Up 16.00 seconds.
ci-info: +++++++++++++++++++++++++++++++Net device info++++++++++++++++++++++++++++++++
ci-info: +--------+------+----------------+---------------+-------+-------------------+
ci-info: | Device | Up | Address | Mask | Scope | Hw-Address |
ci-info: +--------+------+----------------+---------------+-------+-------------------+
ci-info: | lo: | True | 127.0.0.1 | 255.0.0.0 | . | . |
ci-info: | lo: | True | . | . | d | . |
ci-info: | eth1: | True | 10.250.246.171 | 255.255.252.0 | . | xx:xx:xx:xx:xx:xx |
ci-info: | eth1: | True | . | . | d | xx:xx:xx:xx:xx:xx |
ci-info: | eth2: | True | 192.168.0.166 | 255.255.0.0 | . | xx:xx:xx:xx:xx:xx |
ci-info: | eth2: | True | . | . | d | xx:xx:xx:xx:xx:xx |
ci-info: | eth0: | True | 10.247.246.174 | 255.255.252.0 | . | xx:xx:xx:xx:xx:xx |
ci-info: | eth0: | True | . | . | d | xx:xx:xx:xx:xx:xx |
ci-info: | eth3: | True | 172.16.30.226 | 255.255.255.0 | . | xx:xx:xx:xx:xx:xx |
ci-info: | eth3: | True | . | . | d | xx:xx:xx:xx:xx:xx |
ci-info: +--------+------+----------------+---------------+-------+-------------------+
ci-info: +++++++++++++++++++++++++++++Route IPv4 info++++++++++++++++++++++++++++++
ci-info: +-------+--------------+-------------+---------------+-----------+-------+
ci-info: | Route | Destination | Gateway | Genmask | Interface | Flags |
ci-info: +-------+--------------+-------------+---------------+-----------+-------+
ci-info: | 0 | 0.0.0.0 | 192.168.0.1 | 0.0.0.0 | eth2 | UG |
ci-info: | 1 | 10.247.244.0 | 0.0.0.0 | 255.255.252.0 | eth0 | U |
ci-info: | 2 | 10.250.244.0 | 0.0.0.0 | 255.255.252.0 | eth1 | U |
ci-info: | 3 | 172.16.30.0 | 0.0.0.0 | 255.255.255.0 | eth3 | U |
ci-info: | 4 | 192.168.0.0 | 0.0.0.0 | 255.255.0.0 | eth2 | U |
ci-info: +-------+--------------+-------------+---------------+-----------+-------+
Cloud-init v. 0.7.9 running 'modules:config' at Thu, 25 Jan 2018 07:48:50 +0000. Up 19.03 seconds.
~~~

result not working:
~~~
Cloud-init v. 0.7.9 running 'init-local' at Thu, 25 Jan 2018 11:50:02 +0000. Up 7.98 seconds.
Cloud-init v. 0.7.9 running 'init' at Thu, 25 Jan 2018 11:50:10 +0000. Up 15.71 seconds.
2018-01-25 06:50:10,348 - util.py[WARNING]: Route info failed: Unexpected error while running command.
Command: ['netstat', '-rn']
Exit code: 1
Reason: -
Stdout: Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
Stderr: -
ci-info: +++++++++++++++++++++++++++Net device info+++++++++++++++++++++++++++
ci-info: +--------+------+-----------+-----------+-------+-------------------+
ci-info: | Device | Up | Address | Mask | Scope | Hw-Address |
ci-info: +--------+------+-----------+-----------+-------+-------------------+
ci-info: | lo: | True | 127.0.0.1 | 255.0.0.0 | . | . |
ci-info: | lo: | True | . | . | d | . |
ci-info: | eth1: | True | . | . | . | xx:xx:xx:xx:xx:xx |
ci-info: | eth2: | True | . | . | . | xx:xx:xx:xx:xx:xx |
ci-info: | eth0: | True | . | . | . | xx:xx:xx:xx:xx:xx |
ci-info: | eth0: | True | . | . | d | xx:xx:xx:xx:xx:xx |
ci-info: | eth3: | True | . | . | . | xx:xx:xx:xx:xx:xx |
ci-info: +--------+------+-----------+-----------+-------+-------------------+
ci-info: !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Route info failed!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Cloud-init v. 0.7.9 running 'modules:config' at Thu, 25 Jan 2018 11:50:12 +0000. Up 17.90 seconds.
~~~

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.