Multihoming ehk trikid ruutinguga

Allikas: Kuutõrvaja
Redaktsioon seisuga 11. september 2012, kell 12:05 kasutajalt Jj (arutelu | kaastöö)
                                        Roheline.jpg Toores. Ehk seda pala võib täiendada.

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.

neit vaikeruutingu tabeleid näeb ja saab seadistada failist /etc/iproute2/rt_tables

Masinal on 2 võrgukaarti eth1 ja eth2 ning kummagil on oma IP ja erinev default route. Näiteks on mõlemad ühendatud erineva teenusepakkuja ühenduse külge

Ühendus läbi kahe isp näide 1

Kaks IP aadressi kahe erineva GW läbi ehk erinevatest võrkudest

Ip aadressiks mille lisame 193.40.0.75 netmask 255.255.255.240 ruuter on aadressil 193.40.0.65 ja võrk 193.40.0.0/28

Anname võrguseadmele aadressi

ifconfig eth2 193.40.0.75 netmask 255.255.255.240

Ning seadistame ruutingud

ip route add 193.40.0.0/28 dev eth2 src 193.40.0.75 table admin
ip route add default via 193.40.0.65 dev eth2 table admin
ip rule add from 193.40.0.75/32 table admin
ip rule add to 193.40.0.75/32 table admin

Nüüd kui ühendus tuleb 193.40.0.75 aadressile saadetakse vastus läbi 193.40.0.65 ruuteri. Kui aga 193.40.0.5 peale vastatakse 193.40.0.1 kaudu.

Kaks isp ühendust, näite 2

  • 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

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

Kui ühendus tuleb internetist esimese võrguühenduse kaudu kaudu saadetakse vastus aadressilt 192.168.1.4 (ehk vaadatakse tabelit teenusepakkuja1)

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

http://www.daemonforums.org/showthread.php?t=4610