[BSD] port-based policy routing hogyan?
Gabor Burjan
burjang at elte.hu
2005. Ápr. 28., Cs, 11:53:23 CEST
Sziasztok,
A subjectben talalhato szornyuseget probalom elkovetni. A halozatunk
jelenlegi strukturaja (leegyszerusitve) az alabbi:
ISP1 berelt vonal ISP2 berelt vonal
| |
,-------. ,-------.
|router1| |router2|
`-------' `-------'
| |
,----------------------------------------.
| switch |
`----------------------------------------'
|
.---xl0----.
|gw FreeBSD|
`----------'
| | |
belso halozatok
A default gateway az ISP1 routere, a masodik berelt vonal most nott ra a
gatewayre. A vegso cel az ISP2-re torteno atallas, azonban a kulso
rendszereken torteno kulonbozo (pl. source IP-re) vegzett ellenorzesek
miatt ezt alkalmazasonkent szeretnenk meglepni, azaz nem lehet a default
gatewayt egyszeruen ISP2 routerere atirni. Mindket ISP ad publikus IP-t
a gepunknek (IP1 es IP2), a gw gep kifele nezo interface-en ezt az xl0
IP aliasanak fel is vettem. Elso korben a gw gepen futo SMTP szervert
szerettem volna kivulrol elerni. A problema nyilvanvalo, a kulso geprol
ISP2 felol befele jovo IP csomagra adott valasz a fennallo default route
miatt a masik ISP vonalan menne ki, amit az persze eldob. Ha a konkret
kulso gepre felveszek egy host route-ot a router2 gateway-jel, akkor a
konkret kulso gep fele mukodik is a dolog, azonban en ezt
szolgaltatasonkent szeretnem szabalyozni. A megoldas kezenfekvonek
tunne, Linuxszal mar csinaltam policy routingot (iptables MARK +
iproute2 parossal), gondoltam ugyanez kell nekem, csak FreeBSD-re. A
google-n keresgelve talaltam is nem hivatalos leirast, miszerint a
ipfilter segitsegevel en is tudok ilyent csinalni, meg is orultem neki,
mert azt amugy is hasznaljuk. A kovetkezo szabalyokat vettem fel:
# bejovo mailek
pass out quick on xl0 to xl0:router2IP proto tcp from IP2 port = 25 to any
# kimeno mailek
pass out quick on xl0 to xl0:router2IP proto tcp from IP2 to any port = 25
(router2IP a router2 befele nezo IP-je, amit a host route-os tesztnel
is hasznaltam, IP2 a FreeBSD-nek adott publikus IP)
A problema az, hogy nem akar mukodni. Probaltam tcpdump-pal nezni, de
csak annyit latok, hogy megfelelo source IP-vel a kulso gep fele kimegy
a csomag az xl0 interface-en, de sajnos a routeingot (hogy milyen
gateway fele adja a csomagot) nincs otletem, hogyan tudnam debugolni. A
kulso gephez mar semmi nem erkezik a forgalomhoz. A routerhez sajnos
nincs hozzaferesem.
Kerdeseim:
- mit ronthatok el? kellene-e meg valami a fenti beallitasokon tul?
- mukodik-e valakinek hasonlo FreeBSD alatt?
- hogyan lehetne debugolni a routeingot?
- hol talalok dokumentaciot a temarol?
Gabor
További információk a(z) BSD levelezőlistáról