Egyik adott port forgalma masik gw-re?

Hogyan lehet azt megoldani, hogy van egy def gw-em, amin megy minden csomag kifele, de egy adott port forgalmat azt egy masikon szeretnem kikuldeni?

thx

Hozzászólások

Mondjuk ez engem is érdekel... azt vágom, hogy iptables, csak mégis, valami help a szabály meghatározásában jól jönne

ROUTE
This is used to explicitly override the core network stack's routing decision. mangle table.

--oif ifname
Route the packet through `ifname' network interface

--iif ifname
Change the packet's incoming interface to `ifname'

--gw IP_address
Route the packet via this gateway

--continue
Behave like a non-terminating target and continue traversing the rules. Not valid in combination with `--iif' or `--tee'

--tee Make a copy of the packet, and route that copy to the given destination. For the original, uncopied packet, behave like a non-terminating target and continue traversing the rules. Not valid
in combination with `--iif' or `--continue'

valahogy a -j ROUTE -t kell hasznalni ha jol ertelmeztem. A megoldast ha majd postolnad azt megkoszonnem.
Ez kiterjesztes de sajnos nem talaltam meg a kernelben, ohgy hol lehet beallitani.

iptables -I OUTPUT -j ROUTE --gw 192.168.1.1 --continue --proto tcp --destination-port 21

en valami ilyesmire gondolnek.

es ez (woody alatt pl)?
iptables -A PREROUTING -i ethx -t mangle -p tcp --dport XXX -j MARK --set-mark 3
ip rule add fwmark 3 table tabla1.out
ip route add default via zzz.xxx.hhh.aaa dev ethx table table1.out

tabla1.out bejegyzest pedig a /etc/iproute2/rt_tables-be ertelemszeruen

iptables route target gw-t nem tudtam meg eletre kelteni, gondlom patch-elni kell kulon.

kozben az ip-s leirasokat is nezegetem, es ha jol ertem, amit irtal arrol szol, hogy iptables kiszuri az adott portra meno csomagokat, azt megjeloli harmasnak
ezutan a harmassal megjelolt csomagokra az ip hozzarendeli a table1.out routing tablat, vegul a tabla1.out -hoz beallitja a masik gw-t interface-szel
jol sejtem?

Hi!

Végülis lett megoldás? Ugyan ez a probléma:

Adott 2db ADSL kapcsolat amit sikerült pppoe (rp-pppoe)-vel beállítani,
bár nem volt egyértelmű a doksija :)
Tehát az egyiken van fixIP a másik DHCP-s kapcsolat.

Legyen:
ppp0 = fixIP
ppp1 = DHCP, default gw
eth1 = LAN_IP

Alapértelemzetten minden a ppp1-en megy ki, de a levelezést a ppp0-ra
kellene irányítani. Elég sok doksi van erről a neten, de egyértelműen
senki nem írta, hogy neki jó lett.(Viszont sokan írták, hogy nem sikerült, vagy félbemaradt a topik, vagy egy hét szívás után sikerült :))

A következőt csináltuk:

#iptables-ben megjelöljük az átirányítandó csomagokat
iptables -t mangle -A POSTROUTING -j MARK --set-mark 25

# create custom route table
echo "25 smtp_route" >> /etc/iproute2/rt_table

# route táblának default gw megadása
# ami zárójelben van az anélkül is ki lett próbálva
ip route add default (via 11.222.33.444) dev ppp0 table 25

# rule létrehozása ami bepakolja a megjelölt csomagokat a mi táblánkba,
# ahol elképzelésem szerint a megfelelő (ppp0) gw felé kellene mennie
ip rule add fwmark 25 table 25

"ip rule list" -el látom, hogy jó lett a rule
"ip route show table 25" -el látom, hogy a route add is jó lett

Valamiért nem működik. Telnet volt kifelé, a mark működik (ezt látom:
"iptables -t mangle -L -vn"), de a csomagok a ppp1-en mennek ki, és
jönnek is vissza (tcpdump -i ppp1 port 25 -n)

Valakinek működik?
Egy ismerősömnek segítenék, nagy szívás van ezzel :)

Egyébként a fentiekből nekem az jön le, hogy hiába jelölődik meg a
csomag a rule-t nem hatja meg. A route- ha jó ha nem, az nem okozhatja
gondot, mert ha rossz lenne akkor max. elvesznének a csomagok, de nem
mennének vissza a ppp1-re (szerintem).

Sajna nem találtam megoldást a rule-ok monitorozására, jó lenne ha
láthatnám, hogy match-el e rá egyáltalán, hogy miért bukik el a dolog
azon a részen.

A válasz feljebb, bandorka kommentjében.

"hiába jelölődik meg a csomag a rule-t nem hatja meg"
Az ok pedig valószínűleg az, hogy nem azután kell megjelölni a csomagot, miután már eldőlt, hogy melyik routing tábla alapján melyik interfészen fog kimenni (POSTROUTING), hanem előtte (PREROUTING).

Itt és itt lehet bővebben olvasni róla.

Az ok pedig valószínűleg az, hogy nem azután kell megjelölni a csomagot, miután már eldőlt, hogy melyik routing tábla alapján melyik interfészen fog kimenni (POSTROUTING), hanem előtte (PREROUTING).

Ez igaz, és kipróbálom PREROUTING-ban megjelölni, de ezt is próbáltuk, és nem ment, de mégegyszer próba...

Csak a PREROUTING-al vigyázni kell, mert minden csomagot megjelöl ami befelé igyekszik és a célportja 25. Azt is ami a ppp0 felől jött és a célportja a szerver 25-ös port. Akkor ezzel szépen visszaküldeném a ppp0-ra.

Sajna mind két linken régen túlvagyok, és nem segítettek, vagy figyelmetlen voltam.

"...mert minden csomagot megjelöl ami befelé igyekszik és a célportja 25"

Azt jelöli meg, amit kérsz tőle, bandorka kommentjében is így van. Csak az eth1 felől induló, kimenő SMTP-t kell megjelölni.


iptables -A PREROUTING -i eth1 -t mangle -p tcp --dport 25 -j MARK --set-mark 25