Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[RISOLTO]Advanced Routing
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Forum di discussione italiano
View previous topic :: View next topic  
Author Message
maria77
n00b
n00b


Joined: 06 Jun 2005
Posts: 18

PostPosted: Tue Jan 23, 2007 4:48 pm    Post subject: [RISOLTO]Advanced Routing Reply with quote

Ciao,
io ho un problema che mi sta assilando da un paio di giorni sull'utilizzo di iptables e ip route.

La situazione in cui mi trovo è la seguente:
1 macchina client dotata di due pccard (una scheda vodafone e una tim) che cerca di aprire 2 openvpn verso un server su due porte diverse (kernel 2.6.12)
1 macchina server dotata di indirizzo ip pubblico (quello del mio router adsl)che ha in eseguzione su due porte fissate due processi di openvpn server(kernel 2.6.18 ).

Io ho bisogno che il traffico della openvpn relativo alla device tap0 viaggi attraverso ppp0 e quello della tap1 attarverso ppp1.

Ho cercato la documentazione su iptables e sul routing per connessioni multiple, ho utilizzato l'idea proposta in lartc ma niente.
In ogni modo io scriva le regole ottengo sempre che le connessioni al server openvpn arrivano dal medesimo indirizzo...mentre io vorrei vedere i due indirizzi quello di ppp0 (sul logger della tap0) e quello di ppp1 (sul logger della tap1).
Quello che voglio fare è almeno possibile?

Vi ringarzio in anticipo per qualsiasi vostro aiuto!!

Qualsiasi suggerimento è ben accetto...

Ciao
maria


Last edited by maria77 on Wed Jan 24, 2007 3:04 pm; edited 1 time in total
Back to top
View user's profile Send private message
makoomba
Bodhisattva
Bodhisattva


Joined: 03 Jun 2004
Posts: 1856

PostPosted: Tue Jan 23, 2007 4:54 pm    Post subject: Reply with quote

Moved from Forum italiano (Italian) to Forum di discussione italiano.
_________________
When all else fails, read the instructions.
Back to top
View user's profile Send private message
Frez
Apprentice
Apprentice


Joined: 29 Aug 2003
Posts: 166

PostPosted: Tue Jan 23, 2007 5:18 pm    Post subject: Reply with quote

Forse dovresti essere più preciso (precisa ?). Descrivendo che comandi hai impartito, come hai configurato il tc ecc.
Diffile trovare dove hai sbagliato senza sapere cosa hai fatto.
Non vorrai mica chiedere una ricetta pronta su un forum di gentoo eh ? :)

Se non ho capito male vorresti che le decisioni di routing venissero prese non in base al solo indirizzo di destinazione, ma anche in base alla porta UDP di destinazione ?
_________________
There is one more thing ... it's been emotional
Back to top
View user's profile Send private message
codadilupo
Advocate
Advocate


Joined: 05 Aug 2003
Posts: 3135

PostPosted: Tue Jan 23, 2007 6:51 pm    Post subject: Reply with quote

pensa, io ho capito l'esatto contrario! che le decisioni si prendano non in base alla destinazione, ma alla provenienza (ppp0 o ppp1).

Coda
Back to top
View user's profile Send private message
maria77
n00b
n00b


Joined: 06 Jun 2005
Posts: 18

PostPosted: Wed Jan 24, 2007 9:38 am    Post subject: Reply with quote

Ciao mi scuso,perchè forse nn sono stata chiara.
Allora vi posto le varie configurazioni delle due macchine:

lato client:
IFCONFIG:
Code:

eth0      Link encap:Ethernet  HWaddr 00:E0:C7:07:C1:46
          inet addr:192.168.0.82  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:65 errors:0 dropped:0 overruns:0 frame:0
          TX packets:29 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:6969 (6.8 KiB)  TX bytes:4808 (4.6 KiB)
          Interrupt:9 Base address:0xfc00

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

ppp0      Link encap:Point-Point Protocol
          inet addr:217.201.145.211  P-t-P:217.200.194.210  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:16 errors:0 dropped:0 overruns:0 frame:0
          TX packets:18 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:425 (425.0 B)  TX bytes:557 (557.0 B)

ppp1      Link encap:Point-Point Protocol
          inet addr:83.225.210.247  P-t-P:10.64.64.65  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:9 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:174 (174.0 B)  TX bytes:213 (213.0 B)

ROUTE:
Code:

10.64.64.65     *               255.255.255.255 UH    0      0        0 ppp1
217.200.194.210 *               255.255.255.255 UH    0      0        0 ppp0
192.168.0.0     *               255.255.255.0   U     0      0        0 eth0
127.0.0.0       localhost       255.0.0.0       UG    0      0        0 lo
default         *               0.0.0.0         U     0      0        0 ppp0


lato server:
IFCONFIG:
Code:

eth0      Link encap:Ethernet  HWaddr 00:14:22:F0:4D:9D
          inet addr:192.168.1.86  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1846 errors:0 dropped:0 overruns:0 frame:0
          TX packets:296 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:575685 (562.1 Kb)  TX bytes:32603 (31.8 Kb)
          Interrupt:17

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:690 (690.0 b)  TX bytes:690 (690.0 b)

tap0      Link encap:Ethernet  HWaddr A2:CE:89:E9:41:DC
          inet addr:10.10.1.1  Bcast:10.10.1.3  Mask:255.255.255.252
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

tap1      Link encap:Ethernet  HWaddr 72:AB:74:77:16:63
          inet addr:10.10.2.1  Bcast:10.10.2.3  Mask:255.255.255.252
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

dove si può notare che sono già attivi i due servizi openvpn,la tap0 sulla porta 2375 e la tap1 sulla porta 2977
ROUTE:
Code:

rfc-1918        *               255.255.255.252 U     0      0        0 tap1
rfc-1918        *               255.255.255.252 U     0      0        0 tap0
rfc-1918        *               255.255.255.0   U     0      0        0 eth0
loopback        *               255.0.0.0       U     0      0        0 lo
default         rfc-1918        0.0.0.0         UG    0      0        0 eth0

Ovviamente il server è collegato ad un router ADSL con indirizzo ip pubblico

Quello che vorrei fare è aprire due client openvpn sulla macchina client e instradare i pacchetti delle openvpn una sulla dev ppp0 e una sulla dev ppp1

Per fare questo avevo pensato di usare le regole di iptables,vi riporto quelle che ho utilizzato:
Code:

iptables -t mangle -A PREROUTING -d ip pubblico server -p tcp --dport  2977 -j ROUTE --oif ppp1
iptables -t mangle -A OUTPUT -d ip pubblico server -p tcp --dport  2977 -j ROUTE --oif ppp1


ma così facendo la connssione verso la porta tap0 arriva al server dall'indirizzo ip della dev ppp0 che è il mio route default sul client,mentre la connessione alla tap1 che con le regole vorrei fosse instradata verso ppp1 nn arriva proprio e il client rimane in ricerca di connessione fino al timeout

Oltre alle prove con iptables ho provato anche ad usare delle tabelle aggiuntive di routing e a marcare i pacchetti in uscita per il server alla porta 2977 e inserirli nella tabella creata.tramite iptables per marcare e iprule per assegnare i pacchetti marcati alla tabella creata...neanche così funziona!!

Se elimino le regole di iptables le due connessioni si creano ma il server riporta come indirizzo del client sempre quello della dev ppp0.

Come posso fare?
E' possibile fare quello che voglio o sto prendendo una cantonata mostruosa??

Vi ringarzio in anticipo per il vostro aiuto

Ciao
Maria
Back to top
View user's profile Send private message
codadilupo
Advocate
Advocate


Joined: 05 Aug 2003
Posts: 3135

PostPosted: Wed Jan 24, 2007 11:25 am    Post subject: Reply with quote

sto dormendo in piedi e quindi diro' sicuramente una cazzata: ma non è possibile dare un default gw per una connessione e uno per l'altra ?

Coda
Back to top
View user's profile Send private message
mouser
Veteran
Veteran


Joined: 10 Aug 2004
Posts: 1419
Location: Milano

PostPosted: Wed Jan 24, 2007 11:28 am    Post subject: Reply with quote

codadilupo wrote:
sto dormendo in piedi e quindi diro' sicuramente una cazzata: ma non è possibile dare un default gw per una connessione e uno per l'altra ?

Coda


Non sono sicuro che si possa fare con linux........

[:evil: on]
Se fossimo su un forum Solaris sarebbe diverso!!!
[:evil: off]

Ciriciao
mouser :wink:
Back to top
View user's profile Send private message
maria77
n00b
n00b


Joined: 06 Jun 2005
Posts: 18

PostPosted: Wed Jan 24, 2007 3:01 pm    Post subject: [RISOLTO]Advanced Routing Reply with quote

Ciao ho risolto!!

Sbagliavo a creare le tabelle aggiuntive del traffico della device ppp1.

Adesso sono riuscita e le connessioni vanno una attraverso ppp0 e l'altra ppp1


Grazie a tutti del supporto

maria
Back to top
View user's profile Send private message
makoomba
Bodhisattva
Bodhisattva


Joined: 03 Jun 2004
Posts: 1856

PostPosted: Wed Jan 24, 2007 3:05 pm    Post subject: Reply with quote

@maria77
perchè non posti la soluzione completa ? tables/rules/iptables etc
a qualcuno nella tua stessa situazione potrebbero tornare utili :wink:
_________________
When all else fails, read the instructions.
Back to top
View user's profile Send private message
maria77
n00b
n00b


Joined: 06 Jun 2005
Posts: 18

PostPosted: Wed Jan 24, 2007 3:24 pm    Post subject: Reply with quote

Ciao vi riporto la soluzione che ho trovato io...magari c'è un modo migliore..ma per il momento mi accontento!
nella configurazione del sistema che vi ho descritto prima ho creato una nuova tabella per il routing copiandoci dentro tutte le regole presenti nella visualizzazione del comando route tranne il default che ho aggiunto per ultimo modificandolo
Code:

ip route add default dev ppp1 table 1

poi ho preparato la regola di iptables per marcare i pacchetti che mi interessavano
Code:

iptables -t mangle -A PREROUTING -d ip pubblico -p tcp --dport 2977 -j MARK --set-mark 1
iptables -t mangle -A OUTPUT -d ip pubblico -p tcp --dport 2977 -j MARK --set-mark 1
iptables -t nat -A POSTROUTING -o ppp1 -j SNAT --to 83.225.210.247

e per finire la regola per mettere i pacchetti marcati in table 1
Code:

ip rule fwmark 1 table 1


cosi facendo se eseguo il client openvpn sulla porta 2977 verso ip pubblico il server riceve la richiesta e porta come indirizzo del client quello della device ppp1, che era proprio quello che volevo!!

Spero che a qualcuno possa essere utile!

ciao
maria
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Forum di discussione italiano All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum