Hello!
Nos, megoldható-e a QEmu-val olyan hálózati beállítás, amikor is nem a fizikai gép működik bridge módban a virtuális gép és a fizikai háló között, hanem olyan "önálló" hálókarit emulál, tehát a virtuális gép kívülről olyan legyen, mintha teljesen önálló, független gép lenne?
Köszi!
- 1954 megtekintés
Hozzászólások
az a bridge
- A hozzászóláshoz be kell jelentkezni
Hát, csak nem megy.... felraktam a brigde-utils csomagot, de addbr failed: Package not installed! Milyen package? :(
--
OpenSuSE 10.3, Celeron 2,4Ghz, 768MB, 2*160GB IDE Raid0, FX5200, SBLive! E400
OpenSuSE 10.2, Acer Aspire 5020, AMD Turion 64bit @ 1,8Ghz, 1GB, 80GB Toshiba, Mobility Radeon X700 PCI-E 128MB/128bit
- A hozzászóláshoz be kell jelentkezni
a brigde-utils tartalmazza a brctl
Usage: brctl [commands]
commands:
addbr add bridge
delbr delete bridge
addif add interface to bridge
delif delete interface from bridge
setageing set ageing time
setbridgeprio
set bridge priority
setfd set bridge forward delay
sethello set hello time
setmaxage set max message age
setpathcost
set path cost
setportprio
set port priority
show show a list of bridges
showmacs show a list of mac addrs
showstp show bridge stp info
stp {on|off} turn stp on/off
- A hozzászóláshoz be kell jelentkezni
bridge-utils fentvan, anélkül még brctl parancs sem volt...
--
OpenSuSE 10.3, Celeron 2,4Ghz, 768MB, 2*160GB IDE Raid0, FX5200, SBLive! E400
OpenSuSE 10.2, Acer Aspire 5020, AMD Turion 64bit @ 1,8Ghz, 1GB, 80GB Toshiba, Mobility Radeon X700 PCI-E 128MB/128bit
- A hozzászóláshoz be kell jelentkezni
gyári vagy saját kerneled van?
tap/tun, bridge, tudása legyen a gyári kernelek tudják ezt. milyen a kernel distro stb?
- A hozzászóláshoz be kell jelentkezni
Saját 2.6.20 kernel, a laptopról van szó...
PÜ-ben már beszétünk hrgy84 kollegával, küldött scriptet, most azt mazsolázom... Meg most modulárisan beleraktam az ethernet bridging-et, mert nem volt benne... :S Gondoltam nem lesz rá szükség. :D
--
OpenSuSE 10.3, Celeron 2,4Ghz, 768MB, 2*160GB IDE Raid0, FX5200, SBLive! E400
OpenSuSE 10.2, Acer Aspire 5020, AMD Turion 64bit @ 1,8Ghz, 1GB, 80GB Toshiba, Mobility Radeon X700 PCI-E 128MB/128bit
- A hozzászóláshoz be kell jelentkezni
Nekem van qemu-hoz scriptem, de amugy usermode-utilities meg bridge-utils kell hozza, a kernelbe TUN/TAP support es Bridging support kell hozza. Ha erdekel, keress meg pü, es elkuldom a scripteket
- A hozzászóláshoz be kell jelentkezni
Nekem nincs se tunctl, se usermode-utilities csomag... :(
Viszont a befordított modullal mostmár manuálisan meg tudom csinálni a bridge-t a brctl-val. Két baj van: az egyik, hogy ekkor nem megy a fizikai gép kapcsolata sem (se ping, se semmi), a másik meg így nem tudom beadni a qemu-nak. ha -net tap opcióval adom meg, akkor ugyebár jön a hiba a qemu-ifup scripnél, hogy tunctl not found, ha -net user,iface=tap0 akkor meg hatástalan, ugyanúgy a kis belső hálós dhcp történet.
--
OpenSuSE 10.3, Celeron 2,4Ghz, 768MB, 2*160GB IDE Raid0, FX5200, SBLive! E400
OpenSuSE 10.2, Acer Aspire 5020, AMD Turion 64bit @ 1,8Ghz, 1GB, 80GB Toshiba, Mobility Radeon X700 PCI-E 128MB/128bit
- A hozzászóláshoz be kell jelentkezni
Na várj, asszem ráéreztem... Rootként kell indítani a qemu-t, mert userként nem enged interface-hez piszkálni... :D
Mostmár megvan asszem. Kívülről lehet pingelni a tap0-t... ez rendbe is van. De akkor a virtuális gépen mit kell beállítani, mert onnan kifele nem megy. Én belőttem ugyanazt az ip-t, amit a tap0-nak, de nem megy... Próbáltam másikat is, olyat ami még nincs, úgyse. A fizikai gép tűzfala bejátszhat a dologba?
--
OpenSuSE 10.3, Celeron 2,4Ghz, 768MB, 2*160GB IDE Raid0, FX5200, SBLive! E400
OpenSuSE 10.2, Acer Aspire 5020, AMD Turion 64bit @ 1,8Ghz, 1GB, 80GB Toshiba, Mobility Radeon X700 PCI-E 128MB/128bit
- A hozzászóláshoz be kell jelentkezni
Na, már van tunctl... Külön le kellett tölteni. Akkor hogy is mondtad, hogy előbb manuálisan a bridge-t kell megcsinálni? Mostmár csinál magától egy qnettap0 interfészt a scripted, de a brctl-be nincs semmi... akkor a qemu-nak iface-nél a qnettap0-t kell megadni?
[szerk] Hiába adom meg, a tap0-t akkor is megcsinálja.
--
OpenSuSE 10.3, Celeron 2,4Ghz, 768MB, 2*160GB IDE Raid0, FX5200, SBLive! E400
OpenSuSE 10.2, Acer Aspire 5020, AMD Turion 64bit @ 1,8Ghz, 1GB, 80GB Toshiba, Mobility Radeon X700 PCI-E 128MB/128bit
- A hozzászóláshoz be kell jelentkezni
Most teljesen elvesztettem a fonalat... Tudom mi a bridge, és tudom mit szeretnék. Remélem nektek is sikerült érthetően elmondani. De most van itt nekem egy tap0, amit a qemu létrehoz, tök mind1, hogy mondom neki, hogy qnettap0-t kérek, van a qnettap0, ami a hrgy84 által küldött script csinál, van egy br0, amit állítólag meg kéne csinálni, van a fizikai tényleges eth1, meg ugye a virtuális gépnek is be kéne lőni egy ip-t (vagy dhcp-t), ami most fogalmam sincs, hogy tap0 vagy qnettap0, vagy esetleg még mindig a "hagyományos" hálókari. Persze mind különböző mac címmel... állítólag adni kell a tap-nak is ip-t, de akkor hogy adok még a virtuális gépnek is?
Na jó, megyek alszok, fáradt vagyok, nehéz napom volt, majd holnap nekiesek megint.
--
OpenSuSE 10.3, Celeron 2,4Ghz, 768MB, 2*160GB IDE Raid0, FX5200, SBLive! E400
OpenSuSE 10.2, Acer Aspire 5020, AMD Turion 64bit @ 1,8Ghz, 1GB, 80GB Toshiba, Mobility Radeon X700 PCI-E 128MB/128bit
- A hozzászóláshoz be kell jelentkezni
No, kicsit eljaccottam az idot, elnezest, hogy nem nyujtottam suportot.
A tunctl alapvetoen azert kell, hogy ne kelljen a qemu-t rootkent futtatni, hanem siman menjen a dolog.
A qnet-create-val letre kell hozni a interface-t, en qnet0-t szoktam megadni, es mint ahogy privatban is irtam, a qemu szamara ezt az interface-t kell megadni, mint eszkozt. Ezek utan o a /etc/qemu-ifup scriptet lefuttatja, ami nagyreszt nem csinal semmit, csak ellenorzi hogy megvan-e az interface (elvben ha nincs, letrehozza, de eddig ismeretlen okok miatt ez a resze meg nem 100-as.
A tap interface-nak nem kell ip-t adni, hanem a bridge interface-nak kell ip-t adni, es arra kell figyelni, hogy a kulso interfaced ezentul nem eth0 hanem br0.
Tehat, ha Gentoo configot hasznalsz, akkor a eth0 configjat mindenutt br0-ra irod, az eth0 pedig null lesz, e szerint:
# /etc/conf.d/net
## Bridge interface - mostantol o a fo interface, mindent o kap
bridge_br0="eth0"
config_br0=( "192.168.0.2/24" )
brctl_br0=( "setfd 0" "sethello 0" "stp off" )
routes_br0=( "default via 192.168.0.1" )
dns_servers_br0="194.149.0.156 194.149.0.157"
config_eth0=("null")
A qnet0 interface-val nem kell csinalni semmit, mivel o bootkor nem is jon letre, es a qnet-create script le is kezeli ot (azt kell valahol beallitani, hogy a /tmp/qnet mappa bootkor uruljon)
Sajna nem tudok SuSE configot adni, ennyire nem vagyok benne otthon, mas rendszerre meg plane nem tudok tippeket adni, de biztos van itt valaki aki el tudja magyarazni a gentoo-s konfig alapjan, hogy ez hogy nez ki pl. suse-n.
Alapvetoen arrol van szo, hogy a br0-t fellojuk, hozzaadjuk a eth0-t, es hogy a dolog viccesebb legyen, nem a eth0-t hanem a br0-t tuntetjuk ki minden figyelmunkkel, neki adunk ip-t, netmaszkot, egyebeket, es rajta routolunk. Az eth0-val csak annyit kell csinalni, hogy "ifconfig eth0 up", es tenyleg semmi egyebet, ne adjunk neki ip-t, ilyes.
A tun/tap interface hasonlo mostohagyerek lesz, vele is csak annyi torteni, hogy on-demand letrejon, es hozzaadatik a bridge interface-hez, de nem konfiguraljuk fel a host oldalarol - ezt a guest oprendszernek kell megtennie.
Ennek az az ertelme, hogy a eth0 a br0 miatt folyamatosan promiscous modba kerul, es ami a guest-nek szol, azt a bridge tovabbitja a tun/tap interface-n at. Mivel egy fizikai alhaloba kerul a guest a hosttal, igy ugyanazok a szabalyok ervenyesek a guest-re is mint a hostra. Igy, ha pl. a host kozvetlen van egy kabelmodemen, es ugy eri el a netet, akkor a guest-nek nem igazan adhatunk netet, mert ahhoz a virtualis NIC MAC cimet be kell regelni.
- A hozzászóláshoz be kell jelentkezni
elnezest, hogy nem nyujtottam suportot.
Semmi gond, végül is nem kötelező itt segíteni, csak jószándékból/szabadidőből teszi az ember. :) De köszönöm, hogy segítesz!
Tehát akkor megpróbálom összefoglalni :P:
- rootként a qemu-create qnet0 paranccsal csinálok egy tap interfészt
- a qemu indítóscriptjébe beírom/módosítom a hálózati opciókat, nagyjából így: -net nic,vlan=0 -net tap,vlan=0,iface=qnet0
- userként indíthatom a virtuális gépet, mert az interfész létezik
- aztán brctl addbr br0, létrehozom a bridge-t
- ifdown eth1
- ifconfig eth1 up
- brctl addif br0 qnet0, valamint brctl addif br0 eth1, ezzel berakom a bridge-be a két interface-t
- ifconfig br0 192.168.1.10 netmask 255.255.255.0 up, ezzel a bridge-nek adtam ip-t, majd route add default gw 192.168.1.4 (vagy lehet dhcp-vel is? dhclient br0?)
- majd ha elindult a virtuális gép, ott szépen állítok egy ip-t
Valahogy így? :)
[szerk] Találtam egy ilyet:
- nameif -r reth1 eth1
- nameif -r eth1 br0
Ezt a végén meg lehet csinálni, és akkor elvileg nincs gond, hogy mostmár nem az eth1 a külső, hanem a br0... Na majd meglátom! :)
--
OpenSuSE 10.3, Celeron 2,4Ghz, 768MB, 2*160GB IDE Raid0, FX5200, SBLive! E400
OpenSuSE 10.2, Acer Aspire 5020, AMD Turion 64bit @ 1,8Ghz, 1GB, 80GB Toshiba, Mobility Radeon X700 PCI-E 128MB/128bit
- A hozzászóláshoz be kell jelentkezni
Jesszus, dehogy add hozza, a qnet-create csinal mindent!
siman qnet-create. Yol is neznenk ki
De amugy asszem a qnet-create-nak userkent kellene mennie...
- A hozzászóláshoz be kell jelentkezni
Nekem nem csinálja meg.... qnet-create után brctl show tök üres... És mint mondtam, hiába adom meg a virtuális os indítóscriptjébe, hogy iface=qnet0, akkor is megcsinálja a tap0-t.
--
OpenSuSE 10.3, Celeron 2,4Ghz, 768MB, 2*160GB IDE Raid0, FX5200, SBLive! E400
OpenSuSE 10.2, Acer Aspire 5020, AMD Turion 64bit @ 1,8Ghz, 1GB, 80GB Toshiba, Mobility Radeon X700 PCI-E 128MB/128bit
- A hozzászóláshoz be kell jelentkezni
Nem tudom, lehet hogy a suse ennyire hulye... valami extrem haxx lehet benne
- A hozzászóláshoz be kell jelentkezni
Na, MEGVAAAN! :D
Végül is a következő lépésekből:
A qemu indítóscriptjébe "-net nic,vlan=0 -net tap,vlan=0" opciókat kell csak írni... Lehet még adni neki iface-t, mac-et, de tök felesleges, csak a helyet pazaroljátok a hdd-ről, mert úgysew azzal a mac-címmel fogja létrehozni, és nem is a megadott néven... :P Nekem mindig létrehoz magától egy tap0-t, és ahogy az utóbbi pár indítást néztem, a mac cím is statikus (9E:6D:9A:93:55:A0).
Root-ként kell indítani, hogy a tap0-t meg tudja csinálni. (persze kell a /etc/qemu-ifup script)
Aztán szintén root-ként a konzolba:
ifdown eth1
nameif -r reth1 eth1
brctl addbr eth1
brctl addif eth1 reth1
brctl addif eth1 tap0
ifconfig eth1 192.168.1.5 netmask 255.255.255.0 up
ifconfig reth1 up
Ezután ha elindult a virtuális gép, ott is be lehet lőni az ip-t, pl, 192.168.1.10. Pinggel jól lehet tesztelni, DE:
1. nem szabad lelőni az első Destination Unreachable üzinél! Kell egy kis idő, amíg a bridge megtanulja a mac címeket, és hogy merre kell dobni. a 3.-4. pingre már simán jön válasz.
2. Biztos ami biztos a tűzfalat érdemes lelőni, mert megfoghatja a pinget. Ha már látod hogy megy, és hosszú távra tervezel a tap interfésszel, akkor persze be lehet lőni a tűzfalat a tap0 kezelésére is.
Az átnevezéses hóka-móka azért kell (ugyebár eth1 a bridge interfész) hogy a fizikai gépen a programok és az os ne kavarodjon meg... így mindenféle különösebb heggesztés nélkül megy minden!
Remélem másoknak ezek után egyszerűbb lesz az életük! :D Köszönöm azoknak, akik segítettek!
--
OpenSuSE 10.3, Celeron 2,4Ghz, 768MB, 2*160GB IDE Raid0, FX5200, SBLive! E400
OpenSuSE 10.2, Acer Aspire 5020, AMD Turion 64bit @ 1,8Ghz, 1GB, 80GB Toshiba, Mobility Radeon X700 PCI-E 128MB/128bit
- A hozzászóláshoz be kell jelentkezni