Precisa manipular endereços de rede no Linux? Então os comandos ip addr, ip link e ip route passarão a estar entre as suas ferramentas indispensáveis. Com esse conjunto de ferramentas é possível visualizar e configurar parâmetros de rede TCP/IP de maneira simples.
Antes de entrarmos em mais detalhes sobre os comandos, vale dizer que se trata de uma variante do comando ip, normalmente usado em distribuições que não dispõem do pacote net-tools, por exemplo, substituindo-se, assim, o ifconfig.
Embora muitos usuários tenham familiaridade com o ifconfig (o que pode ser o seu caso), o comando ip oferece muitas possibilidades, sendo este, não por acaso, uma ferramenta bastante utilizada por administradores de sistemas.
Vamos ao que mais interessa? Neste artigo, fornecemos muitos exemplos de uso do comandos ip addr, ip link e ip route que demonstram a quantidade de recursos e a praticidade para executá-los. Confira!
ip addr
O comando ip addr permite que o usuário configure e gerencie endereços de IP integrados a uma interface de rede. Com isso, podemos: associar, desvincular e checar IPs ou desfazer configurações recentes. Saiba como, abaixo.
Associar endereço de IP a uma interface de rede (ip addr [IP] dev [interface])
Uma das atividades mais simples de administração de redes é assinar endereços de IP a determinados dispositivos / interfaces. Usando o comando ip addr, o procedimento é muito fácil e rápido:
sudo ip addr 192.168.XX.X dev eth1
Porém há um ponto negativo do comando: as configurações desaparecem após a reinicialização do sistema, então a sua efetividade é pequena na maioria dos casos. Ou seja, é mais apropriado em situações pontuais.
Remover endereço de IP
E se você quiser desassociar o IP do dispositivo conforme o exemplo acima? Obviamente, não é necessário reiniciar o sistema e causar indisponibilidade por algo tão básico. Basta digitar a opção del:
sudo ip addr del 192.168.XX.X/24 dev eth1
O procedimento é o mesmo para qualquer endereço de IP presente no ambiente de rede.
Checar endereços de IP disponíveis (ip addr show)
Relacionando com a operação anterior, como saber o endereço de IP associado a uma determinada interface? Digite ip addr show e receba a informação nos mínimos detalhes.
Exemplo de output: 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp7s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000 link/ether ec:f4:bb:f4:52:3d brd ff:ff:ff:ff:ff:ff 3: wlp6s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 10:08:b1:c6:26:83 brd ff:ff:ff:ff:ff:ff inet 192.168.1.103/24 brd 192.168.1.255 scope global dynamic noprefixroute wlp6s0 valid_lft 7141sec preferred_lft 7141sec inet6 fe80::965a:f71c:7db:c53e/64 scope link noprefixroute valid_lft forever preferred_lft forever
Nesse output temos a informação de que o endereço de IP do dispositivo wlp6s0 é 192.168.1.103/24, o qual seria a referência para alterar configurações da interface.
Além disso, o ip addr consegue listar endereços de IP disponíveis de acordo com a versão. Por exemplo, os comandos ip -4 addr e ip -6 addr retornam uma lista com endereços IPv4 e IPV6, respectivamente.
Apagar as configurações recém-aplicadas (ip addr flush)
Qualquer processo de configuração fica mais seguro quando temos um Ctrl+Z para resolver os problemas, não é mesmo? O ip addr oferece um recurso muito similar: a opção flush.
ip addr flush dev eth1
A diferença é que o comando não remove apenas a última modificação, mas todas as alterações feitas na interface. Logo, como o flush é um recurso extremo e tem de ser usado em último caso, é importante tomar cuidado ao configurar a interface de rede.
ip link
O comando ip link é utilizado para gerenciar e visualizar status de interfaces de rede e outras informações. Vejamos os exemplos, abaixo.
Exibir informações sobre interfaces de rede (ip link show)
Diferentemente do ip addr show, o ip link show apresenta informações das interfaces de rede disponíveis sem exibir endereços de IP vinculados a elas. O resultado é algo parecido com isso:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: enp7s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN mode DEFAULT group default qlen 1000 link/ether ec:f4:bb:f4:52:3d brd ff:ff:ff:ff:ff:ff 3: wlp6s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DORMANT group default qlen 1000 link/ether 10:08:b1:c6:26:83 brd ff:ff:ff:ff:ff:ff
Se você quiser obter detalhes de determinado dispositivo (enp7s0, por exemplo, conforme a lista apresentada acima), basta digitar o comando + o nome do device. Exemplo:
ip link show enp7s0
Com isso, é possível validar as configurações de rede apenas usando um comando simples no terminal.
Alterar o status de uma interface (ip link set dev [opção])
Tornar uma interface online ou offline é algo instantâneo quando utilizamos o ip link. A lógica é escrever o comando declarando o dispositivo em questão e, também, a opção up ou down, que funcionam como botões para ligar e desligar, respectivamente.
ip link set dev enp7s0 up # interface online ip link set dev enp7s0 down # interface offline
Obter estatísticas de interfaces de rede (ip -s link)
Muitas vezes um problema de performance de rede pode ser identificado com apenas um comando, o ip -s link. Ao acioná-lo, você pode saber a quantidade de pacotes transferidos ou descartados, bem como erros, overruns (excedentes) no buffer FIFO (First In, First Out), entre outras informações. Para isso, digite:
ip -s link # isso exibirá estatísticas de todos os dispositivos ip -s link ls [interface] # mostrará dados correspondentes a apenas um determinado dispositivo ip -s -s link ls [interface] # fornece ainda mais detalhes sobre a interface declarada
Podemos conhecer outras possibilidades oferecidas pelo comando digitando ip link help, entre elas a configuração de MTU (Maximum Transmission Unit) para estratégias de controle ou otimização de desempenho de redes por meio de fragmentação de pacotes – um assunto para outro momento.
ip route
Por sua vez, o comando ip route é utilizado para configuração de roteamento estático (static route, em inglês), o que pode ser feito tanto para fins de segurança quanto performance em estruturas de rede de pequeno porte. Vejamos algumas de suas principais funcionalidades.
Listar e modificar tabelas de roteamento (ip route list)
Se você ainda não conhece a tabela de roteamento em sua rede, basta digitar ip route list ou use a sintaxe ip route list [IP] para analisar uma rede distinta.
Com o ip route, é possível adicionar entradas à tabela de roteamento visando dispositivos especĩficos, seja via IP + interface, seja via IP + gateway IP. Exemplos:
ip route add 192.168.10.1 dev echo1
# assim, fazemos com que um dispositivo opere via IP em uma interface de rede específica
ip route add 192.168.10.1 via 192.168.1.1 # no caso, o último endereço de IP se refere a um IP de gateway, correspondente a um roteador, por exemplo
Detalhe: embora as sintaxes acima sejam semelhantes, vale frisar que, ao determinar um dispositivo para rotear as requisições de um IP, utiliza-se a opção dev, enquanto para conduzir a um IP de gateway aplica-se a opção via.
Supondo que o usuário queira deletar a entrada que acabou de fazer na tabela de roteamento ou até mesmo restaurar para default, os comandos disponíveis são:
ip route del [IP] ip route del [IP] dev [interface] ip route del [IP] via [IP gateway] ip route del default
Claro, o que vimos aqui é uma simples demonstração das configurações que podemos fazer em uma rede utilizando o comando ip e suas variantes (addr, link e route). As possibilidades são ainda maiores, sendo que tarefas mais avançadas requerem certo nível de conhecimento em redes.
Você pode, porém, aprender a fazer essas e outras coisas bem interessantes em nosso curso Profissionais Linux, seja você um profissional de TI experiente, seja um iniciante no assunto. Veja mais detalhes aqui!