meerdere default routes?

Pagina: 1
Acties:

  • robbertb
  • Registratie: September 2000
  • Niet online
Ik vraag me af of iemand al weet hoe je meerdere default routes insteld onder linux, zodat je dus meerdere verbindingen naar buiten kan instellen, en die kan door sturen naar bepaalde clients op het lokale netwerk.

Ik heb 3 internet ips, een server met 4 netwerkkaarten, en 4 clients. Bedoeling is dat de 3 internet ips op 3 verschillende netwerkkaarten staan in de server. en de 4e netwerkkaart krijgt lokaal ip adres, die in de zelfde hub zit als de 4 clients.

Nu is het bedoeling dat client 1 via internetip1 internet krijgt,
client 2 via internetip2 internet krijgt,
en client 3 en 4 internetip3 delen.. lokaal hebben die pcs dus gewoon een ip in de 192.168.0.x range, alleen hebben ze alleen een andere gateway ip (de verschillende gateway ips wijzen naar zelfde nic, maar met meerdere ips op zelfdde nic)..

je kan nu wel gewoon route add doen, alleen onthoudt hij alleen de laatste route dus daar heb ik niet zo veel aan.
Ik gebruik slackware met kernel 2.2.19 en deel internet met ipchains. Hopelijk kan iemand me zeggen hoe ik dit moet doen. Ik heb al wel wat gelezen over advanced routing, met route2 ofzo, maar dat is zo groot document en snap niet echt hoe het werkt.

Verwijderd

code:
1
2
/sbin/ip ro add/replace default nexthop via $gateway3 dev eth3 \
nexthop via $gateway1 dev eth1 nexthop via $gateway2 dev eth2

Dit zet een multipath default route op. Die kun je dan gebruiken, maar daar moet je dan nog wel iets voor doen. Ik gebruik aparte routingtables die, op basis van de waarde van een firewallmark met iptables toegekend, naar een verschillende routingtable met een andere default route verwijzen. Mijn firewallmarks zijn op basis van mac-adressen van de machine die naar buiten wil.

Dus mac-adres 1 krijgt een firewallmark 1 die weer verwijst naar routingtabel 1 met default route 1. Mac-adres 2 krijgt een firewallmark 2 die weer verwijst naar routingtabel 2 met default route 2, etc.

Je kunt op www.lartc.org vinden in de HOWTO hoe dat gaat. Maar zo heb je een idee.

  • The Jester
  • Registratie: Januari 2000
  • Laatst online: 26-11-2024

The Jester

The fool escaped from paradise

Of je doet een route add en zet verschillende metrics, voor de verschillende routes.
(Niet aan te raden indien je wilt load-balancen, overigens ;) )

As you grow up and leave the playground where you kissed your prince and found your frog...


  • igmar
  • Registratie: April 2000
  • Laatst online: 12-05 15:46

igmar

ISO20022

robbertb schreef op 27 januari 2003 @ 00:42:
Ik vraag me af of iemand al weet hoe je meerdere default routes insteld onder linux, zodat je dus meerdere verbindingen naar buiten kan instellen, en die kan door sturen naar bepaalde clients op het lokale netwerk.

Ik heb 3 internet ips, een server met 4 netwerkkaarten, en 4 clients. Bedoeling is dat de 3 internet ips op 3 verschillende netwerkkaarten staan in de server. en de 4e netwerkkaart krijgt lokaal ip adres, die in de zelfde hub zit als de 4 clients.

Nu is het bedoeling dat client 1 via internetip1 internet krijgt,
client 2 via internetip2 internet krijgt,
en client 3 en 4 internetip3 delen.. lokaal hebben die pcs dus gewoon een ip in de 192.168.0.x range, alleen hebben ze alleen een andere gateway ip (de verschillende gateway ips wijzen naar zelfde nic, maar met meerdere ips op zelfdde nic)..
In /etc/iproute2/rt_tables

code:
1
2
201 client1
202 client2


iptables code

code:
1
2
3
4
5
6
7
iptables -t mangle -A PREROUTING -s 10.1.0.0/16 -j MARK --set-mark 1
iptables -t mangle -A PREROUTING -s 10.2.0.0/16 -j MARK --set-mark 2

ip rule add fwmark 1 table client1
ip rule add fwmark 2 table client2
ip route add default via 192.168.1.1 dev eth0 table client1
ip route add default via 192.168.1.2 dev eth0 table client2


De client1 is in de iptables rules ook direct te vervangen door de directe waarden, maar ik vind de namen handiger :)

En ja, dit kun je vergeten met een 2.2 kernel. Gewoon upgraden naar 2.4, geen enkele reden aanwezig om een 2.2 kernel te draaien.