|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Dec 2001
Città: Castelfranco Veneto
Messaggi: 13369
|
Problema Default Gateway
*) Gateway/Firewall(iptables) Linux con 5 Ethernet
*) 3 LAN diverse: Tecnica(10.42.10.X), Amministrativa(10.45.10.X) e DMZ(10.43.10.X) *) 2 Uplink ADSL: 2 Router ADSL con 8 indirizzi pubblici ciascuno Tutto è configurato ad-hoc, il problema è che io vorrei che la DMZ uscisse in Internet con un router ADSL(eth3), mentre l'area Tecnica e l'area Amministrativa con l'altro router(eth0). Il problema è che ci può essere solo un Default Gateway, quindi o si esce con l'eth0 o con l'eth3, ma non entrambi. Da qui o Internet funziona solo per la DMZ o solo per Tecnica/Amministrativa... Come si può far coesistere il tutto? ![]()
__________________
NAS: QNAP TS-451+ | QTS 4.3 | 8GB (4+4) Kingston KVR16LS11 | WD RED 4TB(x4) RAID5 | Remote QNAP RM-IR002 | Logitech K400 White | APC Back-UPS ES 550G | D-Link Camera DCS-5020L AVR: ONKYO TX-NR609 | TV: Hisense H65M7000 |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Dec 2001
Città: Castelfranco Veneto
Messaggi: 13369
|
Cioè le "route" dovrebbero dipendere non solo dalla destinazione, ma anche dalla sorgente...
![]()
__________________
NAS: QNAP TS-451+ | QTS 4.3 | 8GB (4+4) Kingston KVR16LS11 | WD RED 4TB(x4) RAID5 | Remote QNAP RM-IR002 | Logitech K400 White | APC Back-UPS ES 550G | D-Link Camera DCS-5020L AVR: ONKYO TX-NR609 | TV: Hisense H65M7000 |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Dec 2005
Città: Milano
Messaggi: 834
|
Tutto configurato ad hoc per quella topologia
....tu vuoi cambiare topologia....indi configurazioni. Ummm...non smanetto da un tot...lascio la mano.
__________________
Cpu:Intel Pentium 4 D 945, Asus P5PL2, Nvidia 7600GTS 256MB. 2GB DDR2 Ultima modifica di 1mPHUNit0 : 23-05-2006 alle 15:56. |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Dec 2001
Città: Castelfranco Veneto
Messaggi: 13369
|
Quote:
Se fosse possibile avere 2 default gataway sulla stessa macchina da scegliere in base alla NIC sorgente sarebbe fatta... ![]()
__________________
NAS: QNAP TS-451+ | QTS 4.3 | 8GB (4+4) Kingston KVR16LS11 | WD RED 4TB(x4) RAID5 | Remote QNAP RM-IR002 | Logitech K400 White | APC Back-UPS ES 550G | D-Link Camera DCS-5020L AVR: ONKYO TX-NR609 | TV: Hisense H65M7000 |
|
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Quote:
Prova così: Innanzitutto crei le default route in questa maniera: route add default dev eth0 gw [gateway per eth0] route add default dev eth3 gw [gateway per eth3] Quindi crei le regole di postrouting in questa maniera: iptables -t nat -A POSTROUTING -s [subnet DMZ] -j SNAT --to-souce [IP di eth3] iptables -t nat -A POSTROUTING -s [subnet area tecnica/amministrativa] -j SNAT --to-souce [IP di eth0] Rigorosamente non testato, ma in via di principio potrebbe andare.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Preciso: ho testato due diverse default route per vedere se il kernel passava automaticamente dall'una all'altra se la prima non era raggiungibile, e il risultato è stato positivo. Da vedere se, in presenza di un ip sorgente forzato a quello di una particolare interfaccia, il kernel sceglie automaticamente la default route per quella interfaccia. Tu sei la cavia ideale per questo esperimento
![]()
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Dec 2001
Città: Castelfranco Veneto
Messaggi: 13369
|
Questo è l'output del comando "route -n":
81.XXX.XXX.XXX 0.0.0.0 255.255.255.248 U 0 0 0 eth0 88.XXX.XXX.XXX 0.0.0.0 255.255.255.248 U 0 0 0 eth3 10.42.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 10.43.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2 10.45.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth4 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo 0.0.0.0 81.XXX.XXX.XXX 0.0.0.0 UG 0 0 0 eth0 Queste sono le righe presenti in IPTABLES: $IPTABLES -t nat -A POSTROUTING -s $NET_TEC -o $IF_EXT -d 0.0.0.0/0 -j SNAT --to $IP_EXT $IPTABLES -t nat -A POSTROUTING -s $NET_AMM -o $IF_EXT -d 0.0.0.0/0 -j SNAT --to $IP_EXT $IPTABLES -t nat -A POSTROUTING -s $NET_DMZ -o $IF_CLI -d 0.0.0.0/0 -j SNAT --to $IP_CLI Ho dovuto mettere questa per fare navigare la DMZ: $IPTABLES -t nat -A POSTROUTING -s $NET_DMZ -o $IF_EXT -d 0.0.0.0/0 -j SNAT --to $IP_EXT NB: IF_EXT=eth0 IF_CLI=eth3 IP_EXT=indirizzo pubblico del mio gateway/firewall su una linea(NIC eth0) IP_CLI=indirizzo pubblico del mio gateway/firewall su una linea(NIC eth3) Come si vede dal comando "route" il default gw per gli indirizzi sconosciuti è cmq via l'eth0... ![]()
__________________
NAS: QNAP TS-451+ | QTS 4.3 | 8GB (4+4) Kingston KVR16LS11 | WD RED 4TB(x4) RAID5 | Remote QNAP RM-IR002 | Logitech K400 White | APC Back-UPS ES 550G | D-Link Camera DCS-5020L AVR: ONKYO TX-NR609 | TV: Hisense H65M7000 |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Ripeto, aggiungi manualmente un secondo default gateway via eth3:
route add default dev eth3 gw <gateway per eth3>
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
![]() |
![]() |
![]() |
#9 | |
Senior Member
Iscritto dal: Dec 2001
Città: Castelfranco Veneto
Messaggi: 13369
|
Quote:
![]()
__________________
NAS: QNAP TS-451+ | QTS 4.3 | 8GB (4+4) Kingston KVR16LS11 | WD RED 4TB(x4) RAID5 | Remote QNAP RM-IR002 | Logitech K400 White | APC Back-UPS ES 550G | D-Link Camera DCS-5020L AVR: ONKYO TX-NR609 | TV: Hisense H65M7000 |
|
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Dec 2005
Città: Milano
Messaggi: 834
|
Che fortuna che hai sensine....porca, anche io vorrei un lab....
chi le ricordava quelle regole iptable sul nat....azz leggere non basta.
__________________
Cpu:Intel Pentium 4 D 945, Asus P5PL2, Nvidia 7600GTS 256MB. 2GB DDR2 |
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Occhio alla regola
-o $IF_CLI se il primo default gw è l'altro, questa regola non verrà mai matchata. Per le prove iniziali, elimina semplicemente le regole su -o in postrouting.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
![]() |
![]() |
![]() |
#12 | ||
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Ci ho ripensato, quel metodo non può funzionare per principio. La tabella "postrouting" viene invocata - lo dice il nome - solo _dopo_ che le decisioni di routing sono state prese. Quindi se il pacchetto è stato destinato a eth0, non puoi più cambiare la destinazione nella fase postrouting.
Il problema sembra un pò più complicato di quello che sembrava all'inizio, ma ho trovato forse come dovresti procedere. Spulciando tra la documentazione del kernel ho trovato la voce "IP: policy routing", con questa descrizione: Quote:
Quote:
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
||
![]() |
![]() |
![]() |
#13 |
Senior Member
Iscritto dal: Dec 2001
Città: Castelfranco Veneto
Messaggi: 13369
|
Siccome il forum era down stavo giusto dando un'occhiata al man di "ip" con particolare riferimento alla parametro "table"...
![]() Cmq era quello che dicevo anch'io, nella fase di POSTROUTING la decisione è già stata fatta... ![]()
__________________
NAS: QNAP TS-451+ | QTS 4.3 | 8GB (4+4) Kingston KVR16LS11 | WD RED 4TB(x4) RAID5 | Remote QNAP RM-IR002 | Logitech K400 White | APC Back-UPS ES 550G | D-Link Camera DCS-5020L AVR: ONKYO TX-NR609 | TV: Hisense H65M7000 |
![]() |
![]() |
![]() |
#14 |
Senior Member
Iscritto dal: Dec 2001
Città: Castelfranco Veneto
Messaggi: 13369
|
Ho trovato questo link abbastanza esaustivo: http://lartc.org/howto/lartc.rpdb.multiple-links.html
MAN IP: http://www.die.net/doc/linux/man/man8/ip.8.html ![]()
__________________
NAS: QNAP TS-451+ | QTS 4.3 | 8GB (4+4) Kingston KVR16LS11 | WD RED 4TB(x4) RAID5 | Remote QNAP RM-IR002 | Logitech K400 White | APC Back-UPS ES 550G | D-Link Camera DCS-5020L AVR: ONKYO TX-NR609 | TV: Hisense H65M7000 |
![]() |
![]() |
![]() |
#15 |
Member
Iscritto dal: Apr 2005
Messaggi: 36
|
Se ho capito bene vuoi fare la seguente cosa:
Tecnica(10.42.10.X), Amministrativa(10.45.10.X) --> Router ADSL0 DMZ(10.43.10.X) --> Router ADSL1 Dove lavoro ho dovuto configurare + o - la stessa cosa, ovvero differenziare la navigazione in base agli IP sorgenti tramite 3 Router. Ecco come ho fatto (avevo trovato un sito ben fatto che spiegava molto bene iproute, se lo trovo lo linko): - ti definisci una route in rt_tables (/etc/iproute2/): es '200 alteroute' - definisci una rule: es 'ip rule add fwmark 1 table alteroute' * - setti il gw: es 'ip route add default table alteroute dev eth3 via IP-router' * - modifichi iptable (mangle): es. '-A PREROUTING -s 10.43.10.0/255.255.255.0 -j MARK --set-mark 0x1 - eventuali source nat in questo modo tutti gli IP della DMZ verrano re-diretti sulla eth3 * questi comandi vengono persi se si riavvia la macchina, io li ho messi in rc.local Regards!!! |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:54.