ip-tools vs ifconfig antigo

4

Quando depois altero o dhcp para estático em scripts de rede e, em seguida, reinicio o serviço systemctl restart NetworkManager . As configurações de ip estáticas devem ser atualizadas, mas isso não acontece. então eu tento

ip link set dev enp0s3 down e, em seguida, up

não atualizou o ip

e depois tento com ifdown enp0s3 then ifup enp0s3

funcionou

Por que funcionou com ifup ?

    
por love_linux 18.11.2018 / 21:08

2 respostas

3

Preâmbulo: ip e ifconfig são utilitários para o controle e monitoramento . Eles não são normalmente usados para ler / gravar arquivos de configuração persistentes - e é por isso que ip link não funcionou. O gerenciamento de configuração persistente deve ser realizado por outros meios, como NetworkManager .

(É desnecessário dizer, mas, como uma nota secundária, iproute2 , que fornece ip , foi / é sendo adotado por muitas distribuições como um substituto para net-tools , que fornece ifconfig . Eles são frequentemente enviados como pacotes padrão nas distribuições por motivos de compatibilidade).

Por que ifup funcionou e systemctl restart NetworkManager não:

No CentOS (verifiquei o CentOS 7), ifup e ifdown são fornecidos por initscripts ; eles operam nos scripts em /etc/sysconfig/network-scripts/ , fornecidos pelo mesmo pacote. Assim, não é surpresa que ifup consiga aplicar as alterações que você fez lá.

NetworkManager - o provedor de serviços de rede padrão que o CentOS herdou do upstream - no Red Hat e no Fedora é configurado para usar o ifcfg-rh plugin para ler / gravar a configuração de rede de /etc/sysconfig/network-scripts/ifcfg-* . Mas ele não monitora esses arquivos.

man nm-settings-ifcfg-rh avisa que

Users can create or modify the ifcfg-rh connection files manually, even if that is not the recommended way of managing the profiles. However, if they choose to do that, they must inform NetworkManager about their changes (see monitor-connection-file in nm-settings(5), and nmcli con (re)load).

Portanto, systemctl reload NetworkManager não deve recarregar a configuração de uma conexão de rede do arquivo no CentOS. Para fazer isso, você pode invocar a configuração nmcli connection reload ou alterar NetworkManager , conforme declarado em man NetworkManager.conf :

monitor-connection-files
Whether the configured settings plugin(s) should set up file monitors and immediately pick up changes made to connection files while NetworkManager is running. This is disabled by default; NetworkManager will only read the connection files at startup, and when explicitly requested via the ReloadConnections D-Bus call. [...]

    
por 20.11.2018 / 00:59
2

ip altera diretamente o estado do hardware, assim como ifconfig . A única diferença entre ifconfig e ip é que ip tem uma sintaxe diferente e suporta alguns recursos que ifconfig não possui.

ifup e ifdown , por outro lado, executam muitos scripts, lêem seu arquivo /etc/network/interfaces e outros arquivos de configuração e agem sobre isso. Isso inclui adicionar as configurações de IP estático que você provavelmente colocou em /etc/network/interfaces .

Em princípio, o Network Manager também deve pegá-los, mas eu não uso o Network Manager (na maior parte do tempo ele fica no meu caminho), então não posso dizer por que ele não funcionou. / p>

Então: se você quiser que seus arquivos de configuração de rede sejam levados em consideração, use ifup / ifdown e o Network Manager. Se você quiser alterar diretamente as configurações da interface, use ip e ifconfig .

    
por 19.11.2018 / 08:35