Portál AbcLinuxu, 10. května 2025 09:33

Dotaz: KVM a síťové rozhraní

14.3.2011 14:18 hufhendr | skóre: 33 | blog: U hufhendra
KVM a síťové rozhraní
Přečteno: 540×
Odpovědět | Admin
Zdravím,

chtěl bych provozovat Debian v KVM a podle postupu bych měl na síťové kartě nastavit NAT nebo bridge. Nelíbí se mi vlastně ani jedno z těch řešení, ačkoli chápu, že mohu být omezen pouze jedinou vnější IP adresou; to ale není můj případ.

Jde tedy použít něco jednoduššího typu ifconfig eth0:1 192.168.1.10 a připojení KVM na eth0:1 ?

Předem díky

Řešení dotazu:


Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

14.3.2011 14:43 Sten
Rozbalit Rozbalit vše Re: KVM a síťové rozhraní
Odpovědět | | Sbalit | Link | Blokovat | Admin
Na to je právě bridge, do kterého přidáte eth0, fyzický stroj se chová jako switch mezi vnější a virtuální sítí. IP adresy si nastavují virtuální stroje samy. Můžete ale samozřejmě vytvořit i routovanou síť, když do bridge eth0 nepřidáte.
14.3.2011 16:51 hufhendr | skóre: 33 | blog: U hufhendra
Rozbalit Rozbalit vše Re: KVM a síťové rozhraní
Ta bridge se mi moc nedařila (dokonce jsem ztratil IP adresu hostitelského serveru) a tak jsem to nakonec všechno vrátil do původního stavu se statickou eth0. Zkusil jsem VDE, ale jen s částečným úspěchem. Na hosta nepingnu a z něj jen na tap0, dál už ne.

Postupuji tedy metodou pokus omyl a v těch sítích trochu tápu, nemáte tip na how-to, podle kterého by to šlo nastavit snadno a rychle?
14.3.2011 17:33 Sten
Rozbalit Rozbalit vše Re: KVM a síťové rozhraní
S bridge je to jednoduché, akorát (v /etc/network/interfaces) místo eth0 nastavíte br0:
auto br0
iface br0 inet static # Nebo dhcp, pokud to bylo v eth0
        # To, co bylo dříve v eth0
        bridge_ports eth0
        bridge_stp on
A potom trvá tak minutu po spuštění bridge, než začne komunikovat.
15.3.2011 13:36 hufhendr | skóre: 33 | blog: U hufhendra
Rozbalit Rozbalit vše Re: KVM a síťové rozhraní
Zapomněl jsem napsat, že můj hostitelský systém je Gentoo, tak jen pro úplnost doplním, že tam je to v souboru /etc/conf.d/net a použil jsem nakonec nastavení:
config_eth0=( "null" )

tuntap_tap0="tap"
config_tap0=( "null" )

RC_NEED_br0="net.eth0 net.tap0"
bridge_br0="eth0 tap0"
config_br0=( "192.168.3.100/24 brd 192.168.100.255")
routes_br0=( "default via 192.168.3.1" )
Dále je potřeba zrušit eth0 a startovat bridge
rc-update del net.eth0
rc-update add net.br0 default
14.3.2011 18:31 trekker.dk | skóre: 72
Rozbalit Rozbalit vše Re: KVM a síťové rozhraní
Ta bridge se mi moc nedařila (dokonce jsem ztratil IP adresu hostitelského serveru) a tak jsem to nakonec všechno vrátil do původního stavu se statickou eth0.
On je problém, že ten přechod znamená sebrat tu IP z eth a dát ji br - přičemž (podle toho, jak se to udělá) ten server chvíli nemá tu IP, přes kterou ses tam připojil, takže se to nedokončí. Jde to obejít, ale zrovna tohle dělám raději přímo u toho stroje. (Samozřejmě platí jenom pro prvotní změnu, když už máš funkční konfigurák, tak OK)

Jinak bridge je pro tenhle případ vcelku přirozené uspořádání. Hostitel v podstatě funguje jako switch a eth je v něm jeden port - ostatní porty (tap rozhraní) patří jednotlivým hostům; ta rozhran se pak dají se nastavovat podle potřeby, filtrovat netfilterem atd.

Na eth0:X bych být tebou raději zapomněl, hádám, že by ses s tím moc daleko nedostal.

Co se howto týče - jak nastavit bridge je výše, ostatní je záležitost jednoduchého
# tunctl -t tap0 -u uživatel
# brctl addif br0 tap0
# ip l s tap0 up
A start KVM. Uživatel u toho prvního příkazu je ten, pod kterým běží KVM. A asi bude chvilku trvat, než se to projeví (viz dmesg, budou tam hlášky jako "entering learning state" a "entering forwarding state" - ta druhá znamená, že už by to mělo fungovat)
Quando omni flunkus moritati
14.3.2011 22:26 Sten
Rozbalit Rozbalit vše Re: KVM a síťové rozhraní
Doplním, že pokud používáte libvirt, tak tam je potřeba nastavit bridgovanou síť a potom libvirt stroje do br0 přidává automaticky
15.3.2011 13:49 hufhendr | skóre: 33 | blog: U hufhendra
Rozbalit Rozbalit vše Re: KVM a síťové rozhraní
Bridge se snad povedla, věřím, že to VDE už bude snadné. Musí se tam dávat na něco pozor nebo to jen prostě spustím?
15.3.2011 16:53 Sten
Rozbalit Rozbalit vše Re: KVM a síťové rozhraní
Stačí nastavit:
<interface type='bridge'>
      <mac address='ad:re:sa'/>
      <source bridge='br0'/>
      <target dev='vnetX'/>
</interface>
15.3.2011 18:44 hufhendr | skóre: 33 | blog: U hufhendra
Rozbalit Rozbalit vše Re: KVM a síťové rozhraní
Jak jsem se díval, tak tohle platí pro libvirt. O tom jsem se dočetl, že je šikovná věc pro administraci virtualizovaných systémů, ale já mám zatím jen jeden a v plánu celkem 2 (mail a web). Pro maximální jednoduchost jsem zkusil samotné VDE a stačí:

vde_switch --numports 4 --mod 777 --group users --tap tap0 -d

Debian si načte IP adresu ze síťového DHCP a zdá se funguje úplně normálně, ping je 0.128 ms v obou směrech. Teď už to jen zafixuji, aby vše nabíhalo hned po startu a víc zatím ani nechci.
15.3.2011 21:26 hufhendr | skóre: 33 | blog: U hufhendra
Rozbalit Rozbalit vše Re: KVM a síťové rozhraní
Tak a pro úplnost a maximální jednoduchost doplním ještě nastavení VDE po startu systému:
cat /etc/conf.d/vde
VDE_MODPROBE_TUN="no"
VDE_TAP="tap0"
VDE_SOCK_CHMOD="770"
VDE_SOCK_CHOWN=":kvm"
VDE_OPTS="-tap ${VDE_TAP} -daemon"
Virtualizovaný systém pouštím pod uživatelem ve skupině kvm. Všem díky za rady a vlákno uzavírám jako vyřešené.
15.3.2011 13:46 hufhendr | skóre: 33 | blog: U hufhendra
Rozbalit Rozbalit vše Re: KVM a síťové rozhraní
Díky všem za rady, pochopil jsem, že se bridge nevyhnu. Ještě, že mám zkonfigurovanou sériovou konzoli, jinak bych to vzdal. Nakonec jsem dosáhl stavu, kdy po startu serveru vypadá síť následovně:
ifconfig 
br0       Link encap:Ethernet  HWaddr 68:b5:99:4f:c6:4c  
          inet addr:192.168.3.100  Bcast:192.168.100.255  Mask:255.255.255.0
          inet6 addr: fe80::6ab5:99ff:fe4f:c64c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:101 errors:0 dropped:0 overruns:0 frame:0
          TX packets:124 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:11912 (11.6 KiB)  TX bytes:14051 (13.7 KiB)

eth0      Link encap:Ethernet  HWaddr 68:b5:99:4f:c6:4c  
          inet6 addr: fe80::6ab5:99ff:fe4f:c64c/64 Scope:Link
          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
          RX packets:144 errors:0 dropped:0 overruns:0 frame:0
          TX packets:95 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:17815 (17.3 KiB)  TX bytes:15605 (15.2 KiB)
          Interrupt:19 

lo        Link encap:Místní smyčka  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:16 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1524 (1.4 KiB)  TX bytes:1524 (1.4 KiB)

tap0      Link encap:Ethernet  HWaddr 7e:b2:f4:07:19:5c  
          UP BROADCAST PROMISC MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
Doufám, že je to dobrá pozice pro další pokračování, teď musím končit a vrátím se k tomu zase až večer.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.