[Megoldva] Routolás két ISP felé

Hi,

Adott a következő szitu:


--- 192.168.2.0/24 ------------ eth0:0
                                      \
--- 192.168.1.0/24 ------------ eth0 (192.168.1.252, 192.168.2.252) 
                                      [szerver]  
                                     /     |
                                    /    eth1 (195.xxx.xxx.xxx) ISP1
                                   /
                        ISP2 router (192.168.1.111)      

Jelenleg az 1.0-ás hálózaton mindenki az 1.111-et kapja gw-ként, ami egy router. Szeretném átterelni a forgalmat a szerveren keresztül (transparent proxy stb. okok miatt). A 2.0-át pedig az eth1-en.
Ehhez kellene valami ötlet.
Köszönöm!

Hozzászólások

tehát a 2.0 előbb az eth0-án, majd az eth1-en megy át?

ha ezt tisztán leírod [vigyázz, ne annyira szubjektíven, inkább általánosan, mert close-olják a kérdést] ide:

http://serverfault.com/questions/ask

szépen angolul, akkor szerintem előbb megkapod a választ, mint itt.

Szerintem pontatlan az ábra. Legalábbis nagyon alap tudással azt gondolnám, hogy a szerverbe minimum három interface kell.


 nem kitüntetett gép                                                                     nem kitüntetett gép
   (192.168.1.x)                                                                           (192.168.2.x)
          |                   +---------------------------------------------------+               |
          |                   |                                                   |               |
switch 1 (192.168.1.0/24) --- | eth0 (192.168.1.252)         (192.168.2.252) eth1 | --- switch 2 (192.168.2.0/24)
          |                   |                                                   |
          |                   |                            (195.xxx.xxx.xxx) eth2 | === ISP1 eszköz
ISP2 router (192.168.1.111)   |                                                   |
                              +---------------------------------------------------+

Jelenleg az 1.0-ás hálózaton mindenki az 1.111-et kapja gw-ként, ami egy router. Szeretném átterelni a forgalmat a szerveren keresztül (transparent proxy stb. okok miatt).

Az 1.0-ás hálózat minden gépének a 192.168.1.252-t kell leosztani default gw-ként (dhcp-vel vagy kézzel) az 1.111 helyett. A szerveren az 1.0 felől érkező forgalmat az ISP2 router felé kell route-olni, de közbe kell ékelni a transparent proxy-t iptables-zel. (Meg persze az IP forward-ot.)

(Mindenesetre ezt egy 192.168.1.x gép könnyen felülbírálhatja és route-olhat közvetlenül a 192.168.1.111 felé. Mivel az 1.x és az 1.111 azonos switch-ben vannak, ezt legfeljebb úgy tudod megakadályozni, ha ebtables-zel szűrsz forrás MAC-ra az 1.111-en (csak a szerver felől fogadjon), vagy iptables-zel forrás IP-re (csak a szerver felől fogadjon, de akkor a szerveren még SNAT-ot is kell csinálnod). Ha az ISP2 router egy sima fekete doboz "kliens MAC szűrés" nélkül, akkor nem tudod megakadályozni, hogy az 1.x közvetlenül azon keresztül route-oljon. Ekkor a szerverbe kell egy negyedik eth is, amivel pont azt csinálod, mint: lásd lentebb.)

A 2.0-át pedig az [ISP1 felé].

IP forward + masquerade a szerveren eth1->eth2 irányban.

"Szerintem pontatlan az ábra. Legalábbis nagyon alap tudással azt gondolnám, hogy a szerverbe minimum három interface kell."

Elnézést, tényleg pontatlan.
A 192.168.2.0 az eth0:0-ra jön.

"Az 1.0-ás hálózat minden gépének a 192.168.1.252-t kell leosztani default gw-ként (dhcp-vel vagy kézzel) az 1.111 helyett. A szerveren az 1.0 felől érkező forgalmat az ISP2 router felé kell route-olni, de közbe kell ékelni a transparent proxy-t iptables-zel. (Meg persze az IP forward-ot.)"

A kiosztás és a transzparens proxy meg is volna. A route-olással vannak bajaim. Két default route kellene attól függően, h honnan érkezik a kérés illetve még a squid is játszik ebben a felállásban.

"Mindenesetre ezt egy 192.168.1.x gép könnyen felülbírálhatja és route-olhat közvetlenül a 192.168.1.111 felé. Mivel az 1.x és az 1.111 azonos switch-ben vannak, ezt legfeljebb úgy tudod megakadályozni, ha ebtables-zel szűrsz forrás MAC-ra az 1.111-en (csak a szerver felől fogadjon), vagy iptables-zel forrás IP-re (csak a szerver felől fogadjon, de akkor a szerveren még SNAT-ot is kell csinálnod). Ha az ISP2 router egy sima fekete doboz "kliens MAC szűrés" nélkül, akkor nem tudod megakadályozni, hogy az 1.x közvetlenül azon keresztül route-oljon. Ekkor a szerverbe kell egy negyedik eth is, amivel pont azt csinálod, mint: lásd lentebb.)"

Igen ez általam is ismert hiányosság. A klienseken nincs joga a usereknek ip címet állítani. Nyilván ettől még ezt meg lehet kerülni, de nekem egyelőre elég lenne, ha így működne.

Hi,

Sehogy sem akar működni.

/etc/network/interfaces

auto eth0
iface eth0 inet static
address 192.168.1.252
netmask 255.255.255.0
broadcast 192.168.1.255
#gateway 192.168.1.111

auto eth1
iface eth1 inet static
address 195.xxx.xxx.202
netmask 255.255.255.248
gateway 195.xxx.xxx.206

auto eth0:0
iface eth0:0 inet static
address 192.168.2.252
netmask 255.255.255.0
broadcast 192.168.2.255
#gateway 192.168.1.111

root@dellserver:/etc/network# ip route
195.xxx.xxx.200/29 dev eth1 proto kernel scope link src 195.xxx.xxx.202
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.252
default via 195.xxx.xxx.206 dev eth1 metric 100

/etc/iproute2/rt_tables

#
# reserved values
#
255 local
254 main
253 default
0 unspec
#
# local
#
#1 inr.ruhep
1 admin

Majd kiadom ezt:

#!/bin/bash
/sbin/ip route add 192.168.1.0/24 dev eth0 src 192.168.1.252 table admin
/sbin/ip route add default via 192.168.1.111 dev eth0 table admin
/sbin/ip rule add from 192.168.1.252/24 dev eth0 table admin
/sbin/ip rule add to 192.168.1.252/24 dev eth0 table admin
/sbin/ip route flush cache

Erre pedig semmi válasz :(.

root@dellserver:~/bin# ping -I eth0 192.168.1.252 hup.hu
PING hup.hu (195.228.252.138) from 192.168.1.252 eth0: 56(124) bytes of data.

Köszönöm!

Igen, itt jön.

root@dellserver:~/bin# ip rule show
0: from all lookup local
32764: from 192.168.1.0/24 iif eth0 lookup admin
32765: from 192.168.1.252/24 iif eth0 lookup admin
32766: from all lookup main
32767: from all lookup default

root@dellserver:~/bin# ip route show
195.xxx.xxx.200/29 dev eth1 proto kernel scope link src 195.xxx.xxx.202
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.252
default via 195.xxx.xxx.206 dev eth1 metric 100

root@dellserver:~/bin# ip route show table admin
192.168.1.0/24 dev eth0 scope link src 192.168.1.252
default via 192.168.1.111 dev eth0

Ahhhh. Éreztem, hogy közel vagyunk. Működik szépen :D!!

#!/bin/bash
/sbin/ip route add 192.168.1.0/24 dev eth0 src 192.168.1.252 table admin
/sbin/ip route add default via 192.168.1.111 dev eth0 table admin
/sbin/ip rule add from 192.168.1.252/24 table admin
/sbin/ip rule add to 192.168.1.252/24 table admin
/sbin/ip route flush cache

Köszönöm mindenkinek! (vl kollégának különösen)

Hasonlo problemam mar volt, meg tudtam oldani bar nagyon gusztustalanul.
Akkor en is belefutottam hogy ket default route nem megoldas.
En akkor Openvz-vel oldottam meg. A ket virtualis gepnek, mas volt a cime (pl 1.111, 2.111), es DHCP-vel azt a gw-t adtam meg amit megerdemelt.

Tudom hogy csunya megoldas, de akkor a celnak megfelelt.