Serão os scripts de rede do CentOS fazendo algo que vai contra o que você está tentando fazer. Meu palpite é que, se você fizer tudo como você tem até:
ifdown eth0 && ifup eth0
mas, em vez disso, execute:
ifconfig eth0 down && ifconfig eth0 up
você deve estar bem. ifdown e ifup são scripts de sistema que fazem muito mais do que apenas trazer uma interface para cima e para baixo. Eu sugiro escrever seu próprio script personalizado para modificar as propriedades da interface, fora ifdown / ifup.
Ou crie isso como um bug no CentOS, já que possivelmente os scripts do sistema não estão estritamente fazendo o que eles deveriam estar fazendo, neste caso.