Multihoming ehk trikid ruutinguga
Toores. Ehk seda pala võib täiendada.
Kõigepealt mõned lihtsad asjad. Esiteks vaikeruutingu seadistamine
# ip route add default via 192.168.1.254
Ja selle kustutamine
# ip route delete 192.168.1.0/24 dev eth0
Ning ruutingute vaatamine
# ip route show
Multihoming võimaldab kahe võrguühenduse korral hoida kasutajatele interneti töötavana ka ühe võrguühenduse äralangemisel.
/etc/network/interface
#Loopback auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet static address 192.168.2.100 netmask 255.255.255.0 metric 100 gateway 192.168.2.1 auto eth1 iface eth1 inet static address 192.168.1.100 netmask 255.255.255.0 metric 200 gateway 192.168.1.1
- Metric : The distance to the target (usually counted in hops). It is not used by recent kernels, but may be needed by routing daemons.
Ehk siis nagu arusaan peaks valitama esmalt lühima metricu väärtusega võrguseade.
Ehk siis kui eth0 peaks maha kukkuma võtab eth1 töö juba üle (kasutades metric parameetrit) Tõhusam oleks aga seadistada lisaks vastav routingu reegel ip route abil
# ip route append default scope global nexthop via 192.168.2.1 dev eth0 weight 5 nexthop via 192.168.1.1 dev eth1 weight 1
Soovides näiteks hoida serveris oleva teenuse pidevalt kättesaadava üle mitme võrguühenduse.
Tavaliselt on Linuxis vaid üks default route kirje. See näitab, et kuhu tuleb liiklust suunata.
Tegelikult on linuxis mitmeid routing tabeleid, see mida vaikimisi kasutatakse on "main". Süsteemis leiduvad aga lisaks ka tabelid "local" ning "default"
ehitaja ~ # ip rule 0: from all lookup local 32766: from all lookup main 32767: from all lookup default
Lisaks on igal tabelil veel järekorranumber ja tingimuste seadistamise võimalus. Nn klassikaline routing vaatab ainult paketi sihtaadressi. lisaks sellele on võimalik vaadata aga ka veel lähteaadressi ning sisenevat-väljuvat liidest.
Neid vaikeruutingu tabeleid näeb ja saab seadistada failist /etc/iproute2/rt_tables
Kaks isp ühendust, näite 2
Masinal on 2 võrgukaarti eth0 ja eth1 ning kummagil on oma IP ja erinev default route. Näiteks on mõlemad ühendatud erineva teenusepakkuja ühenduse külge
- Võrguliides eth0 on ühendatud esimese teenusepakkuja külge ning omab ip aadressi 192.168.1.4/255 ja ruuterit 192.168.1.1
- Võrguliides eth1 on ühendatud teise teenusepakkuja külge ning omab ip aadressi 192.168.2.4/255 ja ruuterit 192.168.2.1
Tingimuseks on, et server peab olema kättesaadav mõlema ISP kaudu
Lisame faili /etc/iproute2/rt_tables kaks uut rida, ehk loome uued ruutingutabellid
1000 teenusepakkuja1 1001 teenusepakkuja2
Lisame tabelisse vaikeruutingu kirjed
# ip route add default via 192.168.1.1 table teenusepakkuja1 # ip route add default via 192.168.2.1 table teeenusepakkuja2
Ja reeglid:
# ip rule add from 192.168.1.4 table teenusepakkuja1 # ip rule add from 192.168.2.4 table teenusepakkuja2
Nüüd kui ühendus tuleb 192.168.1.3 aadressile saadetakse vastus läbi 192.168.1.1 ruuteri. Kui aga 192.168.2.3 peale vastatakse 192.168.2.1 kaudu.
http://lartc.org/howto/lartc.rpdb.multiple-links.html
http://www.mmacleod.ca/blog/2011/06/source-based-routing-with-freebsd-using-multiple-routing-table/
http://blog.ijun.org/2011/10/multiple-default-routes-gateways-with.html