
Я делал несколько заданий по dhcp для домашнего задания, и в одном упражнении мне нужно было освободить IP на одном клиенте, чтобы затем на сервере с tcpdump захватить пакеты, описывающие всю коммуникацию DHCP.
Это, конечно, сработало просто отлично, дело в том, что моему клиенту было назначено 2 IP, старый и новый.
Мне это не нужно для решения моих задач, но мне просто интересно, почему интерфейс может иметь два IP-адреса и как мне освободить только один из них.
Я покажу вам ip a
результат работы клиента для получения дополнительной информации.
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
ПС
Я думал, может быть, старый IP теперь просто не работает, и, может быть, ip a
просто показывает своего рода "историю", но оба IP работают. Но все равно, я не знаю, почему это разрешено.
решение1
Мне просто интересно, почему интерфейс может иметь два IP-адреса.
Интерфейс может иметьлюбойколичество необходимых IP-адресов: от нуля до сотен.
Хотя это необычно для DHCP-клиента, чтобы когда-либо брать более одной аренды. Может быть, у вас есть два DHCP-клиента, работающих одновременно? (Например, systemd-networkd и NetworkManager?)
Или, может быть, вы дважды запустили DHCP-клиент и удалили его файл аренды между запусками?
и как я мог освободить хотя бы одного из них.
Как уже упоминалось, у вас, вероятно, два DHCP-клиента, каждый из которых управляет своим собственным адресом. Если это так, то остановите только одного клиента.
Наконец, вы можете просто удалить адреса, не освобождая аренду DHCP, используя ip addr del
. Но это не поможет, если назначенный им DHCP-клиент все еще работает, и, конечно, он не освободит его на DHCP-сервере:
ip addr del 192.168.100.11/24 dev eth1