Linux: Usando o Comando ip

ip x ifconfig

Antes de iniciarmos vamos exibir uma tabela diferenciando alguns exemplos do comando ip do antigo ifconfig

 

Antigo Comando Novo Comando
ifconfig -a ip a
ifconfig enp6s0 down ip link set enp6s0 down
ifconfig enp6s0 up ip link set enp6s0 up
ifconfig enp6s0 192.168.2.24 ip addr add 192.168.2.24/24 dev enp6s0
ifconfig enp6s0 netmask 255.255.255.0 ip addr add 192.168.1.1/24 dev enp6s0
ifconfig enp6s0 mtu 9000 ip link set enp6s0 mtu 9000
ifconfig enp6s0:0 192.168.2.25 ip addr add 192.168.2.25/24 dev enp6s0
netstat ss
netstat -tulpn ss -tulpn
netstat -neopa ss -neopa
netstat -g ip maddr
route ip r
route add -net 192.168.2.0 netmask 255.255.255.0 dev enp6s0 ip route add 192.168.2.0/24 dev enp6s0
route add default gw 192.168.2.254 ip route add default via 192.168.2.254
arp -a ip neigh
arp -v ip -s neigh
arp -s 192.168.2.33 1:2:3:4:5:6 ip neigh add 192.168.3.33 lladdr 1:2:3:4:5:6 dev enp6s0
arp -i enp6s0 -d 192.168.2.254 ip neigh del 192.168.2.254 dev wlp7s0

 

Uso e Sintaxe

 

Sintaxe:

ip OBJECT COMMAND
ip [options] OBJECT COMMAND
ip OBJECT help

 

Objectos:

Objeto Forma Abreviada Propósito
link l Dispositivo de rede
address a
addr
Endereço de Protocolo (IP or IPv6) em um dispositivo
addrlabel addrl Configuração de label(rótulo) para seleção de endereço de protocolo.
neighbour n
neigh
ARP ou NDISC entrada cache.
route r entrada de tabela de roteamento.
rule ru regra em política de roteamento de database.
maddress m
maddr
Endereço Multicast.
mroute mr entrada de chace de roteamento multicast
tunnel t Túnel sobre ip.
xfrm x Framework para protocolo IPsec.

 

 

 

Exemplos do Comando ip

 

Extraindo Informações

Alerta: Os exemplos abaixo pode fazer com que você perca conectividade com a rede. Recomendados praticar usando um computador de testes ou máquina virtual.

  1. Exibindo apenas o básico
    elder@server01:~$ ip  -br  a
    lo               UNKNOWN        127.0.0.1/8 ::1/128 
    enp0s3           UP             192.168.0.40/24 fe80::a00:27ff:fed4:d507/64 
    enp0s8           UP             10.1.1.31/8 fe80::a00:27ff:fee0:3088/64

    Acima podemos ver as interfaces: lo, enp0s3 e enp0s8 e seus respectivos endereços ipv4:  127.0.0.1, 192.168.0.40,  10.1.1.31

  2. Exibir informações de todas as interfaces de rede
    ip a

    ou

     ip addr
    

    Resultado:

    elder@server01:~$ ip addr
    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: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 08:00:27:d4:d5:07 brd ff:ff:ff:ff:ff:ff
        inet 192.168.0.40/24 brd 192.168.0.255 scope global enp0s3
           valid_lft forever preferred_lft forever
        inet6 fe80::a00:27ff:fed4:d507/64 scope link 
           valid_lft forever preferred_lft forever
    3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 08:00:27:e0:30:88 brd ff:ff:ff:ff:ff:ff
        inet 10.1.1.31/8 brd 10.255.255.255 scope global enp0s8
           valid_lft forever preferred_lft forever
        inet6 fe80::a00:27ff:fee0:3088/64 scope link 
           valid_lft forever preferred_lft forever
    
  3. Vendo informações de interface mas escolhendo entre os protocolos ipv4 e ipv6
    ip -4 a

    ou

    ip -6 a

    Resultado

    elder@server01:~$ ip -6 a 
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN qlen 1000
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
        inet6 fe80::a00:27ff:fed4:d507/64 scope link 
           valid_lft forever preferred_lft forever
    3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
        inet6 fe80::a00:27ff:fee0:3088/64 scope link 
           valid_lft forever preferred_lft forever
  4. Vendo informações de apenas uma das interfaces
    ip a list enp0s3

    ou

    ip a show enp0s3

    Resultado

    elder@server01:~$ ip a show enp0s3
    2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 08:00:27:d4:d5:07 brd ff:ff:ff:ff:ff:ff
        inet 192.168.0.40/24 brd 192.168.0.255 scope global enp0s3
           valid_lft forever preferred_lft forever
        inet6 fe80::a00:27ff:fed4:d507/64 scope link 
           valid_lft forever preferred_lft forever
    
  5. Mostrando apenas conexões ativas
    ip link ls up

    Resultado

    elder@server01:~$ ip link ls up
    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: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
        link/ether 08:00:27:d4:d5:07 brd ff:ff:ff:ff:ff:ff
    3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
        link/ether 08:00:27:e0:30:88 brd ff:ff:ff:ff:ff:ff
    

Exibindo cache arp e neighbour

neighbour significa vizinho em inglês.

Podemos usar “ip n show” ou “ip neighbour show”. São a mesma coisa.

 

ip n show

Resultado

elder@server01:~$ ip n show
192.168.0.169 dev enp0s3 lladdr d0:50:99:1d:26:23 REACHABLE
192.168.0.1 dev enp0s3 lladdr 1c:6f:65:f7:b4:f6 STALE
192.168.0.41 dev enp0s3 lladdr 08:00:27:91:bb:50 DELAY
  • Stale: Significa que o vizinho(neighbour) é válido mas é provavelmente “Não alcançável”. O kernel irá  tentar checar ele na primeira retransmissão
  • Delay: Um pacote foi enviado para o vizinho(neighbour) e o kernel está esperando para confirmar
  • Reachable: o vizinho(neighbour) é válido e aparentemente alcançável.

 

Adicionar uma nova entrada ARP

Segue modelo:

ip neigh add {IP-AQUI} lladdr {MAC/LLADDRESS} dev {DISPOSITIVO} nud {Estado}

nud pode receber os seguintes valores(estados)

  • permanent: a entrada criada será permanente se poderá ser excluída somente com intervenção do usuário administrador.
  • noarp: A entrada é válida. Nenhuma tentativa para validar essa entrada será feita mas ela será removida quando expirar o seu tempo.
  • stale: a entrada é válida mas suspeita.
  • reachable: essa entrada é válida até o tempo de vida(lifetime) expirar
sudo ip n add 10.1.1.32 lladdr 08:00:27:9a:13:eb dev enp0s8 nud perm

Acima, em laranja, adicionei “perm” para deixar permanente

Vamos ver o resultado

elder@server01:~$ ip n
192.168.0.169 dev enp0s3 lladdr d0:50:99:1d:26:23 DELAY
192.168.0.1 dev enp0s3 lladdr 1c:6f:65:f7:b4:f6 STALE
10.1.1.32 dev enp0s8 lladdr 08:00:27:9a:13:eb PERMANENT
192.168.0.41 dev enp0s3 lladdr 08:00:27:91:bb:50 STALE

 

Alterando e Deletando uma entrada ARP

Sintaxe para deletar

ip neigh del {IPAddress} dev {DEVICE}

ou  para alterar

ip neigh chg {IPAddress} dev {DEVICE}

Vamos alterar para “reachable” a entrada que criamos

sudo ip n chg 10.1.1.32 dev enp0s8 nud reachable

Resultado

elder@server01:~$ ip n
192.168.0.169 dev enp0s3 lladdr d0:50:99:1d:26:23 REACHABLE
192.168.0.1 dev enp0s3 lladdr 1c:6f:65:f7:b4:f6 STALE
10.1.1.32 dev enp0s8 lladdr 08:00:27:9a:13:eb REACHABLE
192.168.0.41 dev enp0s3 lladdr 08:00:27:91:bb:50 STALE

Vamos deletar

 sudo ip n del 10.1.1.32 dev enp0s8

Resultado

elder@server01:~$ ip n
192.168.0.169 dev enp0s3 lladdr d0:50:99:1d:26:23 REACHABLE
192.168.0.1 dev enp0s3 lladdr 1c:6f:65:f7:b4:f6 STALE
192.168.0.41 dev enp0s3 lladdr 08:00:27:91:bb:50 STALE

Também poderíamos usar “flush” para excluir

Tabela de Roteamento

Segue sintaxe:

ip r
ip r list
ip route list
ip r list [options] ip route

Exemplo

elder@server01:~$ ip r
default via 192.168.0.1 dev enp0s3 onlink 
192.168.0.0/24 dev enp0s3 proto kernel scope link src 192.168.0.40

Vendo o roteamento para 192.168.0.0/24

elder@server01:~$ ip r list 192.168.0.0/24
192.168.0.0/24 dev enp0s3 proto kernel scope link src 192.168.0.40

Atribuindo uma nova rota

Sintaxe

ip route add {NETWORK/MASK} via {GATEWAYIP}
ip route add {NETWORK/MASK} dev {DEVICE}
## Adiciona uma rota padrão usando ip ##
ip route add default {NETWORK/MASK} dev {DEVICE}
ip route add default {NETWORK/MASK} via {GATEWAYIP}

Exemplos

ip route add 192.168.1.0/24 via 192.168.1.254
ip route add 192.168.1.0/24 dev eth0

Deletando rotas

Deletando a rota padrão

ip route del default

deletando a rota criada acima

ip route del 192.168.1.0/24 dev eth0

 

Atribuindo e Removendo Endereço IP de uma Interface

A sintaxe é: ip a add {endereço/máscara} dev {interface}

Obs.: As atribuições e remoção de IPs abaixo são temporários,  pois o que permanece é a configuração dentro de /etc/network/interfaces. Após reiniciar os ips adicionados com “ip a add” ou removidos com “ip a del” são perdidas.

Vejamos exemplos

  1. Atribuindo o ip 10.0.0.100 à interface enp0s8
    sudo ip a add 10.0.0.100/24 dev enp0s8

    Resultado

    elder@server01:~$ ip -br a
    lo               UNKNOWN        127.0.0.1/8 ::1/128 
    enp0s3           UP             192.168.0.40/24 fe80::a00:27ff:fed4:d507/64 
    enp0s8           UP             10.1.1.31/8 10.0.0.100/24 fe80::a00:27ff:fee0:3088/64
  2. Removendo um endereço de uma interface
    sudo ip a del 10.1.1.31 dev enp0s8

    Resultado

    elder@server01:~$ ip -br a
    lo               UNKNOWN        127.0.0.1/8 ::1/128 
    enp0s3           UP             192.168.0.40/24 fe80::a00:27ff:fed4:d507/64 
    enp0s8           UP             10.0.0.100/24 fe80::a00:27ff:fee0:3088/64 
    
  3. removendo endereços usando “flush”.Removeremos tudo que estiver atribuído ao dispositivo enp0s8
    sudo ip a flush dev enp0s8

    Resultado

    elder@server01:~$ ip -br a
    lo               UNKNOWN        127.0.0.1/8 ::1/128 
    enp0s3           UP             192.168.0.40/24 fe80::a00:27ff:fed4:d507/64 
    enp0s8           UP

Ativando e Desativando Dispositivos de Rede

A sintaxe é: ip link set dev {DEVICE} {up|down}

  1. Para Desativar
    sudo ip link set enp0s8 down

    Resultado

    elder@server01:~$ ip -br a
    lo               UNKNOWN        127.0.0.1/8 ::1/128 
    enp0s3           UP             192.168.0.40/24 fe80::a00:27ff:fed4:d507/64 
    enp0s8           DOWN
  2. Vamos ativar
    sudo ip link set enp0s8 up

    Resultado

    elder@server01:~$ ip -br a
    lo               UNKNOWN        127.0.0.1/8 ::1/128 
    enp0s3           UP             192.168.0.40/24 fe80::a00:27ff:fed4:d507/64 
    enp0s8           UP             fe80::a00:27ff:fee0:3088/64

Alterar txqueuelen do dispositivo

txqueuelen:

  • tx: taxa
  • queue: fila
  • len: quantidade. len vem de length.

Podemos mudar o  tamanho da transmit queue(fila de transmissão) usando: ip link set txqueuelen {NUMBER} dev {DEVICE}

  1. Alterando o txqueuelen do dispositivo enp0s8
    sudo ip link set txqueuelen 1000 dev enp0s8

    Resultado

    elder@server01:~$ ip a show enp0s8
    3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 08:00:27:e0:30:88 brd ff:ff:ff:ff:ff:ff
        inet6 fe80::a00:27ff:fee0:3088/64 scope link 
           valid_lft forever preferred_lft foreve

    Acima realcei de laranja: qlen 1000

  2. Vamos colocar o txqueuelen para 10000
    sudo ip link set txqueuelen 10000 dev enp0s8

    Resultado

    elder@server01:~$ ip a list enp0s8
    3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 10000
        link/ether 08:00:27:e0:30:88 brd ff:ff:ff:ff:ff:ff
        inet6 fe80::a00:27ff:fee0:3088/64 scope link 
           valid_lft forever preferred_lft forever

 

Alterando o MTU(maximum transmission units) de um dispositivo

A sintaxe para alterar a mtu ou unidade máxima de transmissão é:  ip link set mtu {NUMBER} dev {DEVICE}

Alterando o mtu do dispositivo enp0s8

sudo ip link set mtu 9000 dev enp0s8

Resultado

elder@server01:~$ ip a list enp0s8
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc pfifo_fast state UP group default qlen 10000
    link/ether 08:00:27:e0:30:88 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::a00:27ff:fee0:3088/64 scope link 
       valid_lft forever preferred_lft forever

Acima está realçado de laranja

Alterando o Endereço MAC da Placa de Rede

Vejamos o endereço mac atual para o dispositivo enp0s8

elder@server01:~$ ip a show  enp0s8
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc pfifo_fast state UP group default qlen 10000
    link/ether 08:00:27:e0:30:88 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::a00:27ff:fee0:3088/64 scope link 
       valid_lft forever preferred_lft forever

Vamos alterar de 08:00:27:e0:30:88 para 99:99:99:e0:30:88

Desative a placa de rede(NIC)

sudo ip link set dev enp0s8 down

Altere o endereço mac

sudo ip link set dev enp0s8 address 99:99:99:e0:30:88
sudo ip link set dev enp0s8 up

Conclusão

Aqui vimos comandos importantes da ferramenta ip. Essa ferramenta é a substitura da antiga ifconfig.

Fontes: cyberciti.biz

 

Leitor voraz e um dos administradores do GNU/Linux Brasil no Whatsapp, facebook, youtube e nesse dito site: www.gnulinuxbrasil.com.br

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *