Diferença entre os comandos 'ifconfig' e 'ip'

15

Eu li alguns artigos / tutoriais sobre o comando 'ifconfig', a maioria deles incluiu uma declaração comum -

"ifconfig is deprecated by ip command"

e sugerido para aprender o comando ip. Mas nenhum deles explicou como o comando 'ip' é mais poderoso que o 'ifconfig'.

Qual é a diferença entre os dois?

    
por Mandar Shinde 03.10.2013 / 12:15

3 respostas

20

ifconfig é de net-tools , que não conseguiu acompanhar a pilha da rede Linux por um longo tempo. Ele também ainda usa ioctl para configuração de rede, que é uma maneira feia e menos poderosa de interagir com o kernel.

Muitas mudanças no código de rede do Linux e muitos novos recursos não estão acessíveis usando net-tools : roteamento de vários caminhos, roteamento de políticas (consulte o RPDB). route permite que você faça coisas estúpidas, como adicionar várias rotas ao mesmo destino, com a mesma métrica.

Além disso:

  • ifconfig não reporta o endereço de hardware adequado para alguns dispositivos.
  • Você não pode configurar ipip , sit , gre , l2tp , etc. em túneis estáticos no kernel.
  • Você não pode criar tun ou tap dispositivos.
  • A maneira de adicionar vários endereços a uma determinada interface também apresenta uma semântica ruim.
  • Você também não pode configurar o sistema de controle de tráfego do Linux usando net-tools .

Veja também ifconfig é uma droga .

EDIT : Removida afirmação sobre o desenvolvimento de net-tools , que até agora eu esqueci onde consegui este post. net-tools 'foi trabalhado desde que iproute2 foi lançado, embora seja principalmente correção de bugs e pequenas melhorias e recursos, como a internacionalização.

    
por 03.10.2013 / 18:57
7

ifconfig é um comando tradicional para exibir informações sobre interfaces de rede e alterar algumas configurações. Em particular, pode trazer interfaces para cima e para baixo. Existe na maioria das variantes unix.

No Linux, o comando ifconfig não evoluiu há muito tempo. Ainda está perfeitamente bem para o que faz. Se você estiver usando ifconfig para alguma coisa, não há motivo para parar.

O Linux também fornece o comando ip do conjunto de ferramentas iproute2 . O comando ip combina vários comandos clássicos e mais, incluindo ifconfig , route e arp . ip pode fazer muito mais do que ifconfig . Por outro lado, ip nem sempre está presente, especialmente em sistemas embarcados (e nunca em variantes unix além do Linux).

Analisar a saída de ifconfig é uma droga. Analisar a saída de ip é um pouco ruim. Nenhum vencedor lá.

    
por 04.10.2013 / 02:08
5

Apenas para adicionar alguns bits à resposta de pilona. Por volta de 2005, foi introduzido um novo mecanismo para controlar a pilha de rede - sockets de netlink .

Para configurar a interface de rede iproute2 faz uso desse mecanismo de soquete netlink full-duplex, enquanto ifconfig depende de uma chamada de sistema ioctl . Aqui estão dois artigos principais sobre a motivação por trás do netlink e uso do rtnetlink .

    
por 03.10.2013 / 19:27