Se eu tiver 2 IPs atribuídos a uma interface, como faço para liberar apenas um IP específico?

Se eu tiver 2 IPs atribuídos a uma interface, como faço para liberar apenas um IP específico?

Eu estava fazendo algumas tarefas de dhcp como lição de casa, e em um exercício precisei liberar o IP em um cliente, para depois no servidor com tcpdump capturar os pacotes descrevendo toda a comunicação DHCP.
Isso funcionou muito bem, é claro, o problema é que meu cliente recebeu 2 IPs, o antigo e o novo.

Eu realmente não preciso saber disso para minhas tarefas, mas estava curioso para saber por que uma interface pode ter IPs duplos e como poderia liberar apenas um deles.

Vou mostrar a ip asaída do cliente para mais informações

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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:8d:c0:4d brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic eth0
       valid_lft 81584sec preferred_lft 81584sec
    inet6 fe80::a00:27ff:fe8d:c04d/64 scope link 
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:e8:5c:2a brd ff:ff:ff:ff:ff:ff
    inet 192.168.100.10/24 brd 192.168.100.255 scope global dynamic eth1
       valid_lft 16802sec preferred_lft 16802sec
    inet 192.168.100.11/24 brd 192.168.100.255 scope global secondary dynamic eth1
       valid_lft 19310sec preferred_lft 19310sec
    inet6 fe80::a00:27ff:fee8:5c2a/64 scope link 
       valid_lft forever preferred_lft forever

PS

Eu me perguntei se talvez o IP antigo simplesmente não funcionasse agora, e talvez ip aestivesse apenas mostrando uma espécie de "histórico", mas ambos os IPs funcionam. Mas ainda assim, não sei por que isso é permitido.

Responder1

Eu só estava curioso para saber por que uma interface pode ter IPs duplos

Uma interface pode terqualquernúmero de endereços IP necessários, de zero a centenas.

Embora seja incomum que um cliente DHCP faça mais de uma concessão. Talvez você tenha dois clientes DHCP em execução ao mesmo tempo? (Por exemplo, systemd-networkd e NetworkManager?)

Alternativamente, talvez você tenha executado o cliente DHCP duas vezes e excluído seu arquivo de concessão entre as execuções?

e como eu poderia liberar apenas um deles.

Conforme mencionado, você provavelmente tem dois clientes DHCP, cada um gerenciando seu próprio endereço. Se for esse o caso, pare apenas um único cliente.

Finalmente, você pode simplesmente remover os endereços sem liberar a concessão do DHCP, usando ip addr del. Mas isso não ajudará se o cliente DHCP que o atribuiu ainda estiver em execução e, é claro, não o liberará no servidor DHCP:

ip addr del 192.168.100.11/24 dev eth1

informação relacionada