[megoldva] VMware ESXi: Bridge virtualizált Debianok között

Fórumok

Sziasztok!

A VMware ESXi ingyenes verziójával játszadoztam és egy kisebb problémába ütköztem. Már nézelődtem ezzel kapcsolatban, de nem túl sok hasznosat találtam.

Adott egy virtuális, belső hálózat, ami 3 db gépből áll: Debain 2, Debian 2-3, Debian 3;
A Debian 2-3 nevű gépnek lenne az a dolga, hogy bridge-el és forgalmat szűr a Debian 2 és a Debian 3 nevű virtualizált gépek között (erre azért van szükség, mert az ESXi ingyenes verziójában nem igazán találtam ACL-ezésre lehetőséget)

A topológia:
djaxv3xg3uu7hwgs1tnk.png

Debian2-3 br0 címe: 192.168.1.1
Debian2 eth0 címe: 192.168.1.2
Debian3 eth0 címe: 192.168.1.3

... valamiért viszont nem akar működni a bridge-elés.
A Debian 2 alapból nem tudja megpingelni egyik gépet se, viszont ha a Debian 2-3 -t pingeli, akkor a br0 interfész MAC címe bekerül a ARP táblájába (a Debian 2 nevű gép felé "néző" interfésznek viszont nem ez a MAC címe és gondolom ezért is nem megy...). Ezt az apró problémát úgy hidaltam át, hogy a Debian 2-3 gép minden hálózati kártyájának ugyanazt a MAC címet állítottam be. Ezután mind a 2 gép elérte a bridge-t, de a két gép (Debian 2 és Debian 3) továbbra se érik el egymást.

Ez alapján akartam megcsinálni a hálózatot:
http://wiki.debian.org/BridgeNetworkConnections#Setting_up_your_Bridge

update:
Felraktam az otthoni gépemre a VMware Workstation-t és ugyanazt a hálózatot felépítettem rajta, mint az ESXi-on. Az eredmény meglepő volt: elsőre tökéletesen működött a bridge => ezek szerint az ESXi ingyenes verziójában van valamilyen korlátozás vagy a haladó beállításoknál kellene valamit átírnom?
(a félreértések elkerülése végett a tesztelésnél lekapcsoltam a bridge interfészt is, hogy biztosan azon keresztül megy e a kommunikáció)

ESXi -on még azt vettem észre, hogy amikor Debian2-ről pingelem Debian3-at, akkor Debian3 ARP táblájába megjelenik a Debian2 interfészének a MAC címe, viszont a Debian2 ARP táblájába nem kerül új bejegyzés => elvileg útközben, "elkallódik" a csomag.
A Debian2-3 bridge-elésre használt gépen amúgy szépen felépül a kapcsolási tábla és jól "jegyzeteli", hogy melyik gép melyik interfészen van.

---
Megoldás: a vSwitch-en engedélyezni kell: "Promiscuous mode"

Hozzászólások

Hi, azért egy brctl show jó lenne...

egy ilyen esetben elvileg nem kell semmit "varazsolni" megc cimekkel elvileg, a virtualis switch ugy mukodik mint egy valos eszkoz, annak se kell allitgatnod a mac cimeit ahhoz hogy mukodjon. Mivel itt egy (virtualis (nem VLAN)) lanon vagy, ezert az arp tablaban egy mac cimet egy ip cimhez kellene kotni es kesz.

A hiba ennel valami sokkal trivialisabb lesz valoszinuleg:
route-ot jol allitottad be mind a ket gepen? jok a "halokartyak" altal felvett ip cimek? jok a netmaskok? a debian2 es 2-3 kozott levo halozat mas halozat mint a 2-3 es a 3 kozott?

A mac addresseket allitsd visza defaultra szerintem.

Ezt írtad:
"A Debian 2-3 br0 interfészének van csak IP címe (192.168.1.1).
...
A Debian 2 alapból nem tudja megpingelni egyik gépet se"

Akkor ha a rendszerben csak 1 ip van, milyen másik ip-ről, vagy interfaceről akarsz pingetni?

Fedora 16, Thinkpad x61s

na jo, inkabb mondom mit probalj meg:
- a mac arresseket allitsd visza, minden eszkoznek legyen egyedi mac addr-e
- a debian2 nek a vmnet2 re csatlakoztatott IF re adj egy 192.168.1.2 ip cimet 255.255.255.0 netmaskkal (az 1 es a 254 altalaban routernek van fenntartva, csak a gubancok elkerulese vegett)
- a debian2-3 gep vmnet2 re csatlakoztatott if re adj egy 192.268.1.3 ip cimet, ugyancsak 255.255.255.0 maskkal

-a debian3 gepet egyelore kapcsold ki, haladjunk lepesenkent...

Van egy tippem, hogy merre haladunk, ezért megelőzésképpen:
route-tal illetve NAT-tal valóban meg lehet oldani ezt a problémát, ha külön IP cím tartományokat használunk, viszont a későbbiekben a VPS-ek a publikus címtartományból (ugyanazon alhálózatból) fognak IP címeket kapni és "kívülről" is el kell tudni érni őket.

aa, ertem, akkor viszont a route tablaval kell jatszadozni
meg kell adnod hogy melyik ip-t melyik if-en keresztul eri el az adott gep.
... de ha kozvetlenul is el lehet erni mind3 gepet, akkor mi ertelme a szuresnek a ketto kozott? ha pedig a debian3 at nem lehet kivulrol elerni es a debian2-3 a firewall akkor annak miert nem lehet belso ipje?
illetve attol meg hogy a gepeknek lesz 1-1 kulso ipje attol te meg uzemeltethetsz egy sajat kis belso halozatot ... akar tobbet is.

rovidrefgogva ... mi is a konkret feladat?

a Debian2-3 gépnek úgy kellene működnie, mint egy switch-nek.
A virtuális gépeket hozzácsatlakoztatom és azon keresztül megy a kommunikáció (nem csak 2-3 VPS van, de a topológia egyszerűsítése miatt egyelőre elég ennyivel dolgozni).

Elvileg kiadok pár parancsot:
aptitude install bridge-utils
brctl addbr br0
brctl addif br0 eth0 eth1 eth2
ifconfig br0 192.168.1.1

+ pár opciót kikapcsolok a kernelben és a Debianom (elvileg) switchként funkcionál.

Erre többek között arra van szükség, mert így tudom szűrni illetve mélyrehatóbban elemezni a VPS-ek forgalmát.

szerintem ez nem ilyen egyszeru, de ez tenylet nem az en teruletem, remelem neked van igazad, es tudsz igy sszurni.

Ha ez a topologia igy nez ki, akkor szerintem felesleges 2 db vmnet switch, a topologia mukodik a kovetkezokeppen:

-internet (alias colloc) -> debian2-3 -> kozos virt switch -> vm gepek
a debian2-3 on belul a colloc portot oszefogod egy bridge-el virt switch portjaval
es minden gep, a virt switchen csucsul. mivel a netmask 0.0.0.0 ugyis ezert tok mindegy az ip cimek ... igazabol nem is szuksegesek, csak a debian2-3 gepen erdemes felvenni egy ip-t hogy ne csak az esxi consolejabol tudd managelni.

csak tipp: ip_forward = 1 nemkell hozza?

--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!

észrevettem néhány érdekességet, ezért frissítettem a leírást

Engedelyezd a vswitch port security beallitasainal a promiscuous mode-ot, meg ha nincs, akkor az allow forged transmit-ot.

--
"You're NOT paranoid, we really are out to get you!"