ifconfig, um acrônimo em inglês de "configuração de interface" (interface configuration) é um comando de UNIX e de sistemas operacionais tipo UNIX para configurar, controlar e visualizar informações sobre parâmetros TCP/IP de uma interface de rede. Esta ferramenta apareceu inicialmente no 4.2BSD, como parte das ferramentas TCP/IP BSD(BSD TCP/IP suite). Esse comando é análogo ao comando ipconfig do Sistema Operacional Windows.

Saída do ifconfig em 2008

Utilização

editar

A utilização do ifconfig inclui a configuração de um Endereço IP e máscara de rede em uma interface, e habilitar e desabilitar uma determinada interface.[1] Durante a inicialização, vários sistemas operacionais tipo Unix configuram suas interfaces através de shell scripts que invocam o ifconfig. Como ferramenta interativa, administradores de sistema frequentemente utilizam o ifconfig para visualizar parametros das interfaces. A saída abaixo mostra o status de uma interface eth0 em um cliente Linux, e a interface ural0 no OpenBSD

eth0      Link encap:Ethernet  HWaddr 00:0F:20:CF:8B:42
          inet addr:217.149.127.10  Bcast:217.149.127.63  Mask:255.255.255.192
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2472694671 errors:1 dropped:0 overruns:0 frame:0
          TX packets:44641779 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1761467179 (1679.7 Mb)  TX bytes:2870928587 (2737.9 Mb)
          Interrupt:28

ural0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        lladdr 00:0d:0b:ed:84:fb
        media: IEEE802.11 DS2 mode 11b hostap (autoselect mode 11b hostap)
        status: active
        ieee80211: nwid ARK chan 11 bssid 00:0d:0b:ed:84:fb  100dBm
        inet 172.30.50.1 netmask 0xffffff00 broadcast 172.30.50.255
        inet6 fe80::20d:bff:feed:84fb%ural0 prefixlen 64 scopeid 0xa

As suas saídas são dividas das seguintes formas[2]:

  • Link encap: Qual encapsulamento está sendo usado pela rede, exemplo Ethernet.
  • Hwaddr: Qual é o endereço do Media Access Control (MAC) da interface de rede, mostrado em forma hexadecimal. Essas sequências são únicas e já vem configurado de fábrica.
  • inet addr: Mostra o endereço IP da interface de rede.
  • Bcast: Mostra qual é o endereço de broadcast que a rede está conectado.
  • Mask: Esse item identifica qual é a máscara de rede (netmask). Em sua maior parte é o 255.255.255.0
  • MTU: Mostra o tamanho da Unidade Máxima de Transmissão e que defini o tamanho máximo que um pacote individual de dados pode possuir. Caso ele passe disso, ele será fracionado.
  • RX: Esse item mostra as informações do tráfico de rede recebido.
  • TX: Fornece os dados enviados. Quaisquer erros registrados nessa parte, mostra que possui algum problema com a rede.
  • collisions: Caso dois sistemas de rede tentam conversar ao mesmo tempo, este dispositivo entrará em colisão que é necessário que eles retransmitam seus pacotes. Caso houver um algo indícios de conflitos, isso era um problema na rede.
  • txqueuelen: O número padrão é o 1000 e raramente precisa de alguma mudança
  • RX bytes, TX bytes: Mostra um resumo de bandas recebidas e enviadas pela interface de rede.

Estado Atual

editar

Sistemas operacionais descendentes de UNIX, BSD's (NetBSD, OpenBSD, e FreeBSD) continuam a desenvolver ativamente o ifconfig e extensões para cobrir a configuração de interfaces de redes sem fio, VLAN trunking, controle de funcionalidades de hardware como TSO ou checksumming de hardware e configuração de interfaces do tipo bridge e tunnel. O Solaris historicamente utilizou o ifconfig para todas as configurações de interface de rede, porém após a versão 10 a ferramenta dladm foi introduzida para executar configurações de Camada 2(Modelo OSI), reduzindo o ifconfig puramente a configuração de ip.

Em distribuições Linux mais antigas, o ifconfig e o comando route operavam junto para conectar um computador a uma rede, e definir rotas entre redes. O ifconfig para Linux faz parte do pacote net-tools, que ainda é mantido e tem como última versão a 1.60 de 15 de Abril de 2001.[3]

O intuito em distribuições Linux modernas é o de descontinuar o ifconfig e o route como ferramentas padrão de configuração de redes, em prol do pacote iproute2,[4] disponível desde 17 de Abril de 1999 par o Linux 2.2.4, baseado nos dados de tarballs do iproute2 em seu sítio de projeto(pois o histórico do git não chega tão antigamente). E apesar de tudo, muitas distribuições ainda falham em usar o iproute2 como pacote padrão de gerenciamento de redes.[5] O iproute inclui suporte a todas as funcionalidades comuns dos pacotes ifconfig(8), route(8), arp(8) e netstat(1), e além disto, configuração de multicast, tunnel e gerenciamento de link virtual, controle de tráfego e configuração de nível mais baixo do IPsec.

Referências

  1. Linux Network Administrators Guide - Em inglês «Section 5.7. Interface Configuration for IP». www.faqs.org 
  2. Upton, Eben; Gereth Halfacree. Novatec, ed. Raspberry Pi: manual do usuário. Junho de 2013. São Paulo: [s.n.] 9788575223512 
  3. Upstream URL http://net-tools.sourceforge.net/
  4. Gundersen, Tom. «News: Deprecation of net-tools - em inglês». Consultado em 4 Agosto 2011 
  5. https://fedorahosted.org/releases/i/n/initscripts/ Versão 9.24 mostra traços de invocações ao ifconfig