Re: [rlug] iproute2 doua rute

2011-05-08 Fir de Conversatie andrei . staicu
> 2011/5/7 
>
>> [...]
>> Nu, nu vreau balansare. Vreau sa ridic doua tunele, avand capetele in
>> 192.168.1.1 cu 10.0.0.1, respectiv in 192.168.2.1 cu 10.0.0.1
>>
>>
> Ah, in cazul asta poti sa folosesti "src" si "from" :)
> adica source-routing.
>
> Un mini-howto:
> 1. adaugi 2 routing-tables noi-noute:
> echo "200  static-eth0" >>/etc/iproute2/rt_tables
> echo "201  static-eth1" >>/etc/iproute2/rt_tables
>
> 2. populezi tabelele cu rutele dorite:
> ip route add 10.0.0.0/30 via 192.168.0.2 table static-eth0
> ip route add 10.0.0.0/30 via 192.168.1.2 table static-eth1
>
> 3. adaugi regulile de RPDB  (http://linux-ip.net/html/routing-rpdb.html)
> ip rule add from 192.168.0.1 table static-eth0
> ip rule add from 192.168.1.1 table static-eth1
>
> 4. Ca sa ridici ambele tunele, trebuie sa ai umpic de suport si din partea
> aplicatiei. Adica sa suporte echivalentul lui "ping -I", si anume
> specificarea IP-ului cu care sa origineze pachetul / conexiunea.
> Dupa ce aplicatia construieste socketul cu source_ip care vrei tu,
> kernelul
> va avea grija sa selecteze routing-table-u corect (si implicit ruta
> corecta)
> in functie de regulile de mai sus.
>
> 5. Daca aplicatia nu-ti suporta selectarea manuala de source_ip, tot poti
> sa
> rezolvi. Pur si simplu pui aplicatia sa bind-uie pe * si initiezi din
> partea
> cealalta cele 2 conexiuni, spre ambele IP-uri.
>
> HTH
>
> --
> www.flo.ro
> ___
> RLUG mailing list
> RLUG@lists.lug.ro
> http://lists.lug.ro/mailman/listinfo/rlug
>

Multzam fain, functioneste.
Ma jucasem si eu cu src/from/rules, dar nu aveam o structura.


___
RLUG mailing list
RLUG@lists.lug.ro
http://lists.lug.ro/mailman/listinfo/rlug


Re: [rlug] iproute2 doua rute

2011-05-07 Fir de Conversatie Tudor Gheorghe
On 05/07/2011 07:50 PM, andrei.sta...@ipso.ro wrote:
> Salutare,
>
> Nu reusesc sa-i dau de cap unei chestii, desi am sapat ceva dupa ea:
> Doua placi de retea, eth0 192.168.0.1/30 cu gw .2, eth1 192.168.1.1/30 cu
> gw .2
> For the sake of argument, nu exista ruta default.
> Vreau sa adaug cate o ruta catre subnet-ul 10.0.0.0/30 prin fiecare placa.
>
> root@S1:~# ip route add 10.0.0.0/30 via 192.168.0.2
> root@S1:~# ip route add 10.0.0.0/30 via 192.168.1.2
> RTNETLINK answers: File exists
>
> Deci a doua ruta nu o adauga.
> Am incercat si cu src si cu from si cu tabele diferite si ip rule, dar
> ceva nu iese undeva.
>
ip route add 10.0.0.0/30 scope global nexthop via 192.168.0.2 dev eth0 
weight 1 nexthop via 192.168.1.2 dev eth1 weight 1.

Asta ar fi in terorie.
In practica, rutele sunt cache-uite, sau cum s-o traduce asta, si pt 
aceeasi ruta vei avea aceeasi cale. Nu stiu si nici nu am chef sa caut 
acum, daca se poate dezactiva cacheingul asta si cu ce efecte negative.

-- 
Teddy
___
RLUG mailing list
RLUG@lists.lug.ro
http://lists.lug.ro/mailman/listinfo/rlug


Re: [rlug] iproute2 doua rute

2011-05-07 Fir de Conversatie Florin Popovici
2011/5/7 

> [...]
> Nu, nu vreau balansare. Vreau sa ridic doua tunele, avand capetele in
> 192.168.1.1 cu 10.0.0.1, respectiv in 192.168.2.1 cu 10.0.0.1
>
>
Ah, in cazul asta poti sa folosesti "src" si "from" :)
adica source-routing.

Un mini-howto:
1. adaugi 2 routing-tables noi-noute:
echo "200  static-eth0" >>/etc/iproute2/rt_tables
echo "201  static-eth1" >>/etc/iproute2/rt_tables

2. populezi tabelele cu rutele dorite:
ip route add 10.0.0.0/30 via 192.168.0.2 table static-eth0
ip route add 10.0.0.0/30 via 192.168.1.2 table static-eth1

3. adaugi regulile de RPDB  (http://linux-ip.net/html/routing-rpdb.html)
ip rule add from 192.168.0.1 table static-eth0
ip rule add from 192.168.1.1 table static-eth1

4. Ca sa ridici ambele tunele, trebuie sa ai umpic de suport si din partea
aplicatiei. Adica sa suporte echivalentul lui "ping -I", si anume
specificarea IP-ului cu care sa origineze pachetul / conexiunea.
Dupa ce aplicatia construieste socketul cu source_ip care vrei tu, kernelul
va avea grija sa selecteze routing-table-u corect (si implicit ruta corecta)
in functie de regulile de mai sus.

5. Daca aplicatia nu-ti suporta selectarea manuala de source_ip, tot poti sa
rezolvi. Pur si simplu pui aplicatia sa bind-uie pe * si initiezi din partea
cealalta cele 2 conexiuni, spre ambele IP-uri.

HTH

-- 
www.flo.ro
___
RLUG mailing list
RLUG@lists.lug.ro
http://lists.lug.ro/mailman/listinfo/rlug


Re: [rlug] iproute2 doua rute

2011-05-07 Fir de Conversatie andrei . staicu
> 2011/5/7 
>
>> Salutare,
>>
>> Nu reusesc sa-i dau de cap unei chestii, desi am sapat ceva dupa ea:
>> Doua placi de retea, eth0 192.168.0.1/30 cu gw .2, eth1 192.168.1.1/30
>> cu
>> gw .2
>> For the sake of argument, nu exista ruta default.
>> Vreau sa adaug cate o ruta catre subnet-ul 10.0.0.0/30 prin fiecare
>> placa.
>>
>
> E cam prea general ce zici tu. In zona asta lucrurile sunt complexe. Ar fi
> bine sa-ti definesti cat mai exact ce vrei sa se intample.
>
> Probabil vrei "equal cost multipath routing" aka ECMP. Pentru asta trebuie
> sa ai configurat kernelul (CONFIG_IP_ROUTE_MULTIPATH), vezi ca e setare
> separata daca vrei si route-caching sa suporte asta.
> Daca ai asta, poti sa adaugi rute "egale" astfel:
> ip route add $dest nexthop via $gw1 nexthop via $gw2
>
> Daca ai si quagga, AFAIK trebe compilat manual cu un parametru ca sa
> suporte
> rute ECMP.
>
> Be advised, "balansarea" functioneaza per-connection, nu per-packet.
>
>
>>
>> root@S1:~# ip route add 10.0.0.0/30 via 192.168.0.2
>> root@S1:~# ip route add 10.0.0.0/30 via 192.168.1.2
>> RTNETLINK answers: File exists
>>
>> Deci a doua ruta nu o adauga.
>> Am incercat si cu src si cu from si cu tabele diferite si ip rule, dar
>> ceva nu iese undeva.
>>
>>
> Auch. N-ai ce sa cauti la src si la from, alea fac altceva.
>
> A doua comanda iti da eroare pentru ca tu adaugi 2 rute, si te lasa. De
> fapt, tu ai nevoie de o singura ruta, mai speciala (multipath equal-cost).
> Vezi comanda ce-am zis-o mai sus.
>
> Te sfatuiesc calduros sa studiezi pana intelegi mai bine cum functioneaza
> routingu in kernel, altfel n-o sa reusesti prea multe :)
>
> Then again, s-ar putea sa nu vrei ECMP. Ala e la layer3.
> Daca ai 2 placi conectate in acelasi segment si vrei sa faci
> load-balancing
> + failover intre ele (adica la layer2), atunci ai nevoie de "bonding" sau
> "port-trunking".
>
Nu, nu vreau balansare. Vreau sa ridic doua tunele, avand capetele in
192.168.1.1 cu 10.0.0.1, respectiv in 192.168.2.1 cu 10.0.0.1

___
RLUG mailing list
RLUG@lists.lug.ro
http://lists.lug.ro/mailman/listinfo/rlug


Re: [rlug] iproute2 doua rute

2011-05-07 Fir de Conversatie Florin Popovici
2011/5/7 Florin Popovici 

> [...]
>
> A doua comanda iti da eroare pentru ca tu adaugi 2 rute, si te lasa. De
> fapt, tu ai nevoie de o singura ruta,
>

si NU te lasa, voiam sa zic.

-- 
www.flo.ro
___
RLUG mailing list
RLUG@lists.lug.ro
http://lists.lug.ro/mailman/listinfo/rlug


Re: [rlug] iproute2 doua rute

2011-05-07 Fir de Conversatie andrei . staicu
> On 07.05.2011 19:50, andrei.sta...@ipso.ro wrote:
>> Salutare,
>>
>> Nu reusesc sa-i dau de cap unei chestii, desi am sapat ceva dupa ea:
>> Doua placi de retea, eth0 192.168.0.1/30 cu gw .2, eth1 192.168.1.1/30
>> cu
>> gw .2
>> For the sake of argument, nu exista ruta default.
>> Vreau sa adaug cate o ruta catre subnet-ul 10.0.0.0/30 prin fiecare
>> placa.
>>
>> root@S1:~# ip route add 10.0.0.0/30 via 192.168.0.2
>> root@S1:~# ip route add 10.0.0.0/30 via 192.168.1.2
>> RTNETLINK answers: File exists
>>
>> Deci a doua ruta nu o adauga.
>> Am incercat si cu src si cu from si cu tabele diferite si ip rule, dar
>> ceva nu iese undeva.
>>
>> Ma puteti ajuta cu chestia asta?
>>
>
> Andrei, ce vrei sa faci de fapt?
> nu ti se pare normal ca atunci cand esti cu masina la o intersectie,
> unde scrie 'catre Brasov' prin ambele rute, sa nu poti s-o iei simultan
> pe ambele cai?
>
Ideea e ca, atunci cand pleaca pachetele de pe anumita interfata spre
subnetul ala, sa existe ruta spre ea.

Cum ar fi, sa mearga atat
ping -I eth0 10.0.0.1
cat si
ping -I eth1 10.0.0.1
Deci nu simultan.

___
RLUG mailing list
RLUG@lists.lug.ro
http://lists.lug.ro/mailman/listinfo/rlug


Re: [rlug] iproute2 doua rute

2011-05-07 Fir de Conversatie Florin Popovici
2011/5/7 

> Salutare,
>
> Nu reusesc sa-i dau de cap unei chestii, desi am sapat ceva dupa ea:
> Doua placi de retea, eth0 192.168.0.1/30 cu gw .2, eth1 192.168.1.1/30 cu
> gw .2
> For the sake of argument, nu exista ruta default.
> Vreau sa adaug cate o ruta catre subnet-ul 10.0.0.0/30 prin fiecare placa.
>

E cam prea general ce zici tu. In zona asta lucrurile sunt complexe. Ar fi
bine sa-ti definesti cat mai exact ce vrei sa se intample.

Probabil vrei "equal cost multipath routing" aka ECMP. Pentru asta trebuie
sa ai configurat kernelul (CONFIG_IP_ROUTE_MULTIPATH), vezi ca e setare
separata daca vrei si route-caching sa suporte asta.
Daca ai asta, poti sa adaugi rute "egale" astfel:
ip route add $dest nexthop via $gw1 nexthop via $gw2

Daca ai si quagga, AFAIK trebe compilat manual cu un parametru ca sa suporte
rute ECMP.

Be advised, "balansarea" functioneaza per-connection, nu per-packet.


>
> root@S1:~# ip route add 10.0.0.0/30 via 192.168.0.2
> root@S1:~# ip route add 10.0.0.0/30 via 192.168.1.2
> RTNETLINK answers: File exists
>
> Deci a doua ruta nu o adauga.
> Am incercat si cu src si cu from si cu tabele diferite si ip rule, dar
> ceva nu iese undeva.
>
>
Auch. N-ai ce sa cauti la src si la from, alea fac altceva.

A doua comanda iti da eroare pentru ca tu adaugi 2 rute, si te lasa. De
fapt, tu ai nevoie de o singura ruta, mai speciala (multipath equal-cost).
Vezi comanda ce-am zis-o mai sus.

Te sfatuiesc calduros sa studiezi pana intelegi mai bine cum functioneaza
routingu in kernel, altfel n-o sa reusesti prea multe :)

Then again, s-ar putea sa nu vrei ECMP. Ala e la layer3.
Daca ai 2 placi conectate in acelasi segment si vrei sa faci load-balancing
+ failover intre ele (adica la layer2), atunci ai nevoie de "bonding" sau
"port-trunking".

-- 
www.flo.ro
___
RLUG mailing list
RLUG@lists.lug.ro
http://lists.lug.ro/mailman/listinfo/rlug


Re: [rlug] iproute2 doua rute

2011-05-07 Fir de Conversatie Vlad Georgescu
On 07.05.2011 19:50, andrei.sta...@ipso.ro wrote:
> Salutare,
>
> Nu reusesc sa-i dau de cap unei chestii, desi am sapat ceva dupa ea:
> Doua placi de retea, eth0 192.168.0.1/30 cu gw .2, eth1 192.168.1.1/30 cu
> gw .2
> For the sake of argument, nu exista ruta default.
> Vreau sa adaug cate o ruta catre subnet-ul 10.0.0.0/30 prin fiecare placa.
>
> root@S1:~# ip route add 10.0.0.0/30 via 192.168.0.2
> root@S1:~# ip route add 10.0.0.0/30 via 192.168.1.2
> RTNETLINK answers: File exists
>
> Deci a doua ruta nu o adauga.
> Am incercat si cu src si cu from si cu tabele diferite si ip rule, dar
> ceva nu iese undeva.
>
> Ma puteti ajuta cu chestia asta?
>

Andrei, ce vrei sa faci de fapt?
nu ti se pare normal ca atunci cand esti cu masina la o intersectie, 
unde scrie 'catre Brasov' prin ambele rute, sa nu poti s-o iei simultan 
pe ambele cai?

___
RLUG mailing list
RLUG@lists.lug.ro
http://lists.lug.ro/mailman/listinfo/rlug


[rlug] iproute2 doua rute

2011-05-07 Fir de Conversatie andrei . staicu
Salutare,

Nu reusesc sa-i dau de cap unei chestii, desi am sapat ceva dupa ea:
Doua placi de retea, eth0 192.168.0.1/30 cu gw .2, eth1 192.168.1.1/30 cu
gw .2
For the sake of argument, nu exista ruta default.
Vreau sa adaug cate o ruta catre subnet-ul 10.0.0.0/30 prin fiecare placa.

root@S1:~# ip route add 10.0.0.0/30 via 192.168.0.2
root@S1:~# ip route add 10.0.0.0/30 via 192.168.1.2
RTNETLINK answers: File exists

Deci a doua ruta nu o adauga.
Am incercat si cu src si cu from si cu tabele diferite si ip rule, dar
ceva nu iese undeva.

Ma puteti ajuta cu chestia asta?

Merci.

___
RLUG mailing list
RLUG@lists.lug.ro
http://lists.lug.ro/mailman/listinfo/rlug