<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>39709</bug_id>
          
          <creation_ts>2021-02-20 17:02:13 +0300</creation_ts>
          <short_desc>[Open vSwitch] Не подымается автоматом OVSBond</short_desc>
          <delta_ts>2022-02-11 22:29:11 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>etcnet</component>
          <version>unstable</version>
          <rep_platform>x86_64</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>RS</keywords>
          <priority>P5</priority>
          <bug_severity>major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Evgeniy Korneechev">ekorneechev</reporter>
          <assigned_to name="Mikhail Efremov">sem</assigned_to>
          <cc>ldv</cc>
    
    <cc>rider</cc>
    
    <cc>sem</cc>
    
    <cc>shaba</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>196385</commentid>
    <comment_count>0</comment_count>
    <who name="Evgeniy Korneechev">ekorneechev</who>
    <bug_when>2021-02-20 17:02:13 +0300</bug_when>
    <thetext>bond0/options:
TYPE=ovsbond
BRIDGE=vmbr0
HOST=&quot;ens18 ens19&quot;
OVS_OPTIONS=&quot;bond_mode=balance-tcp lacp=active vlan_mode=native-tagged other_config:lacp-time=fast tag=222&quot;

vmbr0/options:
TYPE=ovsbr
HOST=&quot;bond0&quot;

С такими настройками из вложения OVS Bond bond0 не подымается.
Вывод ovs-vsctl show сразу после старта:
# ovs-vsctl show
e5b74366-580e-4eb9-9310-ba61e2d38ad9
    Bridge vmbr0
        Port bond0
            Interface bond0
                error: &quot;could not open network device bond0 (No such device)&quot;
        Port vmbr0
            Interface vmbr0
                type: internal
    ovs_version: &quot;2.14.1&quot;

Если сделать так, то все ОК будет:
# ovs-vsctl del-port vmbr0 bond0
# ifup bond0

Судя по логам имеется лишняя команда (ovs-vsctl[3254]) по добавлению порта bond0 в vmbr0:
# journalctl -b0 -u network.service
[...]
фев 20 11:17:45 altpve1.rs ovs-vsctl[3217]: ovs|00001|vsctl|INFO|Called as /usr/bin/ovs-vsctl -t 10 -- --may-exist add-br vmbr0
фев 20 11:17:45 altpve1.rs ovs-vsctl[3254]: ovs|00001|vsctl|INFO|Called as /usr/bin/ovs-vsctl -t 10 -- --may-exist add-port vmbr0 bond0
фев 20 11:17:45 altpve1.rs network[2881]:         Starting bond0: ....ovs-vsctl: Error detected while setting up &apos;bond0&apos;: could not open network device bond0 (No such device).  See ovs-vswitchd log for details.
фев 20 11:17:45 altpve1.rs network[2881]: ovs-vsctl: The default log directory is &quot;/var/log/openvswitch&quot;.
фев 20 11:17:45 altpve1.rs ovs-vsctl[3259]: ovs|00001|vsctl|INFO|Called as /usr/bin/ovs-vsctl -t 10 -- --fake-iface --may-exist add-bond vmbr0 bond0 ens18 ens19 bond_mode=balance-tcp lacp=active vlan_mode=native-tagged trunks=2,4,11,12,13,34 other_config:lacp-time=fast
фев 20 11:17:45 altpve1.rs ovs-vsctl[3259]: ovs|00002|db_ctl_base|ERR|&quot;--may-exist --fake-iface add-bond vmbr0 bond0 ens18 ens19 bond_mode=balance-tcp lacp=active vlan_mode=native-tagged trunks=2,4,11,12,13,34 other_config:lacp-time=fast&quot; but bond0 actually has interface(s) bond0
фев 20 11:17:45 altpve1.rs network[2881]: ..ovs-vsctl: &quot;--may-exist --fake-iface add-bond vmbr0 bond0 ens18 ens19 bond_mode=balance-tcp lacp=active vlan_mode=native-tagged trunks=2,4,11,12,13,34 other_config:lacp-time=fast&quot; but bond0 actually has interface(s) bond0
фев 20 11:17:45 altpve1.rs network[2881]: !FAILED
фев 20 11:17:45 altpve1.rs network[2881]:         Starting vmbr0:  &apos;vmbr0&apos; is already up SKIPPED
фев 20 11:17:45 altpve1.rs systemd[1]: Started Network Connectivity

PS Как костыль работает добавление следующего кода в /etc/net/scripts/create-ovsbond:
$OVS_VSCTL -t $OVS_VSCTL_TIMEOUT -- del-port &quot;$BRIDGE&quot; &quot;$NAME&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>196633</commentid>
    <comment_count>1</comment_count>
    <who name="Evgeniy Korneechev">ekorneechev</who>
    <bug_when>2021-03-02 11:05:58 +0300</bug_when>
    <thetext>(Ответ для Evgeniy Korneechev на комментарий #0)
&gt; # ovs-vsctl show
&gt; e5b74366-580e-4eb9-9310-ba61e2d38ad9
&gt;     Bridge vmbr0
&gt;         Port bond0
&gt;             Interface bond0
&gt;                 error: &quot;could not open network device bond0 (No such device)&quot;
&gt;         Port vmbr0
&gt;             Interface vmbr0
&gt;                 type: internal
&gt;     ovs_version: &quot;2.14.1&quot;

В такой ситуации при попытке разобраться с проблемой были выполнены команды по добавлению сетевых интерфейсов ens18 и ens19 в мост vmbr0 (явно опрометчиво)  и,  в совокупности с bond_mode=balance-tcp lacp=active, это вызвало то ли сетевой шторм, то ли петлю, полностью разломав сеть как в ВМ и на хосте, так и во всем сегменте сети.

PS Человеческий фактор и некомпетентность конечно никто не отменяет - но с текущую реализацию скрипта create-ovsbond нужно чинить.

PPS С указанным костылем данная ситуация не возникает, так как OVS не дает добавить в мост интерефейс, который уже есть в нем через бонд.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207692</commentid>
    <comment_count>2</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2022-02-11 22:29:11 +0300</bug_when>
    <thetext>etcnet-0.9.22-alt1 -&gt; sisyphus:

 Fri Feb 11 2022 Alexey Shabalin &lt;shaba@altlinux&gt; 0.9.22-alt1
 - ovsport: OVS_PATCH option (Closes: #39708).
 - ovsport: HOST must be set.
 - ovsport: BRIDGE must be set.
 - ovsbond: BRIDGE must be set.
 - ovsbond: support VLAN id (Closes: #39707).
 - openvswitch: remove interface before create (Closes: #39709).</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>