Kedves Fórumozók!
Egy számomra furcsa, félig-meddig logikus hálózati viselkedéssel kapcsolatban kérnék tanácsot.A hálózatom felépítése az alábbi vázlathoz hasonlatos:
+----MGMT_VLAN(172.18.88.160/27)------------------(bge1-172.18.88.171)freenas
(172.18.88.161) | +---------------(bce0-172.18.88.6)freenas
ROUTER-(VLAN-trunk)---SWITCH===| |
(172.18.88.1) | |
+----GENERIC_VLAN(172.18.88.0/25)-+-----(eth0-172.18.88.50)hostA
Mint az fentebb látható van két VLAN-om, a GENERIC, és az MGMT, mindegyik a saját kis subnetével. A router (openwrt) VLAN trönk-ként kapja meg őket, és mindkét VLAN-ba belóg egy vlan-interfésszel (.1 és .161)
A freenas default gw-je a .161-es című interfész, a hostA-é pedig a .1 .
A lényeg az lenne, hogy a menedzsment jellegő forgalmakat (webGUI, SSH) szeretném csak a MGMT VLAN-ba tartozó címen nyújtani, míg az NFS-t a generic VLAN-ba eső lábon.
A "hibajelenség" az, hogy a hostA-ról kapcsolódni a freenas menedzsmnet lábának címére (.171) HTTPS-en, de a kapcsolódás timeout-ra fut.
A tcpdump-pal ellenőriztem a forgalmakat, és a következő történik:
- hostA elküld egy SYN-t a routeren keresztül, ez meg is érkezik a freenas bge1 interfészére
- a freenas elküldi a válasz SYN-ACK-ot a bce0 interfészéről (GENERIC-láb) a .171-es IP-t megjelölve forrásként
- hostA elküldi a válasz ACK-t a routeren keresztül, ami eldobja a forgalmat, mert nem látta a közbülső SYN-ACK-ot.
Az elvárt működés az lenne számomra, hogy a freenas/freebsd azon az interfészén válaszoljon a csomagra amelyen kapta, vagyis a routeren keresztül valósuljon meg a kommunikáció.
Ami meglepett, az az, hogy a freenas-on ki van kapcsolva az IP-forwarding, és mégis a bce0-án küldi ki a választ, sőt:
ha a hostA-n felveszek egy, a .171-re mutató host route-ot a .6-felé (freenas bce0 lába), akkor kiépül a kapcsolat! (Ehhez nem IP-forwarding kellene, hogy a freenas átvegye az egyik interfészén a másiknak szóló forgalmat? Pedig nincs bekapcsolva...)
Azt értem, hogy a freenas számára a hostA locally connected lábon is elérhető, de ettől még nem a bce0 interfészről illene válaszolnia a bge1 interfész IP-címét behazudva. (Nem routerként akarom használni.)
Ha van esetleg valakinek ötlete, hogy ezt a helyzetet hogyan tudnám elegánsan megoldani, kérem ossza meg velem!
- 3912 megtekintés
Hozzászólások
Ez tipikusan az az eset, amikor van egy hosszabb út és egy rövidebb út és a "buta" masina "okosan" a rövidebb utat választja, nem azt, amely esetén az odaút ugyanaz lenne, mint a visszaút.
A problémád egyik megoldása az lehetne, hogy a routert rávenni arra, hogy ne dobálja el az egyirányú forgalmat, de ez meglehetőst csúnya megoldás lenne és pont az a cél, hogy a forgalom ne ilyen legyen.
Az egyik opció, hogy a router a GENERIC --> MGMT forgalmat maszkolja, így a NAS a forgalmat a router felé fogja visszaadni, mert a kérés hozzá már a NAS IP-jével esik be. Ezzel a problémádat meg is oldottuk - csak éppen csúnya, mert innen kezdve ebben az esetben a NAS mindig azt hiszi, hogy a router keresi és ez nem igaz.
A másik opció a NAS bűvölése, hogy azon a lábon válaszoljon, amin a kérés bejött. Az sajna nem opció, hogy felveszel egy extra route-ot, hogy a host-a a routeren át érhető el, mert akkor a közvetlen irány lesz problémás: a host-a direktben betalál a NAS-ra, ami meg a routeren válaszolna. Ez nyilván nem fog működni, ezzel csak a jelen helyzet fordított párját sikerülne csak előállítani.
- A hozzászóláshoz be kell jelentkezni
Igen, nagyjából jól összefoglaltad a lehetőségeimet, nekem ez a kettő tűnik járhatónak:
- .171-re vonatkozó host route felvétele a routerre, ami a .6-ot adja meg next hop-ként (freenas GENERIC-láb). (Ez talán egyszerűbb is mint a maszkolás, és talán működhet is.)
- a FreeNAS-t/FreeBSD-t rávenni valamilyen módon, hogy a bge1-re érkező forgalom esetén ugyanazon az interfészen keresztül válaszoljon.
Az utóbbi lenne az elegánsabb megoldás, és én is tulajdonképpen ezt szeretném, de sajnos fogalmam sincs, hogy hogyan tudnám megoldani/beállítani.
-------------------------------------------------------------------------------
Az életben csak egy dolog a szép, de az épp nem jut eszembe.
Slackware Linux 13.37 | 2.6.39.4-janos
- A hozzászóláshoz be kell jelentkezni
Policy based routinggal esetleg?
---------------------------------------------------
Hell is empty and all the devils are here.
-- Wm. Shakespeare, "The Tempest"
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni
Sajna pf nincs rajta alapból, és több routing táblát sem kezel (ez lett volna a másik megoldás).
Felteszem a kérdést a FreeNAS fórumokon. Stay tuned.
-------------------------------------------------------------------------------
Az életben csak egy dolog a szép, de az épp nem jut eszembe.
Slackware Linux 13.37 | 2.6.39.4-janos
- A hozzászóláshoz be kell jelentkezni