Se você está obtendo seu endereço de internet usando DHCP (o que é sugerido pela sua pergunta), então você pode usar /etc/dhcp/dhclient-exit-hooks
para executar os comandos do shell depois que dhclient
configurar sua interface. Você terá acesso a diversas variáveis fornecidas pelo dhclient, incluindo $router
. Você pode usar isso para executar:
ip route change default via $router dev $interface initcwnd 12
Você instalaria esse script com um recurso normal de Marionete file
:
file { '/etc/dhcp/dhclient-exit-hooks':
owner => root,
group => root,
mode => 0755,
source => 'puppet:///.../dhclient-exit-hooks',
}
E o conteúdo do arquivo provavelmente seria parecido com:
#!/bin/sh
if [ "$interface" = eth0 ]; then
ip route change default via ${new_routers%% *} dev $interface initcwnd 12
fi
Se você não estiver usando o DHCP, poderá fazer algo semelhante. O script normal ifup
executa /sbin/ifup-local
depois de configurar a interface, e você pode usar isso para executar o comando ip
. Nesse caso, você poderia obter o endereço do gateway padrão simplesmente fazendo o sourcing na configuração da interface em /etc/sysconfig/network-scripts/ifcfg-eth0
(e seu recurso Puppet file
instalaria /sbin/ifup-local
).