Bug 50903 - Нет сообщений об ошибке при конфликте IP-адресов на MATE и XFCE
Summary: Нет сообщений об ошибке при конфликте IP-адресов на MATE и XFCE
Status: REOPENED
Alias: None
Product: Sisyphus
Classification: Development
Component: NetworkManager-applet-gtk (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Mikhail Efremov
QA Contact: qa-sisyphus
URL:
Keywords:
: 54820 (view as bug list)
Depends on:
Blocks:
 
Reported: 2024-07-15 09:57 MSK by obidinog@basealt.ru
Modified: 2025-07-16 18:06 MSK (History)
7 users (show)

See Also:


Attachments
фото конкурентов (171.29 KB, image/png)
2025-06-17 15:22 MSK, Сергей
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description obidinog@basealt.ru 2024-07-15 09:57:09 MSK
Платформа:
alt-workstation 10.2 x86_64(Обновленный до Sisyphus)

Пакет:
NetworkManager 1.48.4-alt2

Шаги:
1)Настроить статический ip адрес на стенде 1 и переподключить его
2)Настроить такой же статический ip адрес на стенде 2 и подключить его

Ожидаемый результат: 
Появляется сообщение об ошибке

Результат:
Сообщений об ошибке нет.

Дополнительно:
На KDE выводится сообщение об ошибке. Воспроизводится только на MATE и XFCE
Comment 1 Mikhail Efremov 2024-08-07 16:20:17 MSK
Судя по всему в nm-applet это просто не реализовано.
Comment 2 Alexander Makeenkov 2025-01-28 15:31:46 MSK
(Ответ для obidinog@basealt.ru на комментарий #0)
> Воспроизводится только на MATE и XFCE

И GNOME.
Comment 3 Alexander Makeenkov 2025-06-17 15:11:45 MSK
*** Bug 54820 has been marked as a duplicate of this bug. ***
Comment 4 Сергей 2025-06-17 15:22:46 MSK
Created attachment 18848 [details]
фото конкурентов
Comment 5 Сергей 2025-06-17 15:24:06 MSK
Но у конкурентов есть подобное уведомление, значит дело не в nm-applet, он может, но не может в Альт.
Comment 6 Сергей 2025-06-17 22:47:38 MSK
Для MATE, в dconf - org-gnome-nm-applet отключаем "откл уведомление о прерывании". и при дубликате ip начинает выдаваться сообщение об ошибке. Сообщения формируются файлом /usr/share/locale/ru/LC_MESSAGES/nm-applet.mo в нем по умолчанию есть просто ошибки и указан вариант ответа "Сетевое подключение было прервано" без пояснений. А вот как расширить и конктеризировать эту ошибку?
Comment 7 Mikhail Efremov 2025-06-25 00:15:52 MSK
Я не вижу, чтобы NM сообщал об обнаружении дупликатов адресов. В NetworkManager-applet-gtk-1.36.0-alt3 проверяется какое было состояние ранее и, если NM пытался установить соединение, то будет выдаваться сообщение "Сетевое подключение было прервано. Возможные причины: конфликт IP адреса, сервер DHCP не отвечает или другие проблеммы."
Comment 8 Сергей 2025-06-25 07:58:17 MSK
А изменяли ли параметр - ipv4.dad-timeout? В NM включено в значение -1, судя из описания данный параметр означает "По умолчанию он равен -1, что означает, что проверка дублированных IP не выполняется". Установите другой параметр может и NM начнет давать другую инфу.
Comment 9 Сергей 2025-06-25 08:31:29 MSK
При вкл параметра ipv4.dad-timeout в значение 200 или другое (делал 200 и 1500), заметил более корректную работу NM, а именно при перезагрузке системы в случае конфликта ip, соединение не устанавливается. Значит NM может определять и уведомлять о дубликате. Так понимаю в applet нужно добавить код про данное уведомление и добавить в aplet-nm перевод нового уведомления. А при разрыве соединения перевод в applet-nm сделать более информативным, например - соединение отключено в ручную, сервер DHCP не отвечает или другие проблеммы.
Comment 10 Mikhail Efremov 2025-06-25 15:41:44 MSK
(In reply to Сергей from comment #8)
> А изменяли ли параметр - ipv4.dad-timeout? В NM включено в значение -1, судя
> из описания данный параметр означает "По умолчанию он равен -1, что
> означает, что проверка дублированных IP не выполняется". Установите другой
> параметр может и NM начнет давать другую инфу.

-1 это значение параметра по умолчанию. В NM >= 1.46.0 это значение 200. Раньше было 0.

(In reply to Сергей from comment #9)
> При вкл параметра ipv4.dad-timeout в значение 200 или другое (делал 200 и
> 1500), заметил более корректную работу NM, а именно при перезагрузке системы
> в случае конфликта ip, соединение не устанавливается. Значит NM может
> определять и уведомлять о дубликате.

Он пишет соответствующее сообщение в лог, возможности же узнать об этой конкретной причине клиенту я не нашел.
Comment 11 Aleksandr Sysoev 2025-06-25 17:04:15 MSK
Теперь работает только для первого ethernet-интерфейса. 

Если ethernet-интерфейсов больше одного, то уведомление в случае конфликта ip появляется только на первом интерфейсе. В случае возникновения конфликта на втором и последующих ethernet-интерфейсах уведомлений в графическом интерфейсе не появляется, но в journalctl уведомления присутствуют.
Comment 12 Сергей 2025-06-25 17:26:08 MSK
(Ответ для Aleksandr Sysoev на комментарий #11)
> Теперь работает только для первого ethernet-интерфейса. 
> 
> Если ethernet-интерфейсов больше одного, то уведомление в случае конфликта
> ip появляется только на первом интерфейсе. В случае возникновения конфликта
> на втором и последующих ethernet-интерфейсах уведомлений в графическом
> интерфейсе не появляется, но в journalctl уведомления присутствуют.

Ну да, только не на первом. А точнее если есть активное соединение то уведомления нет, если отключаешь соединение то уведомление есть.
Comment 13 Сергей 2025-06-25 17:40:40 MSK
Выскажу предположение, при подключении апплет выдает уведомление с именем подключения, при разрыве нет. Возможно в текст уведомления нужно задать переменную подключения? тогда апплет будет "знать" какое из подключений отключено.
Comment 14 Mikhail Efremov 2025-06-25 18:27:04 MSK
Апплет реагирует на изменение состояния NM. Если соединение уже установлено, то это NM_STATE_CONNECTED_* и даже если попытка подключения другого соединения провалилась, то изменения состояния NM нет, поэтому и нет сообщения об ошибке.
Comment 15 Anton Farygin 2025-06-25 18:42:19 MSK
(In reply to Mikhail Efremov from comment #7)
> Я не вижу, чтобы NM сообщал об обнаружении дупликатов адресов. В
> NetworkManager-applet-gtk-1.36.0-alt3 проверяется какое было состояние ранее
> и, если NM пытался установить соединение, то будет выдаваться сообщение
> "Сетевое подключение было прервано. Возможные причины: конфликт IP адреса,
> сервер DHCP не отвечает или другие проблеммы."

https://fedoramagazine.org/managing-ipv4-address-conflict-detection-with-networkmanager/

возможно этот поможет.
Comment 16 Сергей 2025-06-25 19:24:25 MSK
Я хотел сказать следующее: если при подключении NM передает уведомление, то и при отключении поступает аналогично. Как апплет определяет кто подключился, а кто разорвался? Я смотрю на "Подключение к «%s» установлено" вижу переменную %s. При разрыве уведомления аналогичной переменной нет. Как аплет может определить что за соединение разорвано?
Имею ввиду:
#: src/applet.c:2161
1155 #, c-format
1156 msgid "You are now connected to “%s”."
1157 msgstr "Подключение к «%s» установлено."
И
1163 #: src/applet.c:2202
1164 msgid "The network connection has been disconnected."
1165 msgstr "Сетевое подключение было прервано"

В одном варианте он определяет за счет %s, а в другом нет.
Comment 17 Alex 2025-07-16 18:06:02 MSK
Для GNOME есть merge-request https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3800