¿Cómo hago cambios persistentes en la interfaz de red mediante programación?

¿Cómo hago cambios persistentes en la interfaz de red mediante programación?

Estoy ejecutando Debian Wheezy en una plataforma integrada (variante Beaglebone) y quiero permitir a los usuarios realizar cambios persistentes en una interfaz de red, por ejemplo, cambiar de estático a DHCP o agregar una puerta de enlace. Una vez que realicen el cambio, quiero que pueda sobrevivir a un reinicio, para que aparezca el último cambio realizado seleccionado por el usuario.

Dado que los usuarios cambiarán esto a través de una interfaz de usuario web, quiero realizar los cambios mediante programación. Estaba pensando en generar un nuevo archivo de 'interfaces' y reemplazar el archivo /etc/network/interaces existente (luego forzar un reinicio), pero me preguntaba si existe una forma menos intrusiva de hacerlo, por ejemplo, a través de la línea de comando o otro método programático. Si bien el código de mi servidor integrado tiene toda la información necesaria para generar un archivo /etc/network/interfaces de reemplazo, me preocupa que cualquier error que encuentre pueda romper el archivo de interfaces y bloquear efectivamente el sistema para el usuario. De ahí mi pregunta sobre una forma menos intrusiva de hacer esto.

Así es como se ve nuestro archivo de 'interfaces' de configuración de fábrica actual:

# loopback network interface
auto lo
iface lo inet loopback

#primary network interface
auto eth0
iface eth0 inet static
address 192.168.168.1
netmask 255.255.255.0
hwaddress ether xx:xx:xx:xx:xx:10

#secondary network interface
auto eth1
iface eth1 inet manual
hwaddress ether xx:xx:xx:xx:xx:11

Respuesta1

Puede limitar el daño separando las partes fijas y variables mediante la sourcepalabra clave en su interfacesarchivo principal. Desafortunadamente, source-directoryno está disponible en sibilancias.

información relacionada