Вопрос или проблема
Не знаю, почему мой pikvm получает 2 IP-адреса для wlan0. Это единственное устройство, которое получает 2 адреса в моей всей сети.
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether d8:3a:dd:*:*:* brd ff:ff:ff:ff:ff:ff
inet 192.168.111.201/24 metric 50 brd 192.168.111.255 scope global dynamic wlan0
valid_lft 14113sec preferred_lft 14113sec
inet 192.168.111.27/24 brd 192.168.111.255 scope global secondary dynamic noprefixroute wlan0
valid_lft 14120sec preferred_lft 12320sec
Как я могу этого избежать?
Я уже добавил net.ipv4.conf.wlan0.promote_secondaries=1
ip link set wlan0 down
, затем up
решает проблему, но не при загрузке.
Ответ или решение
Ваша ситуация с получением двух IP-адресов для интерфейса wlan0 может быть вызвана несколькими факторами, связанными с настройками DHCP, конфликтами в конфигурации сети или поведением операционной системы. Давайте разберемся, почему это происходит и как можно предотвратить появление вторичного IP-адреса.
Причины получения второго IP-адреса
-
Динамическое распределение адресов DHCP: DHCP-сервер может присвоить несколько адресов одному устройству при определенных условиях, например, если ваше устройство по каким-то причинам запрашивает IP-адрес повторно (например, если DHCP-аренда истекла).
-
Проблемы с кэшированием DHCP: Если устройство не правильно освободит старый IP-адрес перед получением нового, это может привести к ситуации, когда оно будет иметь два адреса, один из которых фактически устарел.
-
Настройки операционной системы: Некоторые операционные системы могут выбирать не очищать старые записи IP-адресов при получении нового адреса, что приводит к образованию «вторичных» адресов.
Как предотвратить получение второго IP-адреса
-
Изменение настроек DHCP-клиента: Убедитесь, что ваш DHCP-клиент настроен на правильное управление IP-адресами. Например, проверьте файлы конфигурации, такие как
/etc/dhcpcd.conf
, и убедитесь, что параметрыdenyinterfaces
иallowinterfaces
настроены корректно. -
Настройки ядра: Параметр
net.ipv4.conf.wlan0.promote_secondaries=1
, который вы уже упомянули, отвечает за поведение IP-адресов в интерфейсе. Убедитесь, что у вас нет других конфликтующих настроек. Для предотвращения появления вторичного адреса можно попробовать установитьnet.ipv4.conf.wlan0.promote_secondaries=0
. -
Скрипты и автозагрузка: Если команда
ip link set wlan0 down
и последующая командаup
решают проблему, но не срабатывают при загрузке, можно добавить их в скрипты автозагрузки. Например, вы можете создать пользовательский системный юнит (systemd unit) или добавить их в/etc/rc.local
(если поддерживается). -
Ограничьте DHCP на сервере: Если вы имеете доступ к настройкам вашего DHCP-сервера, проверьте, не выдаются ли несколько адресов одному и тому же MAC-адресу. Некоторые DHCP-серверы могут это делать при неправильной конфигурации.
-
Мониторинг сети: Используйте сетевые инструменты, такие как
tcpdump
илиwireshark
, чтобы зафиксировать запросы DHCP и понять, что именно происходит при получении адресов.
Заключение
Рекомендуется тщательно проверить настройки DHCP-клиента и самого сервера, а также применить описанные выше меры для предотвращения появления вторичных IP-адресов. Если у вас будут дополнительные вопросы или сложности, не стесняйтесь обращаться за помощью!