ifup: parsing file /etc/network/interfaces.d/test0
ifup: configuring interface test0=test0 (inet)
ip link add $IFACE type dummy
/bin/run-parts --exit-on-error --verbose /etc/network/if-pre-up.d
run-parts: executing /etc/network/if-pre-up.d/ethtool
/bin/ip link set dev test0 up
/bin/run-parts --exit-on-error --verbose /etc/network/if-up.d
run-parts: executing /etc/network/if-up.d/ethtool
run-parts: executing /etc/network/if-up.d/openssh-server
run-parts: executing /etc/network/if-up.d/upstart
$ sudo ifdown -v test0
ifdown: parsing file /etc/network/interfaces.d/test0
ifdown: configuring interface test0=test0 (inet)
/bin/run-parts --verbose /etc/network/if-down.d
run-parts: executing /etc/network/if-down.d/upstart
RTNETLINK answers: Cannot assign requested address
/bin/ip link set dev test0 down
/bin/run-parts --verbose /etc/network/if-post-down.d
ip link del $IFACE
可见,ifdown 的时候,会按照 interfaces 文件中写的 IP 去 `ip addr del` ,所以,原来配置在 test0 上的 1.1.1.1 这个 IP 不会被删除。
当然,我的这个例子,ifdown test0 && ifup test0 之后,test0 上的 1.1.1.1 这个IP会消失、只有 1.1.1.2 这个 IP,是因为我的例子中再 ifdown 最后会把 test0 这个 dev 删除,绑在上面的 IP 也就随之被删除了。