Reconfiguring interface appends address unlike `busybox-ifupdown`
ailons opened this issue · comments
Configuring interface eth0
with address 192.168.1.2
and then reconfiguring
it with address 10.0.0.2
behaves differently from busybox-ifupdown
.
On ifupdown-ng
the new address (10.0.0.2
) is added to the interface
(eth0
) while the previous address (192.168.1.2
) remains.
On busybox-ifupdown
the new address (10.0.0.2
) replaces the previous
address (192.168.1.2
).
The following commands were tested on Alpine Linux v3.13:
With ifupdown-ng
:
localhost:~# ls -l /sbin/ifup
lrwxrwxrwx 1 root root 14 Apr 19 16:12 /sbin/ifup -> /sbin/ifupdown
localhost:~# ls -l /sbin/ifdown
lrwxrwxrwx 1 root root 14 Apr 19 16:12 /sbin/ifdown -> /sbin/ifupdown
localhost:~# ip a
1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
link/ether 52:54:00:4e:ac:92 brd ff:ff:ff:ff:ff:ff
localhost:~# cat <<EOF >/etc/network/interfaces
> auto lo
> iface lo inet loopback
> auto eth0
> iface eth0 inet static
> address 192.168.1.2
> netmask 255.255.255.0
> gateway 192.168.1.1
> EOF
localhost:~# rc-service networking restart
* Starting networking ...
* lo ... [ ok ]
* eth0 ... [ ok ]
localhost:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:4e:ac:92 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.2/24 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::5054:ff:fe4e:ac92/64 scope link
valid_lft forever preferred_lft forever
localhost:~# cat <<EOF >/etc/network/interfaces
> auto lo
> iface lo inet loopback
> auto eth0
> iface eth0 inet static
> address 10.0.0.2
> netmask 255.255.255.0
> gateway 10.0.0.1
> EOF
localhost:~# rc-service networking restart
* Stopping networking ...
* lo ... [ ok ]
* eth0 ...
ip: RTNETLINK answers: No such process [ ok ]
* Starting networking ...
* lo ... [ ok ]
* eth0 ... [ ok ]
localhost:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:4e:ac:92 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.2/24 scope global eth0
valid_lft forever preferred_lft forever
inet 10.0.0.2/24 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::5054:ff:fe4e:ac92/64 scope link
valid_lft forever preferred_lft forever
With busybox-ifupdown
:
localhost:~# ls -l /sbin/ifup
lrwxrwxrwx 1 root root 12 Apr 19 16:17 /sbin/ifup -> /bin/busybox
localhost:~# ls -l /sbin/ifdown
lrwxrwxrwx 1 root root 12 Apr 19 16:17 /sbin/ifdown -> /bin/busybox
localhost:~# ip a
1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
link/ether 52:54:00:b4:bc:29 brd ff:ff:ff:ff:ff:ff
localhost:~# cat <<EOF >/etc/network/interfaces
> auto lo
> iface lo inet loopback
> auto eth0
> iface eth0 inet static
> address 192.168.1.2
> netmask 255.255.255.0
> gateway 192.168.1.1
> EOF
localhost:~# rc-service networking restart
* Starting networking ...
* lo ... [ ok ]
* eth0 ... [ ok ]
localhost:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:b4:bc:29 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.2/24 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::5054:ff:feb4:bc29/64 scope link
valid_lft forever preferred_lft forever
localhost:~# cat <<EOF >/etc/network/interfaces
> auto lo
> iface lo inet loopback
> auto eth0
> iface eth0 inet static
> address 10.0.0.2
> netmask 255.255.255.0
> gateway 10.0.0.1
> EOF
localhost:~# rc-service networking restart
* Stopping networking ...
* lo ... [ ok ]
* eth0 ... [ ok ]
* Starting networking ...
* lo ... [ ok ]
* eth0 ... [ ok ]
localhost:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:b4:bc:29 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.2/24 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::5054:ff:feb4:bc29/64 scope link
valid_lft forever preferred_lft forever
Is this the expected behavior?
Weird. Can you do ifdown -v eth0 after bringing network up on busybox-ifupdown?
Running the busybox-ifupdown
flow again and then running ifdown -v eth0
emits:
localhost:~# ifdown -v eth0
run-parts /etc/network/if-down.d
ip addr flush dev eth0 label eth0
ip link set eth0 down
run-parts /etc/network/if-post-down.d
Thanks much. We can do similar in ifupdown-ng.