<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">пт, 8 мая 2020 г. в 00:57, Paul Wolneykien &lt;<a href="mailto:manowar@altlinux.org">manowar@altlinux.org</a>&gt;:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">В Fri, 8 May 2020 00:46:35 +0400<br>
Evgeny Sinelnikov &lt;<a href="mailto:sin@altlinux.org" target="_blank">sin@altlinux.org</a>&gt; пишет:<br>
<br>
&gt; Здравствуйте.<br>
&gt; <br>
&gt; Я прочитал багу, но не понял как решать проблему:<br>
&gt; <a href="https://bugzilla.altlinux.org/show_bug.cgi?id=18795" rel="noreferrer" target="_blank">https://bugzilla.altlinux.org/show_bug.cgi?id=18795</a><br>
&gt; <a href="https://www.altlinux.org/NetworkManager/feature" rel="noreferrer" target="_blank">https://www.altlinux.org/NetworkManager/feature</a><br>
&gt; <br>
&gt; Хочу разобраться с вопросом настройки сетевых соединений через<br>
&gt; NetworkManager. Какой сценарий предлагается пользователю по умолчанию?<br>
&gt; <br>
&gt; По умолчанию, после установки, в /etc/net/ifaces/eth0 имеем настройки:<br>
<br>
  Думаю, что бага ровно в этом и состоит: в том, что в свежей установке<br>
имеем /etc/net/ifaces/eth0. Потому что даже в документации по<br>
etcnet-alt сказано, что он придуман потому, что &quot;если уже есть<br>
настройки в etcnet — нет смысла настраивать все это еще раз&quot;.<br>
То есть плагин решает задачу дедупликации настроек, когда в одном месте<br>
эти настройки уже есть.<br>
  Следовательно, если убрать /etc/net/ifaces/eth0 из свежей установки,<br>
то у пользователя будет чистый NM, а данной проблемы не будет.<br></blockquote><div><br></div><div>Да, действительно. В таком виде поведение именно такое, как ожидается.</div><div><br></div><div>Таким образом, для интерфейса включается NM, то каталог /etc/net/ifaces/$IFACENAME должен быть удалён. Но тут возникает одна важная нестыковка: Модуль Альтератора, управляющий сетевыми интефейсами, в этом случае, не находит записи NM_CONTROLLED=yes в options и некорректно отображает состояние настройки.</div><div><br></div><div>Таким образом получаем странную коллизию:</div><div>- если мы включаем в Альтераторе вариант &quot;Сетевая подсистема: NetworkManager&quot;, то NetworkManager&#39;у не разрешается изменять настройки интерфейса;</div><div>- а если удаляем эти настройки (то есть весь каталог /etc/net/ifaces/$IFACENAME вместе с файлом NM_CONTROLLED=yes и DISABLED=yes, чтобы интерфейсы не дублировались), то NetworkManager начинает работать так, как ожидается, но при этом в <span>Альтераторе указано, что включен etcnet.</span><br></div><div></div><div><br></div><div>Правда, беглый тест выявил ещё одну особенность. Возврат к NetworkManager через Alterator не ломает поведения...</div><div>То есть дело не просто в наличии или отсутствии каталога /etc/net/ifaces/$IFACENAME.<br></div><div><br></div><div>Замечено, что после &quot;чистой&quot; установки options файл интерфейса выглядит так:</div><div>BOOTPROTO=dhcp<br>TYPE=eth<br>NM_CONTROLLED=yes<br>DISABLED=yes<br>CONFIG_WIRELESS=no<br>CONFIG_IPV4=yes<br></div><div><br></div><div>А после его удаления и создания заново через Альтератор в режим &quot;Сетевая подсистема: NetworkManager&quot; выглядит так:</div><div>TYPE=eth<br>CONFIG_WIRELESS=no<br>BOOTPROTO=static<br>CONFIG_IPV4=yes<br>DISABLED=yes<br>NM_CONTROLLED=yes<br>ONBOOT=yes</div><div><br></div><div>Казалось бы, что могло повлиять? Возможно, ONBOOT=yes? Нет. Влияет BOOTPROTO=static.</div><div><br></div><div>Я не знаю что здесь не соответствует задумке и где тут бага, а где фича (наверное, это бага, если по задумке)... Но в режиме BOOTPROTO=static при отсутствии файла /etc/net/ifaces/$IFACENAME/ipv4address всё работает, как надо пользователю. Мы включили в Альтераторе &quot;Сетевая подсистема: NetworkManager&quot; и, как ожидается, у нас всё работает, через NetworkManger.</div><div><br></div><div>Гибридную схему при этом, да и при установке тоже, никто не просил. И как её отключить родными средствами - непонятно. Удалять каталог /etc/net/ifaces/$IFACENAME - дело нехорошее. Я-то теперь буду пользоваться. Но как пользователям быть? У нас есть GUI, но чтобы всё заработало из коробки нужно лезть в консоль.</div><div></div><div>_________________<br></div><div><br></div><div>Итого, удалять /etc/net/ifaces/$IFACENAME, чтобы отключить гибридную схему вовсе не обязательно, достаточно:</div><div>- установить BOOTPROTO=static</div><div>- удалить файл /etc/net/ifaces/$IFACENAME/<span>ipv4address</span></div><div><br></div><div>И это отличный сайд-эффект текущей реализации. Его можно использовать таким образом, чтобы включать NetworkManager через альтератор. Для этого достаточно отключать гибридную схему, если она явно не задана. То есть, при переключении на NetworkManager ставить static и удалять <span>ipv4address.</span></div><div><span><br></span></div><div></div><div>Я, пожалуй, попробую сделать соответствующие правки для alterator-net-eth, чтобы предложить решение данной проблемы.<br></div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
  Если же пользователю захочется etcnet или сочетания etcnet и NM, то<br>
тогда он сам решит, что делать с дублирующимися настройками (убрать NM<br>
или использовать read-only отображение etcnet в NM).<br></blockquote><div><br></div><div>Пользователю, в большем количестве случаев, не нужно ни то, ни другое. Ни etcnet, ни сочетание etcnet и NM. Ему хочется определённости. Если включен NetworkManager, если NetworkManager что-то умеет (например, получать IP по DHCP, а NAMESERVER задавать вручную), то нужно, чтобы эта возможность была доступна. И чтобы эта возможность включалась и отключалась штатными средствами - через Альтератор.<br></div><div><br></div><div>Честно говоря, у &quot;гибридного варианта&quot; поведение совершенно не определённое. То ли так получится, то ли эдак.  На практике такой вариант никто не посоветует.</div><br><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
  По-моему так.<br></blockquote><div><br></div><div>Главное, что из коробки это не так. И привести поведение к ожидаемому штатными средствами не предусмотрено. Но теперь это можно предусмотреть.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
&gt; BOOTPROTO=dhcp<br>
&gt; TYPE=eth<br>
&gt; NM_CONTROLLED=yes<br>
&gt; DISABLED=yes<br>
&gt; CONFIG_WIRELESS=no<br>
&gt; CONFIG_IPV4=yes<br>
&gt; <br>
&gt; При этом NetworkManager запущен, но редактировать настройки через него<br>
&gt; невозможно, потому что плагин etcnet-alt это запрещает.<br>
&gt; <br>
&gt; Задача, при этом выглядит так:<br>
&gt; - нужно оставить в получение ip по DHCP, но задать при этом другой<br>
&gt; nameserver.<br>
&gt; <br>
&gt; Если возможно (а этот простой кейс вполне допустим), то почему такая<br>
&gt; возможность отключена по умолчанию?<br>
&gt; <br>
&gt; Если для этого нужно переключиться в etcnet, то зачем это включено по<br>
&gt; умолчанию?<br>
&gt; <br>
&gt; По этому поводу я завёл багу:<br>
&gt; <a href="https://bugzilla.altlinux.org/show_bug.cgi?id=38455" rel="noreferrer" target="_blank">https://bugzilla.altlinux.org/show_bug.cgi?id=38455</a><br clear="all"></blockquote></div><br>-- <br><div dir="ltr" class="gmail_signature">Sin (Sinelnikov Evgeny)</div></div>