Pomoc s nastavením bridge medzi bond a VM (KVM)

Pomoc s nastavením bridge medzi bond a VM (KVM)
« kdy: 18. 05. 2023, 09:14:32 »
Ahojte, hľadám niekoho kto by mi vedel pomôcť nastaviť na serveri v datacentre sieťovanie medzi bond a VM. Situácia je nasledovná:
- fyzický server v datacentre
- hlavný server beží AlmaLinux 9 s KVM
- hlavný server je pripojený na sieť cez bond0 (802.3ad) primárna statická public IP
- hlavný server ma napojený ďalší bond1 (802.3ad) so sekundárnou statická public IP pre VM

Potreboval by som prepojiť bond1 do VM, tak aby bola VM dostupna z internetu na sekundarnej IP.

Všetky pokusy o vytvorenie bridge (bond1->bridge1->virt-adapter-vm) zlyhali, v najlepšom prípade fungovalo iba DNS vo VM. Na sekundarnej adrese sa mim neustále ohlasoval hlavný server. Hlavný server vidí VM lokálne bez problémov. Štandardné NAT na VM ide tiež bez problémov.

Je tu niekto, čo by sa na to podujal? Samozrejme aj s primeranou odmenou 🙂

Ďakujem.

joka


Jose D

  • *****
  • 872
    • Zobrazit profil
Re:Pomoc s nastavením bridge medzi bond a VM (KVM)
« Odpověď #1 kdy: 18. 05. 2023, 10:02:14 »
> Štandardné NAT na VM ide tiež bez problémov.

no, NAT, to bude ta chyba.. tam by se nic překládat nemělo..

jestli má hlavní server dejme tomu dvě fyzické iface, eno1, eno2 a máš dvě IP: IP1,IP2..:

tak si:

* hoď eno1, eno2 do bond0
* vytvoř bridge br0
* do br0 dej bond0
* do br0 si dej i veth toho VM
* br0 přiděl IP1
* bond0 nepřiděluj nic
* interface uvnitř toho VM  přiděl IP2

Jestli moc nevíš, co děláš, tak to bude chtít nějaký OOB KVM přístup, a to tak, že určitě.

Jose D

  • *****
  • 872
    • Zobrazit profil
Re:Pomoc s nastavením bridge medzi bond a VM (KVM)
« Odpověď #2 kdy: 18. 05. 2023, 10:13:53 »
- hlavný server je pripojený na sieť cez bond0 (802.3ad) primárna statická public IP
- hlavný server ma napojený ďalší bond1 (802.3ad) so sekundárnou statická public IP pre VM

jo, já už to vidím jak to asi myslíš.. To co jsem psal vejš, platí jen pokud jsou obě IP na stejný L2 síti, ty to máš z nějakých důvodů rozhozený..  srry.

Ještě jeden tip, nešlo by propasovat ty interface dovnitř přes pcie passthrough ? Tím by ses některým problémům úplně vyhnul..

Re:Pomoc s nastavením bridge medzi bond a VM (KVM)
« Odpověď #3 kdy: 18. 05. 2023, 10:18:42 »
NAT nepoužívam, to bolo len info, že to prejde von z toho VM....

V texte:
* hoď eno1, eno2 do bond0 - TO JE FUNKCNE
* vytvoř bridge br0 - TO SOM SPRAVIL
* do br0 dej bond0 - TOTO NEMOZEM, LEBO TAM MUSI IST BOND1 A NIE BOND PRE FYZICKY SERVER
* do br0 si dej i veth toho VM - TOTO SOM NEROBIL
* br0 přiděl IP1 - TOTO SOM SPRAVIL
* bond0 nepřiděluj nic - MYSLIS ASI IP (NEPRIRADIL SOM PRE BOND1)
* interface uvnitř toho VM  přiděl IP2 - TOTO SOM SPRAVIL

čo sa týka "Ještě jeden tip, nešlo by propasovat ty interface dovnitř přes pcie passthrough ? Tím by ses některým problémům úplně vyhnul.." vôbec netuším o čom píšeš 😀

ked som to mal doma, tak samozrejme to všetko islo cez jednu sietovku a problem s nastavením nebol, ale teraz to je defakto na viacerých sietovkach (4) z ktorých mam 2 bondy na serveri a kazdy bond ma svoju staticku public IP

Jose D

  • *****
  • 872
    • Zobrazit profil
Re:Pomoc s nastavením bridge medzi bond a VM (KVM)
« Odpověď #4 kdy: 18. 05. 2023, 15:41:32 »
>  LEBO TAM MUSI IST BOND1 A NIE BOND PRE FYZICKY SERVER

a na těch dvou bondech jsou různé L3 (IP) sítě, nebo je tam ta samá?


Re:Pomoc s nastavením bridge medzi bond a VM (KVM)
« Odpověď #5 kdy: 18. 05. 2023, 15:43:34 »
"a na těch dvou bondech jsou různé L3 (IP) sítě, nebo je tam ta samá?"

je tam tá ista sieť, akurát bond0 je na konci 27 a bond1 28, ostatné parametre sú identické


Re:Pomoc s nastavením bridge medzi bond a VM (KVM)
« Odpověď #7 kdy: 20. 05. 2023, 21:18:20 »
IP adresa urcena pro VM nesmi byt pouzita nikde jinde (a uz vubec na bond1, pokud tam ma byt bridge).

OK, takže takto podľa návodu:

nmcli connection add type bond con-name bond1 ifname bond1 bond.options "mode=802.3ad"
nmcli connection add type bridge con-name bridge1 ifname bridge1
nmcli connection add type ethernet slave-type bond con-name bond1-port1 ifname ens5f0 master bond1
nmcli connection add type ethernet slave-type bond con-name bond1-port1 ifname ens5f1 master bond1
nmcli connection modify bridge1 master bond1
nmcli connection up bridge1
nmcli connection modify bond1 ipv4.method disabled
nmcli connection modify bond1 ipv6.method disabled
nmcli connection up bond1
nmcli connection modify bond1 connection.autoconnect-slaves 1
nmcli connection up bond1
cat /proc/net/bonding/bond1

všetko sa zdá OK:# nmcli device
DEVICE   TYPE      STATE                   CONNECTION   
bond0    bond      connected               bond-master 
virbr0   bridge    connected (externally)  virbr0       
vnet15   tun       connected (externally)  vnet15       
bond1    bond      connected               bond1       
bridge1  bridge    connected               bridge1     
eno1     ethernet  connected               bond0 port 1
eno2     ethernet  connected               bond0 port 2
ens5f0   ethernet  connected               bond1-port1 
ens5f1   ethernet  connected               bond1-port1 

do kvm je pridaný virtualny adaptér s bridge1, buď výberom Bridge network a device bridge1 alebo cez pridanie:
### bridge.xml
<network>
  <name>br0</name>
  <forward mode="bridge"/>
  <bridge name="bridge1" />
</network>

virsh net-define ./bridge.xml
virsh net-start brridge1
virsh net-autostart bridge1

VM má nastavený pridelenú statickú IP + gateway a dns tak ako pridelilo datacentrum.
VM je Debian a /etc/interfaces je nastavený nasledovne:
auto enp1s0
iface enp1s0 inet static
address xx.xx.xx.28/dd
gateway xx.xx.xx.25
nameserver xx.xx.yy.5
nameserver xx.xx.yy.6
nameserver 8.8.4.4

ping www.sme.sk
Dočasná chyba pri riešení názvu

Čo robím zle?

Re:Pomoc s nastavením bridge medzi bond a VM (KVM)
« Odpověď #8 kdy: 20. 05. 2023, 22:14:29 »
a samozrejme, ze nejde ani ping priamej IP
ping 104.22.13.230
ping: connect: Sieť nie je dostupná

a ani zvonka nie je dostupna IP ktorú má VM

Re:Pomoc s nastavením bridge medzi bond a VM (KVM)
« Odpověď #9 kdy: 21. 05. 2023, 00:03:18 »
nmcli connection add type ethernet slave-type bond con-name bond1-port1 ifname ens5f0 master bond1
nmcli connection add type ethernet slave-type bond con-name bond1-port1 ifname ens5f1 master bond1
Asi by tam melo byt bond1-port2

nmcli connection modify bridge1 master bond1
A tohle mi prijde, ze pro tvuj setup ma byt naopak - neco jako:
nmcli connection modify bond1 master bridge1
(pripadne bude treba dohledat presny zapis)

No a hlavne: jak je definovan sitovy interface VM?
(virsh dumpxml VMname)

Melo by tam byt neco jako:
Kód: [Vybrat]
    <interface type='bridge'>
      <mac address='52:54:00:12:34:56'/>
      <source bridge='bridge1'/>
      <model type='virtio'/>
      <rom enabled='no'/>
      <address type='pci' ...
    </interface>

Re:Pomoc s nastavením bridge medzi bond a VM (KVM)
« Odpověď #10 kdy: 21. 05. 2023, 07:20:48 »
samozrejme som to opravil na port2, len už sa nedal zmeniť príspevok, no nepomohlo to...

nmcli connection modify bridge1 master bond1 hmm... musím skontrolovať, išiel som ce RH návod, ale je to možné....

interface VM:
    <interface type='bridge'>
      <mac address='52:54:00:28:a0:1c'/>
      <source bridge='bridge1'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
    </interface>

Re:Pomoc s nastavením bridge medzi bond a VM (KVM)
« Odpověď #11 kdy: 21. 05. 2023, 07:27:38 »
nmcli connection add type bond con-name bond1 ifname bond1 bond.options "mode=802.3ad"
nmcli connection add type bridge con-name bridge1 ifname bridge1
nmcli device
nmcli connection add type ethernet slave-type bond con-name bond1-port1 ifname ens5f0 master bond1
nmcli connection add type ethernet slave-type bond con-name bond1-port2 ifname ens5f1 master bond1
nmcli connection modify bond1 master bridge1
nmcli connection up bridge1
nmcli connection modify bond1 ipv4.method disabled
nmcli connection modify bond1 ipv6.method disabled
nmcli connection up bond1
nmcli device
nmcli connection modify bond1 connection.autoconnect-slaves 1
nmcli connection up bond1

skončí to takto:
# nmcli device
DEVICE   TYPE      STATE                                  CONNECTION   
bond0    bond      connected                              bond-master 
virbr0   bridge    connected (externally)                 virbr0       
vnet22   tun       connected (externally)                 vnet22       
bond1    bond      connected                              bond1       
eno1     ethernet  connected                              bond0 port 1
eno2     ethernet  connected                              bond0 port 2
ens5f0   ethernet  connected                              bond1-port1 
ens5f1   ethernet  connected                              bond1-port2 
bridge1  bridge    connecting (getting IP configuration)  bridge1   

Re:Pomoc s nastavením bridge medzi bond a VM (KVM)
« Odpověď #12 kdy: 21. 05. 2023, 10:09:57 »
IP forward máš povolený?

Re:Pomoc s nastavením bridge medzi bond a VM (KVM)
« Odpověď #13 kdy: 21. 05. 2023, 10:54:19 »
nmcli connection modify bond1 master bridge1
Tohle jsem napsal jako "principialni" tvar. Chtelo by to zagooglit, jak presne to ma vypadat.

bridge1  bridge    connecting (getting IP configuration)  bridge1
Nevim, co znamena "skonci to takto". Tenhle radek je spravne. Vychozi stav je, ze interface chce ziskat ip adresu pomoci DHCP.
Pokud to neni zadouci, je treba interface prislusne nastavit - treba:
nmcli connection add type bridge con-name bridge1 ifname bridge1 ipv4.method disabled ipv6.method disabled

Re:Pomoc s nastavením bridge medzi bond a VM (KVM)
« Odpověď #14 kdy: 21. 05. 2023, 11:00:35 »
Vzdy, kdyz vytvaris interface, davej tam rovnou:
 autoconnect yes

a pokud jde o bridge tak taky
 stp off

Priklad:
nmcli connection add type bridge con-name bridge1 ifname bridge1 autoconnect yes stp off ipv4.method disabled ipv6.method disabled