When deploying a VyOS instance with multiple NICs on Azure, the NIC enumeration is sometimes incorrect, and/or certain NICs fail to initialize fully. This occurs intermittently, not every deployment is affected.
Two patterns are observed:
1. NICs missing configuration/IP
Expected NICs (e.g., eth2, eth3) appear in show interfaces with correct MAC addresses but no IP address.
Configuration from /config/config.boot is not applied to these NICs.
2. Unexpected extra NICs
Additional NICs (e.g., eth5, eth6) appear after deployment even though only 4 NICs were provisioned.
The numbering of NICs may be non-sequential (e.g., eth0, eth1, eth2, eth3, eth5, eth6).
Example issue after deployment:
```
adminuser@VyOS-for-Tests# run sh interfaces
Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down
Interface IP Address MAC VRF MTU S/L Description
----------- ------------ ----------------- ------- ----- ----- -------------
eth0 10.0.1.4/24 7c:ed:8d:0e:69:31 default 1500 u/u WAN
eth1 10.0.11.6/24 7c:ed:8d:0e:6e:b8 default 1500 u/u LAN1
eth2 - 7c:ed:8d:0e:63:a8 default 1500 u/u LAN2
eth3 - 7c:ed:8d:0e:68:8c default 1500 u/u LAN3
lo 127.0.0.1/8 00:00:00:00:00:00 default 65536 u/u
::1/128
[edit]
adminuser@VyOS-for-Tests# load /con
Possible completions:
<Enter> Execute the current command
[edit]
adminuser@VyOS-for-Tests# load /config/config.boot
Loading configuration from '/config/config.boot'
Load complete. Use 'commit' to make changes effective.
[edit]
adminuser@VyOS-for-Tests# compare
[interfaces ethernet]
+ eth2 {
+ address "dhcp"
+ description "LAN2"
+ dhcp-options {
+ no-default-route
+ }
+ hw-id "7c:ed:8d:0e:63:a8"
+ mtu "1500"
+ }
[edit]
adminuser@VyOS-for-Tests# commit
WARNING: could not change "eth2" flow control setting!
[ interfaces ethernet eth2 ]
WARNING: could not change "eth2" flow control setting!
VyOS had an issue completing a command.
We are sorry that you encountered a problem while using VyOS.
There are a few things you can do to help us (and yourself):
- Contact us using the online help desk if you have a subscription:
https://support.vyos.io/
- Make sure you are running the latest version of VyOS available at:
https://vyos.net/get/
- Consult the community forum to see how to handle this issue:
https://forum.vyos.io
- Join us on Slack where our users exchange help and advice:
https://vyos.slack.com
When reporting problems, please include as much information as possible:
- do not obfuscate any data (feel free to contact us privately if your
business policy requires it)
- and include all the information presented below
Report time: 2025-08-12 05:01:09
Image version: VyOS 1.4.3
Release train: sagitta
Built by: autobuild@vyos.net
Built on: Tue 08 Jul 2025 08:28 UTC
Build UUID: be282af8-f739-4381-b30d-0b0a629d5f5b
Build commit ID: f327543504e3da-dirty
Architecture: x86_64
Boot via: installed image
System type: Microsoft Hyper-V guest
Hardware vendor: Microsoft Corporation
Hardware model: Virtual Machine
Hardware S/N: 0000-0003-3870-2333-8306-2271-66
Hardware UUID: 2f011fc7-edb3-4bde-ba20-62100feb49d4
Traceback (most recent call last):
File "/usr/libexec/vyos/conf_mode/interfaces_ethernet.py", line 467, in <module>
apply(c)
File "/usr/libexec/vyos/conf_mode/interfaces_ethernet.py", line 444, in apply
e.update(ethernet)
File "/usr/lib/python3/dist-packages/vyos/ifconfig/ethernet.py", line 467, in update
super().update(config)
File "/usr/lib/python3/dist-packages/vyos/ifconfig/interface.py", line 1627, in update
vrf_changed = self.set_vrf(config.get('vrf', ''))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/vyos/ifconfig/interface.py", line 584, in set_vrf
self.set_interface('vrf', vrf)
File "/usr/lib/python3/dist-packages/vyos/ifconfig/control.py", line 183, in set_interface
return self._set_command(self.config, name, value)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/vyos/ifconfig/control.py", line 110, in _set_command
return self._command_set[name].get('format', lambda _: _)(self._cmd(cmd))
^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/vyos/ifconfig/control.py", line 52, in _cmd
return cmd(command, self.debug)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/vyos/utils/process.py", line 155, in cmd
raise OSError(code, feedback)
FileNotFoundError: [Errno 2] failed to run command: ip link set dev eth2 nomaster
returned:
exit code: 2
noteworthy:
cmd 'ethtool --pause eth2 autoneg on tx on rx on'
returned (out):
returned (err):
netlink error: Operation not supported
cmd 'ip link set dev eth2 nomaster'
returned (out):
returned (err):
RTNETLINK answers: Operation not supported
[[interfaces ethernet eth2]] failed
Commit failed
[edit]
adminuser@VyOS-for-Tests#
[edit]
adminuser@VyOS-for-Tests# run sh interfaces
Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down
Interface IP Address MAC VRF MTU S/L Description
----------- ------------ ----------------- ------- ----- ----- -------------
eth0 10.0.1.4/24 7c:ed:8d:0e:69:31 default 1500 u/u WAN
eth1 10.0.11.6/24 7c:ed:8d:0e:6e:b8 default 1500 u/u LAN1
eth2 - 7c:ed:8d:0e:63:a8 default 1500 u/u LAN2
eth3 - 7c:ed:8d:0e:68:8c default 1500 u/u LAN3
lo 127.0.0.1/8 00:00:00:00:00:00 default 65536 u/u
::1/128
[edit]
adminuser@VyOS-for-Tests# load /con
Possible completions:
<Enter> Execute the current command
[edit]
adminuser@VyOS-for-Tests# load /config/config.boot
Loading configuration from '/config/config.boot'
Load complete. Use 'commit' to make changes effective.
[edit]
adminuser@VyOS-for-Tests# compare
[interfaces ethernet]
+ eth2 {
+ address "dhcp"
+ description "LAN2"
+ dhcp-options {
+ no-default-route
+ }
+ hw-id "7c:ed:8d:0e:63:a8"
+ mtu "1500"
+ }
[edit]
adminuser@VyOS-for-Tests# commit
WARNING: could not change "eth2" flow control setting!
[ interfaces ethernet eth2 ]
WARNING: could not change "eth2" flow control setting!
VyOS had an issue completing a command.
We are sorry that you encountered a problem while using VyOS.
There are a few things you can do to help us (and yourself):
- Contact us using the online help desk if you have a subscription:
https://support.vyos.io/
- Make sure you are running the latest version of VyOS available at:
https://vyos.net/get/
- Consult the community forum to see how to handle this issue:
https://forum.vyos.io
- Join us on Slack where our users exchange help and advice:
https://vyos.slack.com
When reporting problems, please include as much information as possible:
- do not obfuscate any data (feel free to contact us privately if your
business policy requires it)
- and include all the information presented below
Report time: 2025-08-12 05:01:09
Image version: VyOS 1.4.3
Release train: sagitta
Built by: autobuild@vyos.net
Built on: Tue 08 Jul 2025 08:28 UTC
Build UUID: be282af8-f739-4381-b30d-0b0a629d5f5b
Build commit ID: f327543504e3da-dirty
Architecture: x86_64
Boot via: installed image
System type: Microsoft Hyper-V guest
Hardware vendor: Microsoft Corporation
Hardware model: Virtual Machine
Hardware S/N: 0000-0003-3870-2333-8306-2271-66
Hardware UUID: 2f011fc7-edb3-4bde-ba20-62100feb49d4
Traceback (most recent call last):
File "/usr/libexec/vyos/conf_mode/interfaces_ethernet.py", line 467, in <module>
apply(c)
File "/usr/libexec/vyos/conf_mode/interfaces_ethernet.py", line 444, in apply
e.update(ethernet)
File "/usr/lib/python3/dist-packages/vyos/ifconfig/ethernet.py", line 467, in update
super().update(config)
File "/usr/lib/python3/dist-packages/vyos/ifconfig/interface.py", line 1627, in update
vrf_changed = self.set_vrf(config.get('vrf', ''))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/vyos/ifconfig/interface.py", line 584, in set_vrf
self.set_interface('vrf', vrf)
File "/usr/lib/python3/dist-packages/vyos/ifconfig/control.py", line 183, in set_interface
return self._set_command(self.config, name, value)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/vyos/ifconfig/control.py", line 110, in _set_command
return self._command_set[name].get('format', lambda _: _)(self._cmd(cmd))
^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/vyos/ifconfig/control.py", line 52, in _cmd
return cmd(command, self.debug)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/vyos/utils/process.py", line 155, in cmd
raise OSError(code, feedback)
FileNotFoundError: [Errno 2] failed to run command: ip link set dev eth2 nomaster
returned:
exit code: 2
noteworthy:
cmd 'ethtool --pause eth2 autoneg on tx on rx on'
returned (out):
returned (err):
netlink error: Operation not supported
cmd 'ip link set dev eth2 nomaster'
returned (out):
returned (err):
RTNETLINK answers: Operation not supported
[[interfaces ethernet eth2]] failed
Commit failed
[edit]
adminuser@VyOS-for-Tests#
[edit]
```
I am attaching Terraform project to reproduce issue
{F16144941}