One thing to note is that you should always do:
- ifdown eth0
- modify config
- ifup eth0
Modifying the configuration and then doing ifdown + ifup isn’t supported, especially when you’re changing config type (from dhcp to static for example). ifupdown is stateless and so doesn’t know how the interface was configured in the past.