Quando preciso criar uma ponte temporária com interface no Linux eu usaria o seguinte:
brctl addbr br0
brctl addif br0 eth0
ifconfig eth0 0.0.0.0
ifconfig br0 192.168.10.100 netmask 255.255.255.0
ifconfig br0 up
Tenho atualizado meu processo para usar oIPcomando, porém, não encontro o equivalente para remover a pilha IP (ifconfig eth0 0.0.0.0) através do ip
comando
Eu tentei o seguinte:
ip addr add 0.0.0.0 dev eth0
ip addr add 0.0.0.0/24 dev eth0
mas não funciona para remover o existente ip
nesse dispositivo.
alguém saberia se isso é possível com o ip
comando
Responder1
No Linux, o ifconfig
comando antigo e sua antiga API do kernel Linux estão limitados aumEndereço IPv4 por interface (e, portanto, aliases de interface, que são endereços adicionais em vez de interfaces, são usados para contornar essa limitação). Isso explica por que removeroendereço IPv4, o método eradefinirpara (na verdade não adicionar) 0.0.0.0.
Comiproute2ferramentas, se você deseja removerqualquerendereço de uma interface (sempre uma boa ideia para uma porta de ponte) sem se importar com quais endereços estão lá, você pode usar ip address flush
, que é um comando de remoção em massa:
ip address flush
- liberar endereços de protocoloEste comando libera os endereços de protocolo selecionados por alguns critérios.
[...]
Aviso: este comando e outros comandos de liberação são implacáveis. Eles limparão cruelmente todos os endereços.
[...]
Então no final você pode usar:
ip address flush dev eth0
(você pode adicionar -4
para limitar o efeito ao IPv4).
Existem outros usos. Por exemplo este comando:
ip address flush to 10.1.0.0/16
removeria de qualquer interface qualquer endereço correspondente ao bloco 10.1.0.0/16qualquer que seja sua máscara de rede.
# ip -s -s address flush to 10.1.0.0/16
2: lxcbr0 inet 10.1.3.1/24 brd 10.1.3.255 scope global lxcbr0
valid_lft forever preferred_lft forever
158: eth0 inet 10.1.1.1/8 scope global eth0
valid_lft forever preferred_lft forever
*** Round 1, deleting 2 addresses ***
*** Flush is complete after 1 round ***
Responder2
Você não podeexcluirum endereço IP com o add
comando!
Se você deseja excluir um endereço IP de uma interface, faça del
isso.
ip addr del 203.0.113.187 dev eth0