Re: [rlug] iproute2 doua rute
> 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
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/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/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/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
> 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/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
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
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