Eu tenho uma caixa sem cabeça baseada no Debian. Destina-se a ser acessado por meio de sua interface de rede. A rede é configurada através do arquivo /etc/network/interfaces
. Estou tentando validar se o arquivo é realmente válido. Minha ideia é verificar se o arquivo tem algum erro e, neste caso, voltar para um arquivo padrão.
Minha dúvida é sobre a primeira parte do problema: detectar um erro no interfaces
arquivo.
Encontrei muitas dúvidas sobre o uso de ifup --no-act
comandos, mas o que vejo na prática é que esse método não é robusto o suficiente para o meu caso. Tome o seguinte exemplo:
root@arm:~# ifup --no-act --interfaces=/etc/network/interfaces eth0
run-parts /etc/network/if-pre-up.d
ip addr add 1s23.123.123.123/255.255.255.192 broadcast + dev eth0 label eth0
ip link set dev eth0 up
ip route add default via 123.123.123.122 dev eth0
run-parts /etc/network/if-up.d
Observe o endereço IP inválido definido (extra 's' no primeiro octeto). O comando não dá nenhum erro (que eu possa ver, de qualquer maneira) e se eu reiniciar a máquina com o arquivo neste estado, perderei a capacidade de rede. Um válido interfaces
me dá um resultado muito semelhante (exceto para a broadcast +
parte):
root@arm:~# ifup --no-act --interfaces=/etc/network/interfaces eth0
run-parts /etc/network/if-pre-up.d
ip addr add 123.123.123.123/255.255.255.192 broadcast 123.123.123.127 dev eth0 label eth0
ip link set dev eth0 up
ip route add default via 123.123.123.122 dev eth0
run-parts /etc/network/if-up.d
Este é principalmente o problema que estou tentando evitar. Minha pergunta é como posso detectar uma configuração inválida no /etc/network/interfaces
arquivo? O sinal de mais indica que há um erro? O que isso significa? Qual é a melhor abordagem para resolver isso?