/ Forside / Teknologi / Netværk / TCP/IP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
TCP/IP
#NavnPoint
Per.Frede.. 4668
BjarneD 4017
severino 2804
pallebhan.. 1680
EXTERMINA.. 1525
xou 1455
strarup 1430
Manse9933 1419
o.v.n. 1400
10  Fijala 1204
Bundling/bonding af 2 xDSL via Linux route~
Fra : Michael Andreasen


Dato : 06-11-02 22:28

Hey.. Overvejde lidt om det er muligt at lave et entent simpelt eller
avanceret bundling setup med 2 DSL'er vha. en linux/BSD boks?

Scenarie:

webserver med rimelig meget trafik, som jeg godt ville sprede over 2 linier.
Jeg forstillede mig at gøre således

| |
| |
| |
ADSL1 ADSL2
| |
[router] (m. 3 NIC's)
| |
webserver
|
LAN

Webserver delen kunne jeg måske (jeg tror) nok løse ved at lave en
round-robin på A-record. Således at hver ip for ca. lige mange
forspørgelser. Jeg formoder det ikke bliver et problem, eller gør det? Vil
linux altid forsøge at forwarde gennem det ene interface (f.eks. eth0), nej
vel?

Nogen ideér?

Og mht til LAN siden er jeg temmelig blankt.. Nogen der har nogle links
eller nogle terier til hvordan man kan gøre?

Input, links og teorier vil være meget velkomne.

postet i dk.edb.system.unix & dk.edb.netværk, håber det er ok, da det vel
egentligt hører ligemeget under begge kategorier.


p.s. jeg ved godt jeg nok er langt "over my head.." med dette lille projekt,
men hvis man ikke prøver så kommer man slet ingen vegne.

--
Mvh Michael Andreasen
"...There are only 10 types of people in the world...........those who
understand binary jokes, and those who don't..."

 
 
Ivar Madsen (06-11-2002)
Kommentar
Fra : Ivar Madsen


Dato : 06-11-02 22:36

Michael Andreasen skrev den Wednesday 06 November 2002 22:28 i
dk.edb.system.unix:

> Hey.. Overvejde lidt om det er muligt at lave et entent simpelt eller
> avanceret bundling setup med 2 DSL'er vha. en linux/BSD boks?

Noget kan man thivertifald lave.

> Scenarie:
>
> webserver med rimelig meget trafik, som jeg godt ville sprede over 2
> linier.

Hvilken form for trafik er der tale om?

> Webserver delen kunne jeg måske (jeg tror) nok løse ved at lave en
> round-robin på A-record. Således at hver ip for ca. lige mange
> forspørgelser. Jeg formoder det ikke bliver et problem, eller gør det? Vil
> linux altid forsøge at forwarde gennem det ene interface (f.eks. eth0),
> nej vel?

Jeg ved at Win. vil bruge det ene netkort, så mon ikke også at Linux vil
gøre det?

> Nogen ideér?

Hvis det var mig der skulle lave det, og der f.eks. er tale om nogle txt
sider med bilder på, så ville jeg lægge alle txt siderne og små bilder på
en web server på den ene ADSL, og den tunge grafik på en anden WEB saerver
på den anden ADSL.
Derved opnår man at det går hurtigt med at hente siderne og de små bilder,
mens de tunge bilder så går lidt langsommer, hvis der er fuld tryk på.

Men har du overvejet om ikke der bliver billiger/bedere med et web hotel?



Michael Andreasen (06-11-2002)
Kommentar
Fra : Michael Andreasen


Dato : 06-11-02 23:26

Ivar Madsen wrote:

>> webserver med rimelig meget trafik, som jeg godt ville sprede over 2
>> linier.
>
> Hvilken form for trafik er der tale om?

primært alm. http (80) trafik fra vores webserver.

og derudover 'alm' LAN->WAN af forskellig karakter.

> Hvis det var mig der skulle lave det, og der f.eks. er tale om nogle txt
> sider med bilder på, så ville jeg lægge alle txt siderne og små bilder på
> en web server på den ene ADSL, og den tunge grafik på en anden WEB saerver
> på den anden ADSL.
> Derved opnår man at det går hurtigt med at hente siderne og de små bilder,
> mens de tunge bilder så går lidt langsommer, hvis der er fuld tryk på.

Ja det var en mulighed, men den er desværre ikke brugbar i dette (mit)
konkrete tilfælde, af en lang række grunde.. men idéen er da god nok.

> Men har du overvejet om ikke der bliver billiger/bedere med et web hotel?

Ja.. Billigere bliver det nok ikke, fordi linien er der allerede, og med ca.
50GB trafik snakker vi nok 2-3K for hosting af serverne (2 stk's). (ikke
fordi det nødvendigvis er dyrt, men det er *mere* end hvis en bundling er
mulig)

--
Mvh Michael Andreasen

"...There are only 10 types of people in the world...........those who
understand binary jokes, and those who don't..."

Martin Damberg (06-11-2002)
Kommentar
Fra : Martin Damberg


Dato : 06-11-02 23:02

"Michael Andreasen" <maskinen2000@hotmail.com> wrote in message
news:aqc1hb$7in$1@sunsite.dk...
> Hey.. Overvejde lidt om det er muligt at lave et entent simpelt eller
> avanceret bundling setup med 2 DSL'er vha. en linux/BSD boks?
>
"langt klip"
>
> --
> Mvh Michael Andreasen
> "...There are only 10 types of people in the world...........those who
> understand binary jokes, and those who don't..."
hey .. omkring load-sharing af flere forskellige Inet-forbindelse,
kan du "måske" bruge dette til noget, hvad angår Linux :

http://braindump.dk/shared/config/network.c12

mvh

Martin Damberg



Michael Andreasen (06-11-2002)
Kommentar
Fra : Michael Andreasen


Dato : 06-11-02 23:19

Martin Damberg wrote:

> "Michael Andreasen" <maskinen2000@hotmail.com> wrote in message
> news:aqc1hb$7in$1@sunsite.dk...
>> Hey.. Overvejde lidt om det er muligt at lave et entent simpelt eller
>> avanceret bundling setup med 2 DSL'er vha. en linux/BSD boks?

> hey .. omkring load-sharing af flere forskellige Inet-forbindelse,
> kan du "måske" bruge dette til noget, hvad angår Linux :
> http://braindump.dk/shared/config/network.c12

Det ser spændende ud.. det ligner dog lidt at de router alt trafik af en
given type gennem et bestemt NIC, men jeg har ikke lige helt overskuet den
endnu.. jeg dykker ned i filen når jeg lige så samlet et overblik over
hvilke forslag der iøvrigt ellers måtte komme. Men det er da i alle
tilfælde noget i den rigtige retning.

takker :)

--
Mvh Michael Andreasen

"...There are only 10 types of people in the world...........those who
understand binary jokes, and those who don't..."

Joakim Recht (06-11-2002)
Kommentar
Fra : Joakim Recht


Dato : 06-11-02 23:25

Michael Andreasen <maskinen2000@hotmail.com> writes:

> Og mht til LAN siden er jeg temmelig blankt.. Nogen der har nogle links
> eller nogle terier til hvordan man kan gøre?

ip route add default nexthop via ip1 dev ethX nexthop via ip2 dev ethX nexthop...

og så ellers
iptables -A POSTROUTING -o ethX -j MASQUERADE
iptables -A POSTROUTING -o ethX -j MASQUERADE
....

ip er i øvtigt en del af iproute2-pakken

mvh
--
Joakim Recht
Tlf. 20 85 54 77
Email god@cs.auc.dk / PGP key http://www.braindump.dk/pgp.txt
WWW http://www.braindump.dk / http://www.compuclub.dk

Christoffer Sørensen (12-11-2002)
Kommentar
Fra : Christoffer Sørensen


Dato : 12-11-02 20:13



Joakim Recht wrote:
> Michael Andreasen <maskinen2000@hotmail.com> writes:
>
>
>>Og mht til LAN siden er jeg temmelig blankt.. Nogen der har nogle links
>>eller nogle terier til hvordan man kan gøre?
>
>
> ip route add default nexthop via ip1 dev ethX nexthop via ip2 dev ethX nexthop...
>
> og så ellers
> iptables -A POSTROUTING -o ethX -j MASQUERADE
> iptables -A POSTROUTING -o ethX -j MASQUERADE
> ...
>
> ip er i øvtigt en del af iproute2-pakken
>
> mvh

Er der nogle, der har haft held med denne løsning ?

Jeg har kunnet få den udgående trafik til at fordele sig på 2
forbindelser, men portforwarding fra firewall til en intern maskine
(www) nægter at virke. Nogen, der har en god idé ?

mvh

Christoffer Sørensen



Steen Suder, privat (12-11-2002)
Kommentar
Fra : Steen Suder, privat


Dato : 12-11-02 21:02

Christoffer Sørensen wrote:
>
>
> Joakim Recht wrote:
>
>> Michael Andreasen <maskinen2000@hotmail.com> writes:
>>
>>
>>> Og mht til LAN siden er jeg temmelig blankt.. Nogen der har nogle
>>> links eller nogle terier til hvordan man kan gøre?
>>
>>
>>
>> ip route add default nexthop via ip1 dev ethX nexthop via ip2 dev ethX
>> nexthop...
>>
>> og så ellers
>> iptables -A POSTROUTING -o ethX -j MASQUERADE
>> iptables -A POSTROUTING -o ethX -j MASQUERADE
>> ...
>>
>> ip er i øvtigt en del af iproute2-pakken
>>
>> mvh
>
>
> Er der nogle, der har haft held med denne løsning ?

Ja, indtil flere steder.

> Jeg har kunnet få den udgående trafik til at fordele sig på 2
> forbindelser, men portforwarding fra firewall til en intern maskine
> (www) nægter at virke. Nogen, der har en god idé ?

Nu ved vi jo ikke hvad du har lavet, hvorfor det kan være svært at gisne
om hvorfor det ikke virker som du vil have det til.
Et bud kunne være at din portforward ikke er korrekt skruet sammen.

FUT: dk.edb.system.unix

--
Mvh. / Best regards,
Steen Suder      <http://www.suder.dk/>
ICQ UIN         4133803


Christoffer Sørensen (14-11-2002)
Kommentar
Fra : Christoffer Sørensen


Dato : 14-11-02 11:08



Steen Suder, privat wrote:
> Christoffer Sørensen wrote:
>
>>
>>
>> Joakim Recht wrote:
>>
>>> Michael Andreasen <maskinen2000@hotmail.com> writes:
>>>
>>>
>>>> Og mht til LAN siden er jeg temmelig blankt.. Nogen der har nogle
>>>> links eller nogle terier til hvordan man kan gøre?
>>>
>>>
>>>
>>>
>>> ip route add default nexthop via ip1 dev ethX nexthop via ip2 dev
>>> ethX nexthop...
>>>
>>> og så ellers
>>> iptables -A POSTROUTING -o ethX -j MASQUERADE
>>> iptables -A POSTROUTING -o ethX -j MASQUERADE
>>> ...
>>>
>>> ip er i øvtigt en del af iproute2-pakken
>>>
>>> mvh
>>
>>
>>
>> Er der nogle, der har haft held med denne løsning ?
>
>
> Ja, indtil flere steder.
>
>> Jeg har kunnet få den udgående trafik til at fordele sig på 2
>> forbindelser, men portforwarding fra firewall til en intern maskine
>> (www) nægter at virke. Nogen, der har en god idé ?
>
>
> Nu ved vi jo ikke hvad du har lavet, hvorfor det kan være svært at gisne
> om hvorfor det ikke virker som du vil have det til.
> Et bud kunne være at din portforward ikke er korrekt skruet sammen.
>
> FUT: dk.edb.system.unix
>

Først forwarder jeg pakker:

iptables -A FORWARD -p TCP -i $a -o $INTIF -d $HTTP_IP --dport 80 -j ACCEPT

hvor $a er netkortets adresse (det, der er forbundet til routeren).

$INTIF er det interface, der er forbundet til mit interne netværk.

Først åbner jeg f.eks. for port 80:

iptables -A INPUT -p TCP -s 0/0 -i $a --dport 80 -j ACCEPT

Så portforwarder jeg:

iptables -t nat -A PREROUTING -p TCP -i $a --dport 80 -j DNAT
--to-destination $HTTP_IP

Det skal siges, at det virker fint med een forbindelse, men ikke to. Jeg
har prøvet at tcpdumpe; portforwardingen virker fint, men jeg tror ikke,
at pakkerne kommer ud gennem den rigtige gateway. Udefra kan man altså
ikke få kontakt til den interne webserver.

Mvh

Christoffer


Kim Hansen (14-11-2002)
Kommentar
Fra : Kim Hansen


Dato : 14-11-02 11:43

Christoffer Sørensen <christoffer-news@omk.dk> writes:

> Først forwarder jeg pakker:
>
> iptables -A FORWARD -p TCP -i $a -o $INTIF -d $HTTP_IP --dport 80 -j ACCEPT
>
> hvor $a er netkortets adresse (det, der er forbundet til routeren).

$a er da det ydre interface (ethX)? Reglen ser rigtig ud.

> $INTIF er det interface, der er forbundet til mit interne netværk.
>
> Først åbner jeg f.eks. for port 80:
>
> iptables -A INPUT -p TCP -s 0/0 -i $a --dport 80 -j ACCEPT

Denne linje bruger du ikke til noget med mindre du læser websiderne
fra firewallen.

> Så portforwarder jeg:
>
> iptables -t nat -A PREROUTING -p TCP -i $a --dport 80 -j DNAT
> --to-destination $HTTP_IP

Denne regel ser også fin ud, den bliver dog udført før din forwarding
regel.

> Det skal siges, at det virker fint med een forbindelse, men ikke to. Jeg
> har prøvet at tcpdumpe; portforwardingen virker fint, men jeg tror ikke,
> at pakkerne kommer ud gennem den rigtige gateway. Udefra kan man altså
> ikke få kontakt til den interne webserver.

Jeg tror også at det er forwarding ud af huset du mangler, måske noget
i stil med:

iptables -A FORWARD -o $a -i $INTIF -m state --state ESTABLISHED -j ACCEPT

Det er dog ikke noget jeg har testet, da den firewall jeg arbejder med
har åbent for stort set alt ud af huset så jeg har ikke prøvet dit
problem.

--
Kim Hansen | |\ _,,,---,,_ | Det er ikke
Dalslandsgade 8, A708 | /,`.-'`' -. ;-;;,_ | Jeopardy.
2300 København S | |,4- ) )-,_. ,\ ( `'-' | Svar _efter_
Phone: 32 88 60 86 | '---''(_/--' `-'\_) | spørgsmålet.

Christoffer Sørensen (14-11-2002)
Kommentar
Fra : Christoffer Sørensen


Dato : 14-11-02 12:29



Kim Hansen wrote:
> Christoffer Sørensen <christoffer-news@omk.dk> writes:
>
>
>>Først forwarder jeg pakker:
>>
>>iptables -A FORWARD -p TCP -i $a -o $INTIF -d $HTTP_IP --dport 80 -j ACCEPT
>>
>>hvor $a er netkortets adresse (det, der er forbundet til routeren).
>
>
> $a er da det ydre interface (ethX)? Reglen ser rigtig ud.

Øh, jo. Du har ret

>
>
>>$INTIF er det interface, der er forbundet til mit interne netværk.
>>
>>Først åbner jeg f.eks. for port 80:
>>
>>iptables -A INPUT -p TCP -s 0/0 -i $a --dport 80 -j ACCEPT
>
>
> Denne linje bruger du ikke til noget med mindre du læser websiderne
> fra firewallen.

og det gør jeg...


>
>
>>Så portforwarder jeg:
>>
>>iptables -t nat -A PREROUTING -p TCP -i $a --dport 80 -j DNAT
>>--to-destination $HTTP_IP
>
>
> Denne regel ser også fin ud, den bliver dog udført før din forwarding
> regel.
>
>
>>Det skal siges, at det virker fint med een forbindelse, men ikke to. Jeg
>>har prøvet at tcpdumpe; portforwardingen virker fint, men jeg tror ikke,
>>at pakkerne kommer ud gennem den rigtige gateway. Udefra kan man altså
>>ikke få kontakt til den interne webserver.
>
>
> Jeg tror også at det er forwarding ud af huset du mangler, måske noget
> i stil med:
>
> iptables -A FORWARD -o $a -i $INTIF -m state --state ESTABLISHED -j ACCEPT

Jeg har følgende regler for FORWARD-kæden senere i scriptet:

$IPTABLES -A FORWARD -i $a -o $INTIF -m state --state
ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i $INTIF -o $a -j ACCEPT

så det er nok ikke her, at problemet ligger.

>
> Det er dog ikke noget jeg har testet, da den firewall jeg arbejder med
> har åbent for stort set alt ud af huset så jeg har ikke prøvet dit
> problem.
>


Rasmus Bøg Hansen (14-11-2002)
Kommentar
Fra : Rasmus Bøg Hansen


Dato : 14-11-02 11:57

Christoffer Sørensen <christoffer-news@omk.dk> writes:

> iptables -A FORWARD -p TCP -i $a -o $INTIF -d $HTTP_IP --dport 80 -j ACCEPT

> iptables -A INPUT -p TCP -s 0/0 -i $a --dport 80 -j ACCEPT

Som Kim har nævnt er denne regel sandsynligvis overflødig.

> iptables -t nat -A PREROUTING -p TCP -i $a --dport 80 -j DNAT
> --to-destination $HTTP_IP
>
> Det skal siges, at det virker fint med een forbindelse, men ikke
> to. Jeg har prøvet at tcpdumpe; portforwardingen virker fint, men jeg
> tror ikke, at pakkerne kommer ud gennem den rigtige gateway. Udefra
> kan man altså ikke få kontakt til den interne webserver.

Husker du at sikre dig, at trafikken kommer ud af det samme interface,
som du modtog forbindelsen på? Du kan ikke modtage en forbindelse på
ADSL1 og sende svaret ud af ADSL2.

/Rasmus

--
-- [ Rasmus "Møffe" Bøg Hansen ] ---------------------------------------
There are three kinds of lies:
lies, politics and statistics.
----------------------------------[ moffe at amagerkollegiet dot dk ] --

Christoffer Sørensen (14-11-2002)
Kommentar
Fra : Christoffer Sørensen


Dato : 14-11-02 12:40



Rasmus Bøg Hansen wrote:
> Christoffer Sørensen <christoffer-news@omk.dk> writes:
>
>
>>iptables -A FORWARD -p TCP -i $a -o $INTIF -d $HTTP_IP --dport 80 -j ACCEPT
>
>
>>iptables -A INPUT -p TCP -s 0/0 -i $a --dport 80 -j ACCEPT
>
>
> Som Kim har nævnt er denne regel sandsynligvis overflødig.
>
>
>>iptables -t nat -A PREROUTING -p TCP -i $a --dport 80 -j DNAT
>>--to-destination $HTTP_IP
>>
>>Det skal siges, at det virker fint med een forbindelse, men ikke
>>to. Jeg har prøvet at tcpdumpe; portforwardingen virker fint, men jeg
>>tror ikke, at pakkerne kommer ud gennem den rigtige gateway. Udefra
>>kan man altså ikke få kontakt til den interne webserver.
>
>
> Husker du at sikre dig, at trafikken kommer ud af det samme interface,
> som du modtog forbindelsen på? Du kan ikke modtage en forbindelse på
> ADSL1 og sende svaret ud af ADSL2.

Det er rigtigt. Det er netop det, der er problemet. Jeg har anvendt
http://www.lartc.org/howto/lartc.rpdb.multiple-links.html#AEN261

(Split Access og Load Balancing) til at lade linuxkernen vælge gateway,
alt efter, fra hvilket interface en pakke kommer igennem:

----SPLIT ACCESS-----


    ip route add $P1_NET dev $IF1 src $IP1 table T1
    ip route add default via $P1 table T1
    ip route add $P2_NET dev $IF2 src $IP2 table T2
    ip route add default via $P2 table T2
    ip route add $P1_NET dev $IF1 src $IP1
    ip route add $P2_NET dev $IF2 src $IP2
    ip rule add from $IP1 table T1
    ip rule add from $IP2 table T2
   
--- LOAD BALANCING -----
    ip route add default scope global nexthop via $P1 dev $IF1 weight 1 \
    nexthop via $P2 dev $IF2 weight 1
   
Mine to routere har følgende IP-adresser:
10.10.10.3 = P1
192.168.1.1 = P2

P1_NET="10.0.0.0/8"
P2_NET="192.168.1.0/24"

IF1 = "eth0"
IF2 = "eth2"

Netkort-adresser:
IP1="10.10.10.2"
IP2="192.168.1.2"

Er der noget galt i denne opsætning ?

Evt. nogen, der har prøvet
http://www.linuxvirtualserver.org/~julian/nano.txt ?

Jeg har prøvet at patche 2.4.19 kernen, men den gad ikke at boote
efterfølgende (har patchet sourcen, kompilet, install'et).

Mvh

Christoffer


Rasmus Bøg Hansen (14-11-2002)
Kommentar
Fra : Rasmus Bøg Hansen


Dato : 14-11-02 13:16

Christoffer Sørensen <christoffer-news@omk.dk> writes:

> > Husker du at sikre dig, at trafikken kommer ud af det samme
> > interface,
> > som du modtog forbindelsen på? Du kan ikke modtage en forbindelse på
> > ADSL1 og sende svaret ud af ADSL2.
>
> Det er rigtigt. Det er netop det, der er problemet. Jeg har anvendt
> http://www.lartc.org/howto/lartc.rpdb.multiple-links.html#AEN261

Hmmm... Det burde jo gå automatisk ifølge ovenstående...

Jeg havde vist bare ikke læst ordentligt på tingene først

/Rasmus

--
-- [ Rasmus "Møffe" Bøg Hansen ] ---------------------------------------
I would never kill somebody
- unless they pissed me off!
-- Eric Cartman
----------------------------------[ moffe at amagerkollegiet dot dk ] --

Povl H. Pedersen (06-11-2002)
Kommentar
Fra : Povl H. Pedersen


Dato : 06-11-02 23:31

In article <aqc1hb$7in$1@sunsite.dk>, Michael Andreasen wrote:
> Hey.. Overvejde lidt om det er muligt at lave et entent simpelt eller
> avanceret bundling setup med 2 DSL'er vha. en linux/BSD boks?
>
> Scenarie:
>
> webserver med rimelig meget trafik, som jeg godt ville sprede over 2 linier.
> Jeg forstillede mig at gøre således
>
>| |
>| |
>| |
> ADSL1 ADSL2
>| |
> [router] (m. 3 NIC's)
> | |
> webserver
> |
> LAN
>
> Webserver delen kunne jeg måske (jeg tror) nok løse ved at lave en
> round-robin på A-record. Således at hver ip for ca. lige mange
> forspørgelser. Jeg formoder det ikke bliver et problem, eller gør det? Vil
> linux altid forsøge at forwarde gennem det ene interface (f.eks. eth0), nej
> vel?

Du kunne simpelt lave load sharing på udgående trafik på denne måde:

Lav statistik på hvem der besøger dig.
Lav routetabeller så du dirigerer trafik til forskellige steder.
Drop eksempelvis din default route og lave en
route add 0.0.0.0 netmask 128.0.0.0 gw gw1
route add 128.0.0.0 netmask 128.0.0.0 gw gw2

Ovenstående antager, at du har 2 forskellige default gateways.

Alternativet er, at du bruger iptables. Så kan du f.eks.
route data retur baseret på eksempelvis destination ports
i den anden ende.

Eller du kan bruge limit og sige de første 20 pakker/sekund skal
sendes til det ene interface, og resten til det andet.

> Nogen ideér?

Ovenstående kan tunes til at virke rimeligt, og er hurtigt at
implementere. Men det er et "hack" og ikke en pæn løsning.

> Og mht til LAN siden er jeg temmelig blankt.. Nogen der har nogle links
> eller nogle terier til hvordan man kan gøre?

Det er trivielt at route lan pakker gennem len Linux box, de
kan også følge reglerne. og du kan muligvis også bruge Limit
til at lave load-fallover der. Eller bare begrænse deres båndbredde.

> Input, links og teorier vil være meget velkomne.

Søg på iptables.

Søg
Reklame
Statistik
Spørgsmål : 177554
Tips : 31968
Nyheder : 719565
Indlæg : 6408852
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste