ⓘ Create and detect VLAN devices before applying live configuration, parse live VLANs with their physical parent instead of a virtual alias, normalize persisted dotted VLAN names when the parent device exists, consistently target the real VLAN device across the ip, ifup and vconfig paths, skip recreating existing devices or activating absent disabled ones, and add regression coverage.
https://github.com/webmin/webmin/pull/2785
ⓘ Create and configure missing bond devices with ip link, attach partner interfaces before assigning addresses, avoid legacy module auto-creation when ip is available, and add regression coverage.
Ref.: https://github.com/webmin/webmin/pull/2777
- When the system hostname domain changes, update `localhost.<old-domain>` in Postfix `mydestination` to `localhost.<new-domain>`.
- This sits alongside the existing hostname/FQDN updates for Postfix destinations.
Previous behavior:
`save_dns.cgi` only updated Postfix `mydestination` entries that exactly matched:
- the old short hostname, like `host`
- the old FQDN, like `host.old-domain.test`
It did **not** update:
- `localhost.old-domain.test`
So if you changed:
```text
host.old-domain.test
```
to:
```text
host.new-domain.test
```
Postfix could become:
```text
mydestination = host.new-domain.test, host, localhost.old-domain.test
```
After this hunk, it also updates that localhost domain entry:
```text
localhost.old-domain.test
```
to:
```text
localhost.new-domain.test
```
- Preserve existing spacing and inline comments when rewriting `/etc/nsswitch.conf` `hosts:` lines.
- Preserve indentation, comment prefix, inline comments, and field separators when rewriting `/etc/hosts` rows.
- Add tests for the `nsswitch.conf` spacing/comment behavior.
ⓘ Treat Linux active virtual interfaces as secondary IP addresses instead of independent links, fixing alias parsing, hiding invalid status controls, rejecting down-state creation, and removing existing aliases with ip addr del when needed.
Reproduce path:
Example repro before this fix:
1. Go to **Network Configuration → Network Interfaces → Active Now**.
2. Click **Add a new interface**.
3. Enter:
```text
Name: enp0s5:1
IPv4 address: 10.211.55.21
Netmask: 255.255.255.0
Status: Down
```
4. Click **Create**.
Before the fix, Webmin could still create the alias or handle it inconsistently, because `enp0s5:1` is not a real link that can be “down”. It is just an extra IP address on `enp0s5`.
Expected after the fix:
- The UI should not offer `Status` for active virtual aliases.
- If someone submits `up=0` manually anyway, Webmin rejects it with:
`Virtual interfaces cannot be created with down status`
- If an existing active virtual alias is saved as down through lower-level code, Webmin removes the IP using something like:
```bash
ip addr del 10.211.55.21/24 dev enp0s5
```
This PR adds dhcpcd backend support for Debian and Raspberry Pi OS network configuration. It detects dhcpcd only as a final fallback after Netplan, NetworkManager, and ifupdown, preventing Webmin from incorrectly falling back to `/etc/network/interfaces` on dhcpcd-managed systems.
The new backend reads and writes `/etc/dhcpcd.conf`, including DHCP and static IPv4/IPv6 configuration, gateways, static routes, DNS servers, search domains, MTU, and virtual IPv4 aliases. It also supports implicit DHCP-managed interfaces for default dhcpcd setups with no explicit interface blocks, and handles `allowinterfaces` / `denyinterfaces` behavior.
This PR also fixes apply/delete flows for dhcpcd-managed interfaces and virtual aliases, avoids rewriting generated `/etc/resolv.conf`, preserves spacing/comments in touched hosts and nsswitch files, and tightens Active Now handling so virtual aliases are treated as IP addresses rather than independent links.
https://github.com/webmin/webmin/issues/1607
This PR adds baseline Alpine Linux support in Webmin with OS detection, APK package and update backend, OpenRC boot integration, ifupdown-style networking support and DHCPD defaults.
https://github.com/webmin/webmin/issues/2353
ⓘ Prefer Netplan when Debian has Netplan YAML config, otherwise select the existing NetworkManager backend for Debian systems with saved NM connection profiles, with regression tests for backend selection.
https://github.com/webmin/webmin/issues/2559
* Note: Preserve existing Netplan indentation when updating DNS settings, validate with netplan generate before applying, and surface apply errors to avoid network loss from malformed YAML.