View previous topic :: View next topic |
Author |
Message |
maria77 n00b
![n00b n00b](/images/ranks/rank_rect_0.gif)
Joined: 06 Jun 2005 Posts: 18
|
Posted: Tue Jan 23, 2007 4:48 pm Post subject: [RISOLTO]Advanced Routing |
|
|
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 |
|
![](templates/gentoo/images/spacer.gif) |
makoomba Bodhisattva
![Bodhisattva Bodhisattva](/images/ranks/rank-bodhisattva.gif)
![](images/avatars/54100765943a2d293cd61e.jpg)
Joined: 03 Jun 2004 Posts: 1856
|
Posted: Tue Jan 23, 2007 4:54 pm Post subject: |
|
|
Moved from Forum italiano (Italian) to Forum di discussione italiano. _________________ When all else fails, read the instructions. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
Frez Apprentice
![Apprentice Apprentice](/images/ranks/rank_rect_2.gif)
![](images/avatars/1134918543455750fce65a0.jpg)
Joined: 29 Aug 2003 Posts: 166
|
Posted: Tue Jan 23, 2007 5:18 pm Post subject: |
|
|
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 |
|
![](templates/gentoo/images/spacer.gif) |
codadilupo Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
Joined: 05 Aug 2003 Posts: 3135
|
Posted: Tue Jan 23, 2007 6:51 pm Post subject: |
|
|
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 |
|
![](templates/gentoo/images/spacer.gif) |
maria77 n00b
![n00b n00b](/images/ranks/rank_rect_0.gif)
Joined: 06 Jun 2005 Posts: 18
|
Posted: Wed Jan 24, 2007 9:38 am Post subject: |
|
|
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 |
|
![](templates/gentoo/images/spacer.gif) |
codadilupo Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
Joined: 05 Aug 2003 Posts: 3135
|
Posted: Wed Jan 24, 2007 11:25 am Post subject: |
|
|
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 |
|
![](templates/gentoo/images/spacer.gif) |
mouser Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
![](images/avatars/17059518954118d298d5d24.gif)
Joined: 10 Aug 2004 Posts: 1419 Location: Milano
|
Posted: Wed Jan 24, 2007 11:28 am Post subject: |
|
|
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........
[ on]
Se fossimo su un forum Solaris sarebbe diverso!!!
[ off]
Ciriciao
mouser ![Wink :wink:](images/smiles/icon_wink.gif) |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
maria77 n00b
![n00b n00b](/images/ranks/rank_rect_0.gif)
Joined: 06 Jun 2005 Posts: 18
|
Posted: Wed Jan 24, 2007 3:01 pm Post subject: [RISOLTO]Advanced Routing |
|
|
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 |
|
![](templates/gentoo/images/spacer.gif) |
makoomba Bodhisattva
![Bodhisattva Bodhisattva](/images/ranks/rank-bodhisattva.gif)
![](images/avatars/54100765943a2d293cd61e.jpg)
Joined: 03 Jun 2004 Posts: 1856
|
Posted: Wed Jan 24, 2007 3:05 pm Post subject: |
|
|
@maria77
perchè non posti la soluzione completa ? tables/rules/iptables etc
a qualcuno nella tua stessa situazione potrebbero tornare utili ![Wink :wink:](images/smiles/icon_wink.gif) _________________ When all else fails, read the instructions. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
maria77 n00b
![n00b n00b](/images/ranks/rank_rect_0.gif)
Joined: 06 Jun 2005 Posts: 18
|
Posted: Wed Jan 24, 2007 3:24 pm Post subject: |
|
|
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 |
|
![](templates/gentoo/images/spacer.gif) |
|