| Summary: | Нет сообщений об ошибке при конфликте IP-адресов на MATE и XFCE | ||||||
|---|---|---|---|---|---|---|---|
| Product: | Sisyphus | Reporter: | obidinog <obidinog> | ||||
| Component: | NetworkManager-applet-gtk | Assignee: | Mikhail Efremov <sem> | ||||
| Status: | REOPENED --- | QA Contact: | qa-sisyphus | ||||
| Severity: | normal | ||||||
| Priority: | P5 | CC: | amakeenk, oleg, paladindev, rider, sem, svdan2009, sysoevas | ||||
| Version: | unstable | ||||||
| Hardware: | x86_64 | ||||||
| OS: | Linux | ||||||
| Attachments: |
|
||||||
|
Description
obidinog@basealt.ru
2024-07-15 09:57:09 MSK
Судя по всему в nm-applet это просто не реализовано. (Ответ для obidinog@basealt.ru на комментарий #0) > Воспроизводится только на MATE и XFCE И GNOME. *** Bug 54820 has been marked as a duplicate of this bug. *** Created attachment 18848 [details]
фото конкурентов
Но у конкурентов есть подобное уведомление, значит дело не в nm-applet, он может, но не может в Альт. Для MATE, в dconf - org-gnome-nm-applet отключаем "откл уведомление о прерывании". и при дубликате ip начинает выдаваться сообщение об ошибке. Сообщения формируются файлом /usr/share/locale/ru/LC_MESSAGES/nm-applet.mo в нем по умолчанию есть просто ошибки и указан вариант ответа "Сетевое подключение было прервано" без пояснений. А вот как расширить и конктеризировать эту ошибку? Я не вижу, чтобы NM сообщал об обнаружении дупликатов адресов. В NetworkManager-applet-gtk-1.36.0-alt3 проверяется какое было состояние ранее и, если NM пытался установить соединение, то будет выдаваться сообщение "Сетевое подключение было прервано. Возможные причины: конфликт IP адреса, сервер DHCP не отвечает или другие проблеммы." А изменяли ли параметр - ipv4.dad-timeout? В NM включено в значение -1, судя из описания данный параметр означает "По умолчанию он равен -1, что означает, что проверка дублированных IP не выполняется". Установите другой параметр может и NM начнет давать другую инфу. При вкл параметра ipv4.dad-timeout в значение 200 или другое (делал 200 и 1500), заметил более корректную работу NM, а именно при перезагрузке системы в случае конфликта ip, соединение не устанавливается. Значит NM может определять и уведомлять о дубликате. Так понимаю в applet нужно добавить код про данное уведомление и добавить в aplet-nm перевод нового уведомления. А при разрыве соединения перевод в applet-nm сделать более информативным, например - соединение отключено в ручную, сервер DHCP не отвечает или другие проблеммы. (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 может > определять и уведомлять о дубликате. Он пишет соответствующее сообщение в лог, возможности же узнать об этой конкретной причине клиенту я не нашел. Теперь работает только для первого ethernet-интерфейса. Если ethernet-интерфейсов больше одного, то уведомление в случае конфликта ip появляется только на первом интерфейсе. В случае возникновения конфликта на втором и последующих ethernet-интерфейсах уведомлений в графическом интерфейсе не появляется, но в journalctl уведомления присутствуют. (Ответ для Aleksandr Sysoev на комментарий #11) > Теперь работает только для первого ethernet-интерфейса. > > Если ethernet-интерфейсов больше одного, то уведомление в случае конфликта > ip появляется только на первом интерфейсе. В случае возникновения конфликта > на втором и последующих ethernet-интерфейсах уведомлений в графическом > интерфейсе не появляется, но в journalctl уведомления присутствуют. Ну да, только не на первом. А точнее если есть активное соединение то уведомления нет, если отключаешь соединение то уведомление есть. Выскажу предположение, при подключении апплет выдает уведомление с именем подключения, при разрыве нет. Возможно в текст уведомления нужно задать переменную подключения? тогда апплет будет "знать" какое из подключений отключено. Апплет реагирует на изменение состояния NM. Если соединение уже установлено, то это NM_STATE_CONNECTED_* и даже если попытка подключения другого соединения провалилась, то изменения состояния NM нет, поэтому и нет сообщения об ошибке. (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/ возможно этот поможет. Я хотел сказать следующее: если при подключении 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, а в другом нет. Для GNOME есть merge-request https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3800 |