ifconfig vs ip: Qual a diferença e como comparar a configuração de rede

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

Ifconfig Vs IP Command

Estes comandos são quase suficientes para configurar a rede de modo que qualquer iniciante ou usuário experiente de Linux desejar, mas devido ao avanço no kernel Linux nos últimos anos e ao fato de este conjunto de comandos estar sem manutenção, eles estão sendo descontinuados e uma alternativa mais poderosa que tem a capacidade de substituir todos esses comandos está emergindo.

essa alternativa também existe há algum tempo e é muito mais poderosa que qualquer um desses comandos. O restante deste capítulo destacará essa alternativa e a comparará com um dos comandos do pacote net-tools, o ifconfig.

ip – Um Substituto para ifconfig

ifconfig tem existido por muito tempo e ainda é usado para configurar, exibir e controlar as interfaces de rede por muitos, mas agora existe uma nova alternativa em distribuições Linux que é muito mais poderosa do que a mesma. essa alternativa é o comando ip do pacote iproute2util.

Embora esse comando possa parecer um pouco complexo à primeira vista, ele é muito mais amplo em funcionalidade do que o ifconfig. Ele está organizado funcionalmente em dois níveis da pilha de rede, isto é, Layer 2 (Camada de Ligação), Layer 3 (Camada de IP) e faz o trabalho de todos os comandos mencionados acima do pacote net-tools.

Enquanto o ifconfig principalmente exibe ou modifica as interfaces do sistema, este comando é capaz de fazer as seguintes tarefas:

  1. Exibir ou modificar as propriedades das interfaces.
  2. Adicionando, removendo entradas da cache ARP, juntamente com a criação de novas entradas estáticas ARP para um host.
  3. Exibindo as endereços MAC associados a todas as interfaces.
  4. Exibindo e modificando as tabelas de roteamento do kernel.

Um dos principais destaques que o separam de sua versão antiga, o ifconfig, é que o último usa ioctl para configuração de rede, que é uma maneira menos apreciada de interação com o kernel, enquanto o primeiro aproveita o mecanismo de socket netlink para o mesmo fim, o qual é uma sucessora muito mais flexível do ioctl para intercomunicação entre o kernel e o espaço de usuário usando rtnetlink (o que adiciona a capacidade de manipular o ambiente de rede).

Agora podemos começar a destacar as features do ifconfig e como elas são eficazmente substituídas pelo comando ip.

ip vs ifconfig Comandos

A seguinte seção destaca alguns dos comandos do ifconfig e suas substituições usando os 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
ifconfig: Check IP Address
Comando ip
$ ip a
ip: Check IP Address

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. Adicionar Endereço MAC à Interface de Rede

O comando abaixo define o endereço de hardware para a 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, 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, a sintaxe para adicionar endereço MAC usando o comando ip:

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

4. Configurando Outras Configurações da Interface de Rede

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

  1. MTU (Unidade Máxima de Transferência)
  2. Flag de Multicast
  3. Comprimento da Fila de Transmissão
  4. Modo promíscuo
  5. Habilitar ou desabilitar todos os modos multicast
ifconfig – Outras Configurações de Rede
ip – Outras Configurações de Rede

a. Set MTU value to 2000.

 

# ifconfig eth0 mtu 2000
# ip link set dev eth0 mtu 2000

b. Enable or Disable multicast flag.

 

# ifconfig eth0 multicast
# ip link set dev eth0 multicast on

c. Setting the transmit queue length.

 

# ifconfig eth0 txqueuelen 1200
# ip link set dev eth0 txqueuelen 1200

d. Enabling or disabling promiscuous mode.

 

# ifconfig eth0 promisc
# ip link set dev eth0 promisc on

e. Enable or disable all multicast mode.

 

# ifconfig eth0 allmulti
# ip link set dev eth0 allmulti on

5. Habilitar ou Desabilitar Interface de Rede

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

ifconfig – Desabilitar/Habilitar Interface de Rede

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

# ifconfig eth0 down

Para reabilitar a interface, basta substituir down por up.

# ifconfig eth0 up
ip – Desabilitar/Habilitar Interface de Rede

O comando ip abaixo é uma alternativa para ifconfig para 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 não, mas destaca seu status junto com a descrição.

# ip link set eth0 down

Para reabilitar a interface, basta substituir down por up.

# ip link set eth0 up

6. Habilitar ou desabilitar o uso do protocolo ARP

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

ifconfig – Habilitar/Desabilitar Protocolo ARP

O comando habilita o protocolo ARP a ser usado com a interface eth0. Para desabilitar essa opção, basta substituir arp por -arp.

# ifconfig eth0 arp
ip – Habilitar/Desabilitar Protocolo ARP

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

# ip link set dev eth0 arp on

Conclusão

Assim, destacamos 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 usar de acordo com sua conveniência. Então, qual comando é conveniente para você e que você preferiria usar? Comente isso em seus comentários.

Se você deseja aprender mais sobre esses dois comandos, deve ler nossos artigos anteriores que mostram exemplos práticos do ifconfig e do comando ip de uma maneira mais detalhada.

Não perca: 15 Exemplos de “ifconfig” para Configurar a Interface de Rede no Linux

Não perca: 10 Exemplos de Comando “ip” para Configurar a Interface de Rede no Linux

Source:
https://www.tecmint.com/ifconfig-vs-ip-command-comparing-network-configuration/