L2 redundantsus

Allikas: Kuutõrvaja

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

Kasulikud lisamaterjalid