Discussion:
iproute
Kosa Attila
2007-02-05 16:48:40 UTC
Permalink
Hello!

|eth0 |eth2
------ ------
| |eth1 | |
| L1 |---------| L2 |
| | eth1| |
------ ------

L1 eth0 fix IP-s adsl
L1 eth1 192.168-as belso cim
L1-nek az eth1 a default gateway

L2 eth1 192.168-as belso cim
L2 eth2 fix IP-s berelt vonal
L2-nek az eth2 a default gateway

L1 eth0-ra beesik az openvpn udp 5000-re. Ez egy sima DNAT-tal
atkerul az L2 eth1-re (ahol valojaban az openvpn figyel). Az L2-n
telepitettem az iproute csomagot, majd kiadtam a kovetkezo
parancsokat:
# echo 201 openvpn.out >> /etc/iproute2/rt_tables
# ip rule add fwmark 1 table openvpn.out
# ip route add default via L1.eth1.IP.cime dev eth1 table openvpn.out
# iptables -t mangle -A OUTPUT -p udp --sport 5000 -j MARK --set-mark 0x1

Bejutnak a csomagok L1-en keresztul L2-re (L2-n latom a
tcpdump-ban), de visszafele nem megy semmi (ezt is latom a
tcpdump-ban). A mangle tablaban levo szamlalot latom novekedni.

Mit felejtettem el, illetve mit kellene meg beallitani, hogy
mukodjon a dolog?
--
Udvozlettel
Zsiga
Czakó Krisztián
2007-02-05 17:22:02 UTC
Permalink
Post by Kosa Attila
Hello!
|eth0 |eth2
------ ------
| |eth1 | |
| L1 |---------| L2 |
| | eth1| |
------ ------
L1 eth0 fix IP-s adsl
L1 eth1 192.168-as belso cim
L1-nek az eth1 a default gateway
L2 eth1 192.168-as belso cim
L2 eth2 fix IP-s berelt vonal
L2-nek az eth2 a default gateway
L1 eth0-ra beesik az openvpn udp 5000-re. Ez egy sima DNAT-tal
atkerul az L2 eth1-re (ahol valojaban az openvpn figyel). Az L2-n
telepitettem az iproute csomagot, majd kiadtam a kovetkezo
# echo 201 openvpn.out >> /etc/iproute2/rt_tables
# ip rule add fwmark 1 table openvpn.out
# ip route add default via L1.eth1.IP.cime dev eth1 table openvpn.out
# iptables -t mangle -A OUTPUT -p udp --sport 5000 -j MARK --set-mark 0x1
Bejutnak a csomagok L1-en keresztul L2-re (L2-n latom a
tcpdump-ban), de visszafele nem megy semmi (ezt is latom a
tcpdump-ban). A mangle tablaban levo szamlalot latom novekedni.
Mit felejtettem el, illetve mit kellene meg beallitani, hogy
mukodjon a dolog?
Az openvpn.out táblában tudja a kernel merre van az L1.eth1.IP.cime? A
net routeok csak a main táblába kerülnek bele automatikusan.
A "ip rule add fwmark 1 table openvpn.out" nekem fura, persze ettől
méglehet jó is. Nálam így nézne ki:
ip rule add fwmark 0x1 lookup openvpn.out
--
Üdv,
Slapic
--
hacker: /n./ One who enjoys the intellectual challenge of creatively
overcoming or circumventing limitations.
PGP 0x1F1A04D8 / CDA9 79B4 3C61 6247 ABA9 B599 DA6A 3E82 1F1A 04D8
Kosa Attila
2007-02-06 07:35:34 UTC
Permalink
Post by Czakó Krisztián
Post by Kosa Attila
L1 eth0-ra beesik az openvpn udp 5000-re. Ez egy sima DNAT-tal
atkerul az L2 eth1-re (ahol valojaban az openvpn figyel). Az L2-n
telepitettem az iproute csomagot, majd kiadtam a kovetkezo
# echo 201 openvpn.out >> /etc/iproute2/rt_tables
# ip rule add fwmark 1 table openvpn.out
# ip route add default via L1.eth1.IP.cime dev eth1 table openvpn.out
# iptables -t mangle -A OUTPUT -p udp --sport 5000 -j MARK --set-mark 0x1
Az openvpn.out táblában tudja a kernel merre van az L1.eth1.IP.cime? A
net routeok csak a main táblába kerülnek bele automatikusan.
Ennek ezt kellene beallitania, nem?
# ip route add default via L1.eth1.IP.cime dev eth1 table openvpn.out
Post by Czakó Krisztián
A "ip rule add fwmark 1 table openvpn.out" nekem fura, persze ettől
ip rule add fwmark 0x1 lookup openvpn.out
Probaltam 0x1 es siman 1 formaban is, gyakorlatilag mindig 0x1
kerult bele mind az openvpn.out tablaba, mind az iptables-be.

Az itt leirtak is azt tamasztjak ala, hogy ennyinek elegnek
kellene lennie... http://www.lartc.org/lartc.html#LARTC.NETFILTER

Az L1-en az rp_filter-t 0-ra kellett allitani, hogy egyaltalan
atmenjen rajta a csomag, de az L2-n mindegy, hogy 1-re vagy 0-ra
allitom, latszolag semmi kulonbseg nincs.

Az L1-en ezzel a paranccsal dobom at a csomagokat L2-re:
# iptables -t nat -A PREROUTING -i ppp0 -p udp --dport 5000 -j DNAT --to-destination L2.eth1.IP.cime:5000
--
Udvozlettel
Zsiga
Czakó Krisztián
2007-02-06 08:47:14 UTC
Permalink
Post by Kosa Attila
Post by Czakó Krisztián
Az openvpn.out táblában tudja a kernel merre van az L1.eth1.IP.cime? A
net routeok csak a main táblába kerülnek bele automatikusan.
Ennek ezt kellene beallitania, nem?
# ip route add default via L1.eth1.IP.cime dev eth1 table openvpn.out
Nem csak. Valami ilyesmi hiányzik:
ip route add L1.eth1.IP.cime/24 dev eth1 scope link table openvpn.out
A /24 helyett nyilván a megfelelő CIDR végződés.
Post by Kosa Attila
Post by Czakó Krisztián
A "ip rule add fwmark 1 table openvpn.out" nekem fura, persze ettől
ip rule add fwmark 0x1 lookup openvpn.out
Probaltam 0x1 es siman 1 formaban is, gyakorlatilag mindig 0x1
kerult bele mind az openvpn.out tablaba, mind az iptables-be.
Nem az 1-re gondoltam, hanem a "table" helyett a "lookup"-ra, de lehet,
hogy mind2 helyes.
--
Üdv,
Slapic
--
hacker: /n./ One who enjoys the intellectual challenge of creatively
overcoming or circumventing limitations.
PGP 0x1F1A04D8 / CDA9 79B4 3C61 6247 ABA9 B599 DA6A 3E82 1F1A 04D8
Kosa Attila
2007-02-06 09:34:31 UTC
Permalink
Post by Czakó Krisztián
Post by Kosa Attila
Post by Czakó Krisztián
Az openvpn.out táblában tudja a kernel merre van az L1.eth1.IP.cime? A
net routeok csak a main táblába kerülnek bele automatikusan.
Ennek ezt kellene beallitania, nem?
# ip route add default via L1.eth1.IP.cime dev eth1 table openvpn.out
ip route add L1.eth1.IP.cime/24 dev eth1 scope link table openvpn.out
A /24 helyett nyilván a megfelelő CIDR végződés.
Hozzadtam /24-gyel, illetve egy masik probalkozas alkalmaval
pedig /32-vel, de nem tortent valtozas.

Ha az rp_filter az L2 gepen 0, akkor az eth2 interfeszen (a sajat
default gateway-en) kuldi a masik laban (eth1) beerkezo
kapcsolatra a valaszcsomagokat. Ha az rp_filter erteke 1, akkor
pedig (a tcpdump szerint) sehol sem mennek ki a csomagok.
Post by Czakó Krisztián
Post by Kosa Attila
Post by Czakó Krisztián
A "ip rule add fwmark 1 table openvpn.out" nekem fura, persze ettől
ip rule add fwmark 0x1 lookup openvpn.out
Probaltam 0x1 es siman 1 formaban is, gyakorlatilag mindig 0x1
kerult bele mind az openvpn.out tablaba, mind az iptables-be.
Nem az 1-re gondoltam, hanem a "table" helyett a "lookup"-ra, de lehet,
hogy mind2 helyes.
# ip rule add fwmark 0x1 table openvpn.out
# ip rules ls
0: from all lookup local
32765: from all fwmark 0x1 lookup openvpn.out
32766: from all lookup main
32767: from all lookup default
# ip rule add fwmark 0x1 lookup openvpn.out
# ip rule ls
0: from all lookup local
32764: from all fwmark 0x1 lookup openvpn.out
32765: from all fwmark 0x1 lookup openvpn.out
32766: from all lookup main
32767: from all lookup default

Ebbol ugy tunik, hogy mindketto ugyanazt csinalja.
--
Udvozlettel
Zsiga
Haluska Gyorgy
2007-02-05 20:19:50 UTC
Permalink
Post by Kosa Attila
Hello!
|eth0 |eth2
------ ------
| |eth1 | |
| L1 |---------| L2 |
| | eth1| |
------ ------
L1 eth0 fix IP-s adsl
L1 eth1 192.168-as belso cim
L1-nek az eth1 a default gateway
L2 eth1 192.168-as belso cim
L2 eth2 fix IP-s berelt vonal
L2-nek az eth2 a default gateway
L1 eth0-ra beesik az openvpn udp 5000-re. Ez egy sima DNAT-tal
atkerul az L2 eth1-re (ahol valojaban az openvpn figyel). Az L2-n
telepitettem az iproute csomagot, majd kiadtam a kovetkezo
# echo 201 openvpn.out >> /etc/iproute2/rt_tables
# ip rule add fwmark 1 table openvpn.out
# ip route add default via L1.eth1.IP.cime dev eth1 table openvpn.out
# iptables -t mangle -A OUTPUT -p udp --sport 5000 -j MARK --set-mark 0x1
Bejutnak a csomagok L1-en keresztul L2-re (L2-n latom a
tcpdump-ban), de visszafele nem megy semmi (ezt is latom a
tcpdump-ban). A mangle tablaban levo szamlalot latom novekedni.
A csomagokban gondolom az eredeti ip forrast latod. Ha igen, akkor az a baj,
hogy az L2-n a valasz csomagok az eth2 fele szeretnenek menni, nem pedig
az eth1-fele. Te meg azt szeretned ha az eth1 fele mennenek.
Post by Kosa Attila
Mit felejtettem el, illetve mit kellene meg beallitani, hogy
mukodjon a dolog?
Ha jo a feltetelezesem, akkor mar tovabb lehet lepni. Ha nem, akkor meg mast
kell kitalalnom :)

Udv,
--
George
Kosa Attila
2007-02-06 07:36:23 UTC
Permalink
Post by Haluska Gyorgy
Post by Kosa Attila
L1 eth0-ra beesik az openvpn udp 5000-re. Ez egy sima DNAT-tal
atkerul az L2 eth1-re (ahol valojaban az openvpn figyel). Az L2-n
telepitettem az iproute csomagot, majd kiadtam a kovetkezo
# echo 201 openvpn.out >> /etc/iproute2/rt_tables
# ip rule add fwmark 1 table openvpn.out
# ip route add default via L1.eth1.IP.cime dev eth1 table openvpn.out
# iptables -t mangle -A OUTPUT -p udp --sport 5000 -j MARK --set-mark 0x1
Bejutnak a csomagok L1-en keresztul L2-re (L2-n latom a
tcpdump-ban), de visszafele nem megy semmi (ezt is latom a
tcpdump-ban). A mangle tablaban levo szamlalot latom novekedni.
A csomagokban gondolom az eredeti ip forrast latod. Ha igen, akkor az a baj,
hogy az L2-n a valasz csomagok az eth2 fele szeretnenek menni, nem pedig
az eth1-fele. Te meg azt szeretned ha az eth1 fele mennenek.
Igen. Ezert van szukseg az iproute segitsegere.
--
Udvozlettel
Zsiga
BUCHMULLER Norbert
2007-02-05 22:17:22 UTC
Permalink
On Mon, 5 Feb 2007 17:48:40 +0100
Post by Kosa Attila
# iptables -t mangle -A OUTPUT -p udp --sport 5000 -j MARK --set-mark 0x1
PREROUTING, szerintem. A többi jónak tűnik.

norbi
Kosa Attila
2007-02-06 07:42:09 UTC
Permalink
Post by BUCHMULLER Norbert
On Mon, 5 Feb 2007 17:48:40 +0100
Post by Kosa Attila
# iptables -t mangle -A OUTPUT -p udp --sport 5000 -j MARK --set-mark 0x1
PREROUTING, szerintem. A többi jónak tűnik.
Az L2 lokalis geprol indulo csomagokat kell megjelolni szerintem,
es a lokalis geprol indulo csomagok eseten a route dontes a
mangle output, nat output chain utan van, a prerouting lancon nem
is megy at a csomag. Az L2 gepre beerkezo csomagokat szerintem
nem kell megjelolni, hiszen azok mar odatalaltak es landoltak.
--
Udvozlettel
Zsiga
Czakó Krisztián
2007-02-06 08:49:55 UTC
Permalink
Post by Kosa Attila
Post by BUCHMULLER Norbert
On Mon, 5 Feb 2007 17:48:40 +0100
PREROUTING, szerintem. A többi jónak tűnik.
Az L2 lokalis geprol indulo csomagokat kell megjelolni szerintem,
es a lokalis geprol indulo csomagok eseten a route dontes a
mangle output, nat output chain utan van, a prerouting lancon nem
is megy at a csomag. Az L2 gepre beerkezo csomagokat szerintem
nem kell megjelolni, hiszen azok mar odatalaltak es landoltak.
Biztosan OUTPUT. Nekem a notebookon megy hasonló játék, igaz ott annak
érdekében, hogy minden kimenő csomagot a VPN-be kényszerítsen, kivéve
persze az OpenVPN csomagjait a VPN gateway felé. Hibátlanul működik.
--
Üdv,
Slapic
--
hacker: /n./ One who enjoys the intellectual challenge of creatively
overcoming or circumventing limitations.
PGP 0x1F1A04D8 / CDA9 79B4 3C61 6247 ABA9 B599 DA6A 3E82 1F1A 04D8
BUCHMULLER Norbert
2007-02-14 06:46:18 UTC
Permalink
On Tue, 6 Feb 2007 08:42:09 +0100
Post by Kosa Attila
Post by BUCHMULLER Norbert
PREROUTING, szerintem. A többi jónak tűnik.
Az L2 lokalis geprol indulo csomagokat kell megjelolni szerintem,
es a lokalis geprol indulo csomagok eseten a route dontes a
mangle output, nat output chain utan van, a prerouting lancon nem
is megy at a csomag. Az L2 gepre beerkezo csomagokat szerintem
nem kell megjelolni, hiszen azok mar odatalaltak es landoltak.
Valóban, bocs. (Összekevertem, hogy melyik gépen is vagyok.:-)

A netfilteres mark alapján route-olás korábban sem ment bizonyos esetekben
(konkrétan erről a felállásról is volt ilyen tapasztalata vkinek), lehet,
hogy most is ez a helyzet.

Van viszont egy workaround javaslatom, ami valszleg menni fog: Felveszel
plusz egy IP címet a 192.168-as tartományból az L2 eth1-re, és arra
ülteted ki az openvpn-t, és oda DNAT-olod a csomagokat is. Utána L2-n:

echo 201 openvpn.out >> /etc/iproute2/rt_tables
echo 0 >/proc/sys/net/ipv4/conf/eth1/rp_filter
ip rule add from L2.eth1.secondary_IP table openvpn.out
ip route add L1.eth1.network dev eth1 table openvpn.out
ip route add default via L1.eth1.IP.cime dev eth1 table openvpn.out

norbi
Kosa Attila
2007-02-14 07:45:35 UTC
Permalink
Post by BUCHMULLER Norbert
A netfilteres mark alapján route-olás korábban sem ment bizonyos esetekben
(konkrétan erről a felállásról is volt ilyen tapasztalata vkinek), lehet,
hogy most is ez a helyzet.
Kiprobaltam, hogy mukodik-e. Megpedig ugy, hogy az L2 eth2-jen
megszolitottam az smtp-t, miutan ezeket beallitottam az L2-n:
# echo 202 mail.out >> /etc/iproute2/rt_tables
# ip rule add fwmark 2 table mail.out
# ip route add default via L1.eth1.IP.cime dev eth1 table mail.out
# iptables -t mangle -A OUTPUT -p tcp --sport 25 -j MARK --set-mark 2

Es a tcpdump-ban lehetett latni, hogy az eth2-n bejott a csomag,
es az eth1-en probalt valaszolni. Latszott, hogy az eth2 IP
cimevel mennek ki a valaszcsomagok az eth1 kartyan.

Ebbol ugy tunik, hogy mukodik a mark alapjan a route-olas.
Post by BUCHMULLER Norbert
Van viszont egy workaround javaslatom, ami valszleg menni fog: Felveszel
Azt hiszem, hogy ki fogom probalni, mert kifogytam az otletekbol :)
--
Udvozlettel
Zsiga
Bartos-Elekes Zsolt
2007-02-06 07:31:44 UTC
Permalink
Sziasztok!
Post by Kosa Attila
Bejutnak a csomagok L1-en keresztul L2-re (L2-n latom a
tcpdump-ban), de visszafele nem megy semmi (ezt is latom a
tcpdump-ban). A mangle tablaban levo szamlalot latom novekedni.
Mit felejtettem el, illetve mit kellene meg beallitani, hogy
mukodjon a dolog?
Nemreg csinaltam hasonlot, a CONNMARK target kell neked. Ez nem az egyes
csomagokat, hanem a kapcsolatot jeloli meg, es a kesobbi ESTABLISHED
csomagok is megkap(hat)jak az elso csomag mark-jat.
--
Sziasztok: Zsolt
Kosa Attila
2007-02-06 07:45:56 UTC
Permalink
Post by Bartos-Elekes Zsolt
Post by Kosa Attila
Bejutnak a csomagok L1-en keresztul L2-re (L2-n latom a
tcpdump-ban), de visszafele nem megy semmi (ezt is latom a
tcpdump-ban). A mangle tablaban levo szamlalot latom novekedni.
Mit felejtettem el, illetve mit kellene meg beallitani, hogy
mukodjon a dolog?
Nemreg csinaltam hasonlot, a CONNMARK target kell neked. Ez nem az egyes
csomagokat, hanem a kapcsolatot jeloli meg, es a kesobbi ESTABLISHED
csomagok is megkap(hat)jak az elso csomag mark-jat.
De nekem az elso csomagra sem megy valasz, ugyanakkor minden
csomag megjelolesre kerul (latszik az iptables kimeneteben).
Mivel udp-rol van szo, nem tudom, hogy lenne-e barmi elonye a
kapcsolat megjelolesenek az egyes csomagok megjelolesevel
szemben (a mukodes szempontjabol).
--
Udvozlettel
Zsiga
Bartos-Elekes Zsolt
2007-02-06 08:14:30 UTC
Permalink
Post by Kosa Attila
De nekem az elso csomagra sem megy valasz
Egyik interfeszen keresztul sem megy ki? Esetleg nem az rp_filter kavar
be? Vagy ahogy Slapic is irta, tudja a kernel, hogy merre van az
L1.eth1.IP.cime?
Post by Kosa Attila
ugyanakkor minden csomag megjelolesre kerul (latszik az iptables
kimeneteben). Mivel udp-rol van szo, nem tudom, hogy lenne-e barmi
elonye a kapcsolat megjelolesenek az egyes csomagok megjelolesevel
szemben (a mukodes szempontjabol).
Nekem azert kellett a CONNMARK, hogy azon a kapcsolaton keresztul
menjenek vissza a valaszcsomagok, amelyiken beerkeztek. Ilyen
szempontbol az udp is kapcsolatnak szamit neki, bar akkor is kene
mukodjon, ha egyenkent megjelolod a csomagokat.
--
Sziasztok: Zsolt
Kosa Attila
2007-02-06 08:19:21 UTC
Permalink
Post by Bartos-Elekes Zsolt
Post by Kosa Attila
De nekem az elso csomagra sem megy valasz
Egyik interfeszen keresztul sem megy ki? Esetleg nem az rp_filter kavar
Egyiken sem latszik kimenni a tcpdump szerint. Az rp_filter-t
allitottam mar 1-re es 0-ra is, egyik sem hatotta meg.
Post by Bartos-Elekes Zsolt
be? Vagy ahogy Slapic is irta, tudja a kernel, hogy merre van az
L1.eth1.IP.cime?
Szerintem az alabbi parancs ezt mondja meg neki:
# ip route add default via L1.eth1.IP.cime dev eth1 table openvpn.out
Post by Bartos-Elekes Zsolt
Post by Kosa Attila
ugyanakkor minden csomag megjelolesre kerul (latszik az iptables
kimeneteben). Mivel udp-rol van szo, nem tudom, hogy lenne-e barmi
elonye a kapcsolat megjelolesenek az egyes csomagok megjelolesevel
szemben (a mukodes szempontjabol).
Nekem azert kellett a CONNMARK, hogy azon a kapcsolaton keresztul
menjenek vissza a valaszcsomagok, amelyiken beerkeztek. Ilyen
szempontbol az udp is kapcsolatnak szamit neki, bar akkor is kene
mukodjon, ha egyenkent megjelolod a csomagokat.
En is igy gondolom, de nem mukodik :(
--
Udvozlettel
Zsiga
Bartos-Elekes Zsolt
2007-02-06 08:50:35 UTC
Permalink
Post by Kosa Attila
Post by Bartos-Elekes Zsolt
be? Vagy ahogy Slapic is irta, tudja a kernel, hogy merre van az
L1.eth1.IP.cime?
# ip route add default via L1.eth1.IP.cime dev eth1 table openvpn.out
Nem, szerintem ez azt mondja meg, hogy az openvpn.out tablaban merre van
a default route. Kene meg egy ilyen is:

ip route add L2.eth1.halozata/L2.eth1.netmask dev eth1 \
src L2.eth1.cime table openvpn.out

azert, hogy a kernel tudja, hogy hol lehet elerni magat az L1.eth-t.
--
Sziasztok: Zsolt
Kosa Attila
2007-02-06 09:42:52 UTC
Permalink
Post by Bartos-Elekes Zsolt
Post by Kosa Attila
Post by Bartos-Elekes Zsolt
be? Vagy ahogy Slapic is irta, tudja a kernel, hogy merre van az
L1.eth1.IP.cime?
# ip route add default via L1.eth1.IP.cime dev eth1 table openvpn.out
Nem, szerintem ez azt mondja meg, hogy az openvpn.out tablaban merre van
ip route add L2.eth1.halozata/L2.eth1.netmask dev eth1 \
src L2.eth1.cime table openvpn.out
azert, hogy a kernel tudja, hogy hol lehet elerni magat az L1.eth-t.
Kiprobaltam ezt is, nem segitett.
--
Udvozlettel
Zsiga
Bartos-Elekes Zsolt
2007-02-06 09:49:41 UTC
Permalink
Post by Kosa Attila
Post by Bartos-Elekes Zsolt
azert, hogy a kernel tudja, hogy hol lehet elerni magat az L1.eth-t.
Kiprobaltam ezt is, nem segitett.
Akkor listazd ki lecci az osszes route tabladat, meg a szabalyokat
(ip rule show), hatha rajovunk valamire.
--
Szia: Zsolt
Kosa Attila
2007-02-06 10:14:18 UTC
Permalink
Post by Bartos-Elekes Zsolt
Akkor listazd ki lecci az osszes route tabladat, meg a szabalyokat
(ip rule show), hatha rajovunk valamire.
# ip rule show
0: from all lookup local
32765: from all fwmark 0x1 lookup openvpn.out
32766: from all lookup main
32767: from all lookup default
# ip route list table openvpn.out
default via 192.168.80.253 dev eth1
# ip route list
10.10.0.2 dev tun0 proto kernel scope link src 10.10.0.1
10.10.0.0/29 via 10.10.0.2 dev tun0
CCC.CCC.CCC.192/28 dev eth2 proto kernel scope link src CCC.CCC.CCC.201
192.168.80.0/24 dev eth1 proto kernel scope link src 192.168.80.254
10.10.1.0/24 via 10.10.0.2 dev tun0
172.20.0.0/16 dev eth0 proto kernel scope link src 172.20.0.254
default via CCC.CCC.CCC.206 dev eth2
# iptables -L -n -v -t mangle
Chain PREROUTING (policy ACCEPT 400 packets, 37502 bytes)
pkts bytes target prot opt in out source destination

Chain INPUT (policy ACCEPT 400 packets, 37502 bytes)
pkts bytes target prot opt in out source destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination

Chain OUTPUT (policy ACCEPT 256 packets, 27676 bytes)
pkts bytes target prot opt in out source destination
0 0 MARK udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spt:5000 MARK set 0x1

Chain POSTROUTING (policy ACCEPT 256 packets, 27676 bytes)
pkts bytes target prot opt in out source destination

# iptables -L -n -v -t nat
Chain PREROUTING (policy ACCEPT 12 packets, 1150 bytes)
pkts bytes target prot opt in out source destination

Chain POSTROUTING (policy ACCEPT 1 packets, 72 bytes)
pkts bytes target prot opt in out source destination
25 1839 MASQUERADE all -- * eth2 0.0.0.0/0 0.0.0.0/0

Chain OUTPUT (policy ACCEPT 26 packets, 1911 bytes)
pkts bytes target prot opt in out source destination

Es itt vannak egy probalkozas tcpdump-jai:
L1 eth0 interfeszen ez latszik:
# tcpdump -ni eth0 port 5000
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type LINUX_SLL (Linux cooked), capture size 96 bytes
11:05:39.241658 IP XX.XX.XXX.XXX.1141 > ZZ.ZZZ.ZZZ.ZZZ.5000: UDP, length: 42
11:05:41.747641 IP XX.XX.XXX.XXX.1141 > ZZ.ZZZ.ZZZ.ZZZ.5000: UDP, length: 42
11:05:44.291716 IP XX.XX.XXX.XXX.1141 > ZZ.ZZZ.ZZZ.ZZZ.5000: UDP, length: 42
11:05:45.532724 IP XX.XX.XXX.XXX.1141 > ZZ.ZZZ.ZZZ.ZZZ.5000: UDP, length: 42

L1 eth1 interfeszen ez latszik:
# tcpdump -ni eth1 port 5000
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes
11:05:39.241661 IP XX.XX.XXX.XXX.1141 > 192.168.80.254.5000: UDP, length: 42
11:05:41.747647 IP XX.XX.XXX.XXX.1141 > 192.168.80.254.5000: UDP, length: 42
11:05:44.291722 IP XX.XX.XXX.XXX.1141 > 192.168.80.254.5000: UDP, length: 42
11:05:45.532730 IP XX.XX.XXX.XXX.1141 > 192.168.80.254.5000: UDP, length: 42

L2 eth1 interfeszen ez latszik:
# tcpdump -ni eth1 port 5000
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes
11:05:40.006887 IP XX.XX.XXX.XXX.1141 > 192.168.80.254.5000: UDP, length: 42
11:05:42.512527 IP XX.XX.XXX.XXX.1141 > 192.168.80.254.5000: UDP, length: 42
11:05:45.056263 IP XX.XX.XXX.XXX.1141 > 192.168.80.254.5000: UDP, length: 42
11:05:46.297107 IP XX.XX.XXX.XXX.1141 > 192.168.80.254.5000: UDP, length: 42

L2 eth2 interfeszen pedig ez latszik (magyarul semmi):
# tcpdump -ni eth2 port 5000
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth2, link-type EN10MB (Ethernet), capture size 96 bytes

L1 interfeszei:
eth0 - ZZ.ZZZ.ZZZ.ZZZ
eth1 - 192.168.80.253

L2 intefeszei:
eth1 - 192.168.80.254
eth2 - CCC.CCC.CCC.201
--
Udvozlettel
Zsiga
Bartos-Elekes Zsolt
2007-02-06 10:42:00 UTC
Permalink
Post by Kosa Attila
# ip route list table openvpn.out
default via 192.168.80.253 dev eth1
Tovabbra is fenntartom, hogy hianyzik egy

192.168.80.0/24 dev eth1 scope link src 192.168.80.254

bar lehet, hogy anelkul is megy. Ki fogom probalni.
Post by Kosa Attila
# iptables -L -n -v -t mangle
Chain OUTPUT (policy ACCEPT 256 packets, 27676 bytes)
pkts bytes target prot opt in out source destination
0 0 MARK udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spt:5000 MARK set 0x1
Most esik le, hogy ami csomagot megjeloltem az OUTPUT lancban, az nekem
se arra ment, amerre kellett volna (2.6.19.1-es kernellel). Bar a leiras
szerint az OUTPUT meg a routing elott van, nekem ugy tunt, mintha nem
venne figyelembe a mark-ot.
--
Sziasztok: Zsolt
Kosa Attila
2007-02-06 11:42:50 UTC
Permalink
Post by Bartos-Elekes Zsolt
Post by Kosa Attila
# ip route list table openvpn.out
default via 192.168.80.253 dev eth1
Tovabbra is fenntartom, hogy hianyzik egy
192.168.80.0/24 dev eth1 scope link src 192.168.80.254
# ip route add 192.168.80.0/24 dev eth1 scope link src 192.168.80.254 table openvpn.out
Post by Bartos-Elekes Zsolt
bar lehet, hogy anelkul is megy. Ki fogom probalni.
Gyakorlatilag semmi sem valtozott :(
Post by Bartos-Elekes Zsolt
Post by Kosa Attila
# iptables -L -n -v -t mangle
Chain OUTPUT (policy ACCEPT 256 packets, 27676 bytes)
pkts bytes target prot opt in out source destination
0 0 MARK udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spt:5000 MARK set 0x1
Most esik le, hogy ami csomagot megjeloltem az OUTPUT lancban, az nekem
se arra ment, amerre kellett volna (2.6.19.1-es kernellel). Bar a leiras
szerint az OUTPUT meg a routing elott van, nekem ugy tunt, mintha nem
venne figyelembe a mark-ot.
Nalam 2.6.19.2-es kernel van. Semmilyen interfeszen nem latszik
tavozni a csomag, es most az iptables-ben sem novekszik a
megjelolest vegzo szabalyban a szamlalo.
--
Udvozlettel
Zsiga
Bartos-Elekes Zsolt
2007-02-06 12:40:23 UTC
Permalink
Post by Kosa Attila
Post by Bartos-Elekes Zsolt
bar lehet, hogy anelkul is megy. Ki fogom probalni.
Gyakorlatilag semmi sem valtozott :(
Kiprobaltam, amikor nem volt route a subnet fele, akkor a default
gateway-en keresztul kuldte el a csomagot a sajat subneten levo gepeknek
is (es persze kapott egy icmp redirectet is). Ez egyreszt folosleges
terheles, masreszt ha van tuzfal a def.gw-n, akkor ugy vettem eszre,
hogy egy ido utan hajlamos megszakitani a kapcsolatot.
--
Sziasztok: Zsolt
Bartos-Elekes Zsolt
2007-02-06 13:04:22 UTC
Permalink
Post by Kosa Attila
# iptables -L -n -v -t nat
Chain PREROUTING (policy ACCEPT 12 packets, 1150 bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 1 packets, 72 bytes)
pkts bytes target prot opt in out source destination
25 1839 MASQUERADE all -- * eth2 0.0.0.0/0 0.0.0.0/0
Chain OUTPUT (policy ACCEPT 26 packets, 1911 bytes)
pkts bytes target prot opt in out source destination
Asszem megvan: osszeallitottam hirtelen egy hasonlo tesztkornyezetet,
mark-oltam a kimeno ssh csomagokat, es kellett egy SNAT *mindket*
interfeszre (gondolom, amikor az ssh connect()-el, a kernel a default
route tabla alapjan ad neki helyi cimet, de mivel masik interfeszen megy
majd ki, mas forras IP kell neki).

Probald ki ugy, hogy az eth1-en kimeno csomagokat is SNAT-olod (vagy
akar MASQUERADE, egyszerubb beirni :-).
--
Sziasztok: Zsolt
Kosa Attila
2007-02-12 08:21:56 UTC
Permalink
Post by Bartos-Elekes Zsolt
Post by Kosa Attila
# iptables -L -n -v -t nat
Chain PREROUTING (policy ACCEPT 12 packets, 1150 bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 1 packets, 72 bytes)
pkts bytes target prot opt in out source destination
25 1839 MASQUERADE all -- * eth2 0.0.0.0/0 0.0.0.0/0
Chain OUTPUT (policy ACCEPT 26 packets, 1911 bytes)
pkts bytes target prot opt in out source destination
Asszem megvan: osszeallitottam hirtelen egy hasonlo tesztkornyezetet,
mark-oltam a kimeno ssh csomagokat, es kellett egy SNAT *mindket*
interfeszre (gondolom, amikor az ssh connect()-el, a kernel a default
route tabla alapjan ad neki helyi cimet, de mivel masik interfeszen megy
majd ki, mas forras IP kell neki).
Probald ki ugy, hogy az eth1-en kimeno csomagokat is SNAT-olod (vagy
akar MASQUERADE, egyszerubb beirni :-).
Hihetetlen, de igy sem mukodik... De most mar a mangle tablaban
nem novekszik a megjelolt csomagok szamlaloja. Mintha egyetlen
csomag sem erkezne oda.
--
Udvozlettel
Zsiga
Loading...