Pesquisa de site

ifconfig vs ip: Qual é a diferença e comparação da configuração de rede


As distribuições baseadas em Linux apresentam um conjunto de comandos que fornecem uma maneira de configurar a rede de maneira fácil e poderosa por meio da linha de comando. Este conjunto de comandos está disponível no pacote net-tools que existe há muito tempo em quase todas as distribuições e inclui comandos como: ifconfig, route<, nameif, iwconfig, iptunnel, netstat, arp.

Esses comandos são suficientes para configurar a rede da maneira que qualquer usuário novato ou experiente do Linux desejaria, mas devido ao avanço no kernel do Linux nos últimos anos e à impossibilidade de manutenção deste conjunto de comandos empacotados, eles estão ficando obsoletos e mais poderosos está surgindo uma alternativa que tem capacidade de substituir todos esses comandos.

Esta alternativa também já existe há algum tempo e é muito mais poderosa do que qualquer um desses comandos. O restante das seções destacaria esta alternativa e a compararia com um dos comandos do pacote net-tools, ou seja, ifconfig.

ip – Um substituto para ifconfig

ifconfig existe há muito tempo e ainda é usado para configurar, exibir e controlar interfaces de rede por muitos, mas agora existe uma nova alternativa nas distribuições Linux que é muito mais poderosa do que ela. Esta alternativa é o comando ip do pacote iproute2util.

Embora este comando possa parecer um pouco complexo à primeira vista, sua funcionalidade é muito mais ampla do que ifconfig. Ele é funcionalmente organizado em duas camadas de pilha de rede, ou seja, Camada 2 (Camada de link), Camada 3 (Camada IP >) e faz o trabalho de todos os comandos mencionados acima do pacote net-tools.

Embora ifconfig exiba ou modifique principalmente as interfaces de um sistema, este comando é capaz de realizar as seguintes tarefas:

  1. Exibindo ou modificando propriedades da interface.
  2. Adicionando, removendo entradas de cache ARP ao criar uma nova entrada ARP estática para um host.
  3. Exibindo endereços MAC associados a todas as interfaces.
  4. Exibindo e modificando tabelas de roteamento do kernel.

Um dos principais destaques que o separa de seu antigo equivalente ifconfig é que o último usa ioctl para configuração de rede, que é uma forma menos apreciada de interação com o kernel enquanto o primeiro aproveita do mecanismo de soquete netlink para o mesmo, que é um sucessor muito mais flexível do ioctl para intercomunicação entre o kernel e o espaço do usuário usando rtnetlink (que adiciona capacidade de manipulação do ambiente de rede).

Podemos agora começar a destacar os recursos do ifconfig e como eles são efetivamente substituídos pelo comando ip.

Comandos ip vs ifconfig

A seção a seguir destaca alguns dos comandos ifconfig e sua substituição usando comandos ip:

1. Exibindo todas as interfaces de rede no Linux

Aqui, uma característica distintiva entre ip e ifconfig é que enquanto ifconfig mostra apenas interfaces habilitadas, ip mostra todas as interfaces, estejam elas habilitadas ou desabilitadas.

Comando ifconfig
ifconfig

Comando ip
ip a

2. Adicionando ou excluindo um endereço IP no Linux

O comando abaixo atribui o endereço IP 192.168.80.174 à interface eth0.

ifconfig – Adicionar/excluir endereço IP
ifconfig eth0 add 192.168.80.174

Sintaxe para adicionar/remover uma interface usando o comando ifconfig:

ifconfig eth0 add 192.168.80.174
ifconfig eth0 del 192.168.80.174
ip – Adicionar/excluir endereço IP
ip a add 192.168.80.174 dev eth0

Sintaxe para adicionar/remover uma interface usando o comando ip:

ip a add 192.168.80.174 dev eth0
ip a del 192.168.80.174 dev eth0

4. Adicione endereço de hardware MAC à interface de rede

O comando abaixo define o endereço de hardware da interface eth0 para o valor especificado no comando. Isso pode ser verificado verificando o valor HWaddr na saída do comando ifconfig.

ifconfig – Adicionar endereço MAC

Aqui está a sintaxe para adicionar endereço MAC usando o comando ifconfig:

ifconfig eth0 hw ether 00:0c:29:33:4e:aa
ip – Adicionar endereço MAC

Aqui está a sintaxe para adicionar endereço MAC usando o comando ip:

ip link set dev eth0 address 00:0c:29:33:4e:aa

4. Definindo outras configurações de interface de rede

Além de definir o endereço IP ou o endereço de hardware, outras configurações que podem ser aplicadas a uma interface incluem:

  1. MTU (Unidade Máxima de Transferência)
  2. Sinalização multicast
  3. Comprimento da fila de transmissão
  4. Modo promíscuo
  5. Ativar ou desativar todos os modos multicast
ifconfig – Outras configurações de rede
ip – Outras configurações de rede

a. Defina o valor MTU para 2.000.

ifconfig eth0 mtu 2000
ip link set dev eth0 mtu 2000

b. Habilite ou desabilite o sinalizador multicast.

ifconfig eth0 multicast
ip link set dev eth0 multicast on

c. Configurando o comprimento da fila de transmissão.

ifconfig eth0 txqueuelen 1200
ip link set dev eth0 txqueuelen 1200

d. Ativando ou desativando o modo promíscuo.

ifconfig eth0 promisc
ip link set dev eth0 promisc on

e. Ative ou desative todos os modos multicast.

ifconfig eth0 allmulti
ip link set dev eth0 allmulti on

5. Habilitando ou desabilitando interface de rede

Os comandos abaixo habilitam ou desabilitam interface de rede específica.

ifconfig – Desativar/ativar interface de rede

O comando abaixo desativa a interface eth0 e é verificado pela saída de ifconfig que por padrão mostra apenas as interfaces que estão ativas.

ifconfig eth0 down

Para reativar a interface, basta substituir down por up.

ifconfig eth0 up
ip – Desativar/ativar interface de rede

O comando ip abaixo é uma alternativa para ifconfig desabilitar uma interface específica. Isso pode ser verificado pela saída do comando 'ip a' que mostra todas as interfaces por padrão, sejam elas ativas ou inativas, mas destaca seu status junto com a descrição.

ip link set eth0 down

Para reativar a interface, basta substituir down por up.

ip link set eth0 up

6. Habilite ou desabilite o uso do protocolo ARP

Os comandos abaixo ativam ou desativam o protocolo ARP em uma interface de rede específica.

ifconfig – Habilitar/Desabilitar Protocolo ARP

O comando permite que o protocolo ARP seja usado com a interface eth0. Para desabilitar esta opção, basta substituir arp por -arp.

ifconfig eth0 arp
ip – Habilitar/Desabilitar Protocolo ARP

Este comando é a alternativa ip para habilitar ARP para a interface eth0. Para desativar, basta substituir on por off.

ip link set dev eth0 arp on

Conclusão

Assim, destacamos os recursos do comando ifconfig e como eles podem ser feitos usando o comando ip. Atualmente, as distribuições Linux fornecem ao usuário ambos os comandos para que ele possa utilizar de acordo com sua conveniência. Então, qual comando é conveniente para você e qual você prefere usar? Mencione isso em seus comentários.

Se você quiser saber mais sobre esses dois comandos, então você deve ler nossos artigos anteriores que mostram alguns exemplos práticos dos comandos ifconfig e ip de forma mais detalhada.

Não perca: 15 exemplos “ifconfig” para configurar a interface de rede no Linux

Não perca: 10 exemplos de comandos “ip” para configurar a interface de rede no Linux