L2 redundantsus
Sisukord
Sissejuhatus
Käesolevas tekstis kirjeldatakse tulemüüride ja kommutaatorite kasutamist eesmärgiga tekitada võrgu st L2 tasemel kõrgkäideldavus. Praktiliselt tähendab see nt seda, et üks kahest switchist (või ühendus switchist tulemüüriga) võib rikneda ning allesjäänud switchi küljes olevad teenused töötavad edasi. Käsitletakse kahte juhtumit
- kasutada on üks tulemüür ning kaks kommutaatorit
- kasutada on kaks tulemüüri ning kaks kommutaatorit
Käesolevas tekstis käsitletakse nö kõige üldkasutavamat juhtumit, switchid ei ole stackitud st pole võimalik kasutada LACP protokolli. Switchid on ühendatud tavalise kaabliga tavaliste portide abil, töötab tavaline STP protokoll vms.
Üks tulemüür ja kaks kommutaatorit
Tööpõhimõte
- kasutatakse ühte tulemüüri
- ei kasutata VLAN seadmeid, st kõik liiklus toimub ühes ja samas VLANis
- ei kasutata carp seadmeid
teenusepakkuja juurde ... | ___________|___________ | | | lüliti | |_______________________| | em0 | ___|___ | | | TM1 | |_______| em2 | | em1 <---- trunk0 | \ | \ | \ | | | | | | | | | | _|________ ___|______ | | | | | lüliti1 |------| lüliti2 | |__________| link |__________| | | | ________ | eth0 | | | | eth1 |---| server1 |---| bridge0 või bond0 | |_________| | | | | _________ | eth0 | | | | eth1 |---| server2 |---| bridge0 või bond0 | |_________| | | | ...
kus
- tulemüüri sisemistest seadmetest em1 ja em2 on moodustatud failover režiimis töötav trunk seade trunk0
OpenBSD tulemüüri seadistamine
Trunk seade kasutab kahte füüsilist seadet re1 ja re2
# cat /etc/hostname.re1 up
# cat /etc/hostname.re2 up
ning moodustatakse trunk seade
# cat /etc/hostname.trunk0 up trunkproto failover trunkport re1 trunkport re2
Trunk seadmele moodustatakse vlan'id
# cat /etc/hostname.vlan10 inet 10.0.0.1 255.255.255.0 NONE vlan 10 vlandev trunk0 group seadmed description kohtvork
# cat /etc/hostname.vlan509 inet 10.0.9.1 255.255.255.0 NONE vlan 509 vlandev trunk0 description tugiteenused
Vastavad switchi pordid on seadistatud tavaliselt viisil lisama väljuvatele pakettidele vlan silte. 'failover' parameetri kasutamine tähendab, et switchid ei ole stackitavad vms, kõige tavalisemad omavahel otse ühendatud kaabliga kaks switchi ja üle ühenduse liiguvad samuti paketid, millel on küljes vlan sildid.
Tulemus paistab selline
trunk0: flags=28843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,NOINET6> mtu 1500 lladdr 64:66:b3:03:6f:1f priority: 0 trunk: trunkproto failover trunkport re2 trunkport re1 master,active groups: trunk media: Ethernet autoselect status: active vlan10: flags=28843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,NOINET6> mtu 1500 lladdr 64:66:b3:03:6f:1f description: kohtvork priority: 0 vlan: 10 parent interface: trunk0 groups: vlan seadmed status: active inet 10.0.0.1 netmask 0xffffff00 broadcast 10.0.0.255 vlan509: flags=28843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,NOINET6> mtu 1500 lladdr 64:66:b3:03:6f:1f description: tugiteenused priority: 0 vlan: 509 parent interface: trunk0 groups: vlan status: active inet 10.0.9.1 netmask 0xffffff00 broadcast 10.0.9.255
Kommutaatori seadistamine
TODO
Kasutamine
TODO
Kaks tulemüüri ja kaks kommutaatorit
Tööpõhimõte
Olgu eesmärgiks suurendada tulemüüride ja serverite vahelise L2 kihi ehk lüliti (ingl. k. switch) redundantsust. Üks võimalus seda saavutada oleks nt sellise asjakorraldusega
teenusepakkuja juurde ... | ___________|___________ | | | lüliti | |_______________________| ... | | em0 | | em0 em0 | carp0 | em0 ___|___ ___|___ ___|___ ___|___ | | | | | | | | | TM1 | | TM2 | | TM1 | | TM2 | |_______| |_______| |_______| |_______| em2 | | em1 em2 | | em1 | | | \ / | em2 | em1 em2 | em01 | \ | | / \ | trunk0 trunk0 | | | | | | | | vlan101, vlan102 vlan101, vlan102 | | | | | | | | carp101, carp102 | | | | _|___|____ ___|___|__ ... | | | | | lüliti1 |------| lüliti2 | |__________| link |__________| | | | ________ | eth0 | | | | eth1 (VLAN101) |---| server1 |---| bridge0 või bond0 | |_________| | | | | _________ | eth0 | | | | eth1 (VLAN102) |---| server2 |---| bridge0 või bond0 | |_________| | | | ...
kus
- TM1, TM2 - tulemüür üks ja tulemüür kaks, samaaegselt läbib liiklus ainult ühte või teist tulemüüri; ja need episoodid, kus liiklus käib läbi ühte või teist tulemüüri ei kesta reeglina millisekundite kaupa, kord üks kord teine, vaid nt kaks kaks nädalat, st kuni ühe tulemüüriga toimub rike või nt administratiivsetel põhjusel lülitatakse liiklus teisele ümber
- tulemüüride ees oleva lüliti redundantsusega antud juhtumil ei tegelda
- lüliti1, lüliti2 - kaks lülitit, millest peab samaaegselt olema töökorras vähemalt üks
- server1, server2 - kaks serverit, tööks võib olla piisav, et ainult üks võrguseade on korras; serverid asuvad erinevates VLANides
- tulemüüride em1 ja em2 seadmed on ühendatud erinevate lülititega ja neist on moodustatud failover trunk'id
- link lülitite vahel on vajalik nt juhtumiks, kui TM1 on aktiivne ning tema em2 seade on aktiivne, mõlemad lülitid töötavad ja serveri aktiivne seade on eth1; sel juhul käib serveri ja tulemüüri vaheline liiklus läbi kahe lüliti
- kasutatavad lülitid võivad olla täiesti nö tavalised, juhul kui kasutatatakse VLANisid, siis peavad lülitid ilmselt nende kasutamist toetama, aga lülitid ei pea olema stackitavad vms
- paremal joonisel on selguse eesmärgil esitatud tulemüüride sisemistele füüsilistele seadmetele moodustatud loogilised seadmed kihtide kaupa
OpenBSD tulemüüri seadistamine
Mõlema OpenBSD tulemüüri seadmetest em1 ja em2 tuleb moodustada failover režiimis töötav trunk0 seade öeldes
# ifconfig trunk0 trunkport em1 trunkport em2 trunkproto failover
ehk seadistusfailis
# cat /etc/hostname.trunk0 trunkport em1 trunkport em2 trunkproto failover
ning tekib selline seade
# ifconfig trunk0 trunk0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 lladdr 00:0c:42:07:1a:45 priority: 0 trunk: trunkproto failover trunkport em2 trunkport em1 master,active groups: trunk media: Ethernet autoselect status: active inet 10.100.0.210 netmask 0xffffff00 broadcast 10.100.0.255 inet6 fe80::20c:42ff:fe07:1a45%trunk0 prefixlen 64 scopeid 0x1e
Seejärel tuleb trunk seadmetele seadistada vlannid öeldes tulemüür ühes
# ifconfig vlan101 vlandev trunk0 10.1.1.2/24 # ifconfig vlan102 vlandev trunk0 10.1.2.2/24
ja tulemüür kahes
# ifconfig vlan101 vlandev trunk0 10.1.1.3/24 # ifconfig vlan102 vlandev trunk0 10.1.2.3/24
Ning moodustada carp seadmed, nendega seotud ip aadressi kasutavad serverid vaikelüüsina, öeldes tulemüür ühes
# ifconfig carp101 vhid 101 carpdev vlan101 10.1.1.1/24 # ifconfig carp102 vhid 102 carpdev vlan102 10.1.2.1/24
ja tulemüür kahes
# ifconfig carp101 vhid 101 carpdev vlan101 advskew 100 10.1.1.1/24 # ifconfig carp102 vhid 102 carpdev vlan102 advskew 100 10.1.2.1/24
Kommutaatori seadistamine
TODO
Kasutamine
TODO
Serverite seadistamine
Serverite all peetakse silmas arvuteid, mille peal töötavate teenuste kättesaadavuse nimel üldse tegeldakse tulemüüride ja kommutaatorite kõrgkäideldavusega.
Tööpõhimõte
TODO
Debian GNU/Linux
Bonding seadme moodustamiseks sobib öelda
# modprobe bonding mode=active-backup miimon=100 # ifconfig bond0 10.100.0.200 netmask 255.255.255.0 # ifenslave bond0 eth0 eth1
tulemusena tekib selline bonding seade
# cat /proc/net/bonding/bond0 Ethernet Channel Bonding Driver: v3.2.5 (March 21, 2008) Bonding Mode: fault-tolerance (active-backup) Primary Slave: None Currently Active Slave: eth4 MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: eth4 MII Status: up Link Failure Count: 1 Permanent HW addr: 00:06:4f:63:e3:d7 Slave Interface: eth5 MII Status: down Link Failure Count: 1 Permanent HW addr: 00:06:4f:32:00:35
Alternatiiviks on kasutada silda (ingl. k. bridge)
# brctl addbr br0 # brctl addif br0 eth4 # brctl addif br0 eth5 # ifconfig eth4 up # ifconfig eth5 up # ifconfig br0 10.100.0.200 netmask 255.255.255.0
FreeBSD
TODO
L2 redundantsuse kasutamine
- tulemusena peab süsteem jääma käima kui ühendada lahti kummagi switchi küljest üks kaabel, kusjuures ükskõik kumb
- kui tulemüüris aktiivse master võrguseadme kaabel eemaldada ning tagasi ühendada, siis tekib liiklus sellele seadmele tagasi
- kui Linux serveris aktiivsel võrguseadmel kaabel eemaldada ning tagasi ühendada, siis jääb liiklus sellele seadmele kus ta viimati töötas
- Linuxi silla kasutamisel käib liiklus üle ühe või üle teise võrguseadme