===== Exemplos do comando ip (address, link, neighbour, route) =====
==== Introdução ====
O comando **`ip`** no Linux é utilizado para gerenciar configurações de rede, substituindo comandos mais antigos como **`ifconfig`** e **`route`**. Ele permite a manipulação de interfaces de rede, endereços IP, rotas e muito mais. Os principais subcomandos do **`ip`** incluem:
* **`address`**: Gerencia os endereços IP associados a interfaces de rede.
* **`link`**: Manipula interfaces de rede, como trazer interfaces para cima/baixo e configurar opções.
* **`neighbour`**: Trabalha com a tabela ARP para mapear endereços IP e seus MACs correspondentes.
* **`route`**: Gerencia a tabela de rotas do kernel para definir o encaminhamento de pacotes de rede.
==== Address (Gerenciamento de Endereços IP) ====
* **Exibir os endereços IP das interfaces de rede:**
- ip address show
- Mostra os endereços IP atribuídos a todas as interfaces de rede.
* **Atribuir um endereço IP a uma interface de rede:**
- sudo ip address add 192.168.1.100/24 dev eth0
- Atribui o endereço IP `192.168.1.100` com máscara de sub-rede `/24` à interface `eth0`.
* **Remover um endereço IP de uma interface:**
- sudo ip address del 192.168.1.100/24 dev eth0
- Remove o endereço IP `192.168.1.100` da interface `eth0`.
* **Exibir apenas os endereços IPv4 de uma interface específica:**
- ip -4 address show dev eth0
- Exibe os endereços IPv4 da interface `eth0`.
* **Exibir apenas os endereços IPv6 de uma interface específica:**
- ip -6 address show dev eth0
- Exibe os endereços IPv6 da interface `eth0`.
==== Link (Gerenciamento de Interfaces de Rede) ====
* **Exibir o estado das interfaces de rede:**
- ip link show
- Mostra as interfaces de rede e seus respectivos estados (up/down).
* **Trazer uma interface de rede "para cima" (ativar):**
- sudo ip link set dev eth0 up
- Ativa a interface de rede `eth0`.
* **Trazer uma interface de rede "para baixo" (desativar):**
- sudo ip link set dev eth0 down
- Desativa a interface de rede `eth0`.
* **Atribuir um novo endereço MAC a uma interface:**
- sudo ip link set dev eth0 address 00:11:22:33:44:55
- Atribui o endereço MAC `00:11:22:33:44:55` à interface `eth0`.
* **Modificar o MTU (Maximum Transmission Unit) de uma interface:**
- sudo ip link set dev eth0 mtu 1400
- Define o tamanho máximo de pacote (MTU) para `1400` bytes na interface `eth0`.
* **Ativar o modo promiscuous (promíscuo) em uma interface de rede:**
- sudo ip link set dev eth0 promisc on
- Ativa o modo promíscuo, no qual a interface `eth0` captura todos os pacotes de rede.
==== Neighbour (Tabela ARP/Neighbour Discovery) ====
* **Exibir a tabela ARP (ou tabela de vizinhança IPv6):**
- ip neighbour show
- Exibe a tabela ARP, mostrando os endereços IP mapeados para os endereços MAC correspondentes.
* **Adicionar uma entrada ARP manualmente:**
- sudo ip neighbour add 192.168.1.101 lladdr 00:11:22:33:44:55 dev eth0
- Adiciona manualmente uma entrada ARP para o IP `192.168.1.101` com o endereço MAC `00:11:22:33:44:55` na interface `eth0`.
* **Excluir uma entrada da tabela ARP:**
- sudo ip neighbour del 192.168.1.101 dev eth0
- Remove a entrada ARP para o endereço IP `192.168.1.101` na interface `eth0`.
* **Limpar toda a tabela ARP:**
- sudo ip neighbour flush all
- Limpa todas as entradas da tabela ARP.
* **Monitorar alterações na tabela ARP:**
- ip monitor neighbour
- Monitora as alterações na tabela ARP em tempo real.
==== Route (Gerenciamento da Tabela de Rotas) ====
* **Exibir a tabela de rotas:**
- ip route show
- Exibe a tabela de rotas, mostrando como os pacotes são roteados.
* **Adicionar uma rota estática:**
- sudo ip route add 192.168.2.0/24 via 192.168.1.1 dev eth0
- Adiciona uma rota para a rede `192.168.2.0/24` via o gateway `192.168.1.1` na interface `eth0`.
* **Remover uma rota estática:**
- sudo ip route del 192.168.2.0/24
- Remove a rota para a rede `192.168.2.0/24`.
* **Adicionar uma rota padrão (gateway):**
- sudo ip route add default via 192.168.1.1
- Define o gateway padrão como `192.168.1.1`.
* **Alterar o gateway padrão:**
- sudo ip route change default via 192.168.1.254
- Altera o gateway padrão para `192.168.1.254`.
* **Exibir rotas específicas para IPv6:**
- ip -6 route show
- Exibe a tabela de rotas IPv6.
===== Exemplos compactos e coloridos com o comando ip =====
==== Address (Exibição de Endereços IP) ====
* **Exibir endereços IP em formato conciso e colorido:**
- ip -br -c a
- Exibe os endereços IP de todas as interfaces em formato abreviado com cores.
* **Exibir apenas endereços IPv4 em formato conciso:**
- ip -4 -br -c a
- Mostra os endereços IPv4 das interfaces, de forma abreviada e com cores.
* **Exibir apenas endereços IPv6 em formato conciso:**
- ip -6 -br -c a
- Mostra os endereços IPv6 das interfaces, de forma abreviada e com cores.
==== Link (Exibição de Interfaces de Rede) ====
* **Exibir interfaces de rede em formato conciso e colorido:**
- ip -br -c link
- Mostra as interfaces de rede (link) em formato abreviado e colorido, incluindo o estado de cada interface.
* **Exibir o estado de todas as interfaces de rede, incluindo o estado "UP" ou "DOWN":**
- ip -br -c l
- Exibe as interfaces de rede e seus estados (abreviação de `link`).
==== Neighbour (Exibição da Tabela ARP) ====
* **Exibir a tabela ARP em formato conciso e colorido:**
- ip -br -c neighbour
- Exibe a tabela ARP, com endereços IP e MAC em formato abreviado e com cores.
==== Route (Exibição de Rotas) ====
* **Exibir a tabela de rotas em formato conciso e colorido:**
- ip -br -c route
- Exibe as rotas definidas no sistema em um formato abreviado com cores, incluindo rotas para redes e o gateway padrão.
* **Exibir rotas IPv4 em formato conciso e colorido:**
- ip -4 -br -c route
- Mostra as rotas IPv4 de forma abreviada e com cores.
* **Exibir rotas IPv6 em formato conciso e colorido:**
- ip -6 -br -c route
- Exibe as rotas IPv6 de forma abreviada e colorida.