
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 a
saí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 a
estivesse 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