Több default gateway debian lenny alatt

 ( emre33 | 2010. május 4., kedd - 16:26 )

Sziasztok!

Van egy debian lenny-s gépem.
Pár gép használja mint internet kijáró (router)

Jelenleg egy darab külső router (1. router) vagyis net van rákötve.

Lett még egy darab net, ő a 2. számú net. Előzőtől teljesen független.
Két külön lan kártyához vannak csatlakoztatva.

Gond ottvan, hogy 2. számú neten keresztül is el kellene érni a gépen futó weblapot (80-as port)
De a rácsatlakoztatoik gépek, továbbra is az 1-es számú netet használják.

Interfaces fájba hibába írtam, be hogy 2-es számú net Metric 1-es legyen, a weblap nem érhető el.
Ha 0-as metric -t állítottam be mindkét lan kártyához, mindkét gateway-hez, akkor meg a 2. neten mentek ki a gépek.

Remélem érthető a gondom. Hogy tudnám ezt megoldani?

kösz

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Így elsőre nem nagyon értem

A két lan kártyának két ip tartományt adtál? :)

"Lett még egy darab net, ő a 2. számú net."

WAN, vagy LAN?

eth0: ipcim: 81.160.x.x, gateway 81.160.x.x
eth1: ipcim: 91.x.x.x, gateway 91.x.x.x

eth3 a belső lan. 192.168.x

Azt szeretném, hogy az eth3-on lévő gépek mindig az eth1-es neten netezzenek, de az eth0-án lévő ip címről is el lehessen érni a gépen futó webszervert

Ahhoz nem az atjarokat kell allitani, hanem a webszervernek kell megmondani, hogy milyen ip cimeken figyeljen. Apache eseteben ez a Listen parameter.

Hát csak meg kell adnom mintkét gateway-t
Különben hogy fog kilátni az netre?

Mindkét nethez van egy külső gateway!!

És ott a gond, hogy két gateway nem lehet default.

Metric 1 meg szerintem kevés :(

Persze, jogos. Ket tartomanyrol van szo. Secretx altal belinkelt oldalt javaslom. Vagy mas forrasbol: http://lartc.org/howto/lartc.rpdb.multiple-links.html

Ami egyszerubb: felvehetsz tartomany szintu utvonalat a 2. net fele. Igy az abbol a tartomanybol erkezo csomagokat arra fogja visszakuldeni, mig minden mas megy az alapertelmezett fele, ami az 1. net.

"Ami egyszerubb: felvehetsz tartomany szintu utvonalat a 2. net fele. Igy az abbol a tartomanybol erkezo csomagokat arra fogja visszakuldeni, mig minden mas megy az alapertelmezett fele, ami az 1. net.": ez kétségtelenül egyszerűbb, ámde nem működő megoldás.

Egy rendesen konfigurált szolgáltatónál csak a saját címtartományába eső ip címekről fogad el forgalmat. Ezért az egyik isp-hez tartozó router felé nem mehet ki másik isp címtartományába tartozó forrás ip címmel csomag. Azt pedig nem tudja kitalálni, hogy az adott tartományban levő gépeknek melyik isp van közelebb, ergo ez az út járhatatlan.

A rendes megoldás az, hogy minden forgalom bejön, amelyik interfészen bejön, azt kell biztosítani, hogy a rá adott válasz ugyanazon az interfészen menjen ki. Erre pedig az a lartc-s link a helyes válasz.

Igazad van. Megint nem wan-ban gondolkodtam. Tenyleg nincs egyeszubb modja a tobb route tabla hasznalatanal.

"de az eth0-án lévő ip címről is el lehessen érni a gépen futó webszervert"

Ha a webszerver Lan karin is figyel, az nem jó?

Nem, mivel egy külső helyről megpingeltem a gépet, és nem válaszol.

Ha mindkét (eth0 eth1) -nek metric 0-t állítanék be, akkor szerintem menne.

Csak meg kellene mondani, hogy aki a 192* tartományból akarja átjáróként használni a netet, az mindig az eth1-en menjen ki, és soha se az eth0-n

De ezt hogy? foglalmam sincs.

Rosszul állsz a problémához.
A webservered (alapbeállítás szerint) minden interface-en figyel. Ez rendben is van, ne piszkáld.
Ahhoz, hogy a LAN-on lévő gépeid kifejezetten az egyik interface-en menjenek ki a gépeden futó router progi beállításait kell módosítanod, hogy a LAN felől minden csomagot (NAT-olás után) arra az interface-re küldjön. Sajnos (szerencsére) nem használok Linux-os routert ezért nem tudom, hogy pontosan mit kell állítanod, de tuti lesz valaki aki megmondja. ;)

Töltsd le az ebox-ot. Abban be tudsz állítani több gw-t, és hogy mi hogy menjen ki rajtuk. Csak 90%, hogy azt is tudja ami neked kell, de ha igen, és beállítod rajta, akkor könnyen kimásolhatod az iptables-ből, hogy ő hogy csinálja és belőheted a szervereden.
A loadbalancolt netet kb. így oldja meg:

iptables -t mangle -A PREROUTING -j CONNMARK --restore-mark
iptables -t mangle -A PREROUTING -m mark --mark 0x0/0xff -m mac --mac-source 00:aa:aa:8F:86:E6 -j MARK --set-mark 0x1
iptables -t mangle -A PREROUTING -m mark --mark 0x0/0xff -m mac --mac-source 00:00:00:00:01:01 -j MARK --set-mark 0x2
iptables -t mangle -A PREROUTING -s 192.168.1.1 -i eth2 -m mark --mark 0x0/0xff -j MARK --set-mark 0x2
iptables -t mangle -A PREROUTING -s 192.168.0.1 -i eth0 -m mark --mark 0x0/0xff -j MARK --set-mark 0x1
iptables -t mangle -A PREROUTING -m mark --mark 0x0/0xff -j MARK --set-mark 0x1
iptables -t mangle -A PREROUTING -j CONNMARK --save-mark
iptables -t mangle -A OUTPUT -j CONNMARK --restore-mark
iptables -t mangle -A OUTPUT -m mark --mark 0x0/0xff -j MARK --set-mark 0x1
iptables -t mangle -A OUTPUT -m mark --mark 0x0/0xff -j MARK --set-mark 0x1

Ez egy iptables-save részlet, de ebben van a lényeg.

Amennyiben a kérdés nem loadbalance-olt net, úgy ez mire válasz?

loadbalance nem kell.

Kerestem már neten, nem is értem, hogy egy ilyen alap dolog nincs sehol leírva.

Megprobáltam:

RTNETLINK answers: File exists

Ezt mondja :(

/etc/iproute2/rt_tables fájba mindegy hogy mit írok bele?
Azis jó hogy
2 t1
3 t2

lehet, hogy a kerneledben a "policy based routing" opció nincs bekapcsolva:

config IP_MULTIPLE_TABLES
bool "IP: policy routing"
depends on IP_ADVANCED_ROUTER
select FIB_RULES
---help---
Normally, a router decides what to do with a received packet based
solely on the packet's final destination address. If you say Y here,
the Linux router will also be able to take the packet's source
address into account. Furthermore, the TOS (Type-Of-Service) field
of the packet can be used for routing decisions as well.

If you are interested in this, please see the preliminary
documentation at < http://www.compendium.com.ar/policy-routing.txt >
and < ftp://post.tepkom.ru/pub/vol2/Linux/docs/advanced-routing.tex >.
You will need supporting software from
< ftp://ftp.tux.org/pub/net/ip-routing/ >.

If unsure, say N.

ip route add $P2_NET dev $IF2 src $IP2

Nem elég nekem ennyi?
Default gateway-t megadom az interfaces fájba. (eth1)

eth0-nak meg nem adok az interfaces fájba gateway-t, hanem kiadom a fenti parancsot.

Mi az a bgp ?

ez

--
Fontos feladatot soha ne bizz olyan gepre, amit egyedul is fel tudsz emelni!

Mire is kellene itt bgp? Szerintem semmire.

Ok, ebben a spec esetben tényleg meg lehet oldani bgp nélkül.

ok, ebben a spec esetben konkrétan semmilyen problémát nem oldana meg az sem, ha bgp lenne, ellenben további problémákat hozna be.