quarta-feira, 21 de agosto de 2013

Arquivos de configuração do NetworkManager

Em /etc/NetworkManager/NetworkManager.conf, seção [main], a opção plugins define onde o NM armazenará as configurações das interfaces de rede. Podem ser listados múltiplos plugin separados por vírgulas (dentre os habilitados durante a compilação): ele escreverá a configuração no local do primeiro plugin e interpretará a configuração dos demais, caso exista alguma.

O Fedora, desde a versão 17, usa o NM por padrão em todas as instalações, inclusive em modo texto. O único plugin configurado é o ifcfg-rh, que entende os velhos arquivos /etc/sysconfig/network-scripts/ifcfg-*.

A configuração é por interface, sendo que cada arquivo é amarrado a um endereço MAC. Você pode sem problema remover todos os arquivos ifcfg se quiser. A interface loopback é configurada pelo systemd e o arquivo ifcfg-lo é desnecessário. No próximo boot, se, em /etc/NetworkManager/NetworkManager.conf, não existir uma linha no-auto-default=<MAC>, o NM automaticamente criará uma nova configuração temporária (Conexão cabeada 1, 2...) usando DHCP. Se for feita qualquer modificação nessa configuração temporária (configurar um IP estático, desativar IPv6, etc), usando o nmcli ou a interface gráfica, o NM daí criará um arquivo /etc/sysconfig/network-scripts/ifcfg-Conexão_cabeada_1 e adicionará no-auto-default=<MAC> em /etc/NetworkManager/NetworkManager.conf contendo o MAC da interface em questão, para prevenir configuração automática futura; ou seja, a configuração do arquivo passa a sempre valer.

É possível usar outros formatos de configuração, como o plugin keyfile. Esse é o formato nativo do NM e armazena os arquivos em /etc/NetworkManager/system-connections. Funciona da mesma forma.

O openSUSE 12.3 é esquisito. Se você tiver apenas adaptadores cabeados, o instalador não habilita o NetworkManager por padrão. Usa em seu lugar o script SysV /etc/init.d/network de configuração de rede. Se existir um adaptador wireless, daí o NM é usado. No primeiro caso, altere, no YaST, em "Dispositivos de rede -> Configurações de rede -> Opções globais", "Método de configuração de rede" para "Controlado pelo usuário com o NetworkManager".

Em /etc/NetworkManager/NetworkManager.conf, o openSUSE configura os plugins ifcfg-suse e keyfile, nessa ordem. O primeiro não serve para nada, pois não importa configurações existentes nem é usado para gravar novas configurações (/etc/sysconfig/network/ifcfg-*). Ao modificar parâmetros, o NM usa o plugin nativo keyfile. Me pergunto por que vem configurado o ifcfg-suse...

Existem também os plugins ifupdown (Debian/Ubuntu) e ifnet (Gentoo). Não sei dizer onde salvam os arquivos ou se funcionam, pois não uso essas distribuições. Olhando por cima, dos plugins de compatibilidade com distribuições, o código mais desenvolvido e completo é o ifcfg-rh, tanto que é usado por padrão no Fedora.

Por comodidade e hábito, no Fedora, prefiro os arquivos ifcfg, porém o NM upstream recomenda o uso dos arquivos nativos, cross-distro, manejados pelo plugin keyfile.

Só para efeito de comparação, uma interface cabeada, configurada para usar DHCP e com IPv6 desativado, nos dois formatos:

keyfile
/etc/NetworkManager/system-connections/Conexão cabeada 1

[802-3-ethernet]
mac-address=XX:XX:XX:XX:XX:XX

[connection]
id=Conexão cabeada 1
uuid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
type=802-3-ethernet
timestamp=1377035207

[ipv6]
method=ignore

[ipv4]
method=auto

ifcfg-rh
/etc/sysconfig/network-scripts/ifcfg-Conexão_cabeada_1

HWADDR=XX:XX:XX:XX:XX:XX
TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
NAME="Conexão cabeada 1"
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
ONBOOT=yes

Nenhum comentário:

Postar um comentário