MariaDB Galera cluster solution

MariaDB Galera cluster solution

Cloud web platform synergy

It is an Enterprise Level System for reactive applications which aims to be a highly available.
In order to achieve this goals it is imperative to also be:

  • event-driven

  • scalable

  • resilient

  • responsive.

In order to achieve this goals, any database used must be also:

  • resilient (durable to any disruptions )
  • self-healing (must continue working , even if a part is temporarly unaccessible due to maintance or some critical error )

Synergy

DB Clustering

A cluster is a collection of individual nodes. Every node is a database in itself. The power of clustering can be leveraged by connecting individual nodes and let it work synchronized. This makes the whole database cluster intelligent. The nodes communicate together, help each other, balance their work between them and work in an integrated fashion.

Balance

MariaDB cluster

MySQL is one of the most used databases (if not the most used database). MariaDB is an enchanced cousin of MySQL. It can work by itself, but only working in cluster makes it highly available.
In comparison to other existing databases, it is:

  • A high availability solution with synchronous replication, failover and resynchronization
  • No loss of data
  • All servers have up-to-date data (no slave lag)
  • Read scalability
  • Pretty good’ write scalability
  • High availability across data centers

Topology

When running on only one physical computer, it is vulnerable to this computer failing to work.
Connecting more than one computer in a cluster creates a database topology.
In a topology clear rules must be set, so that not every node fights with each other.

Traditionally, this was acheieved by using a master, which coordinates the communication and slaves that obey to this. In case the master fails, the whole cluster is uncoordinated. First solutions to this problems made a fail mechanism, where one of the remaining slaves would be declared master. When the original master returned, it could only be a slave. There can only be one.
MariaDB galera technology takes a different approach. It is composed of donors and joiners. First node which starts the cluster is the original donor. It is bootstraped in order to create the cluster. Any incoming node will become joiner. However, it can be a donor for some another joiner. Some nodes serve as mediators and the cluster selforganizes into an unified working unit. In case of some nodes failing, this is detected and the remaining nodes reconnect. All of this is done behind scenes.

Writing to the database and reading from the database happen on a “agree first” basis. All the node members are asked when a write operation is performed, and when all agree, it is carried out and the result is propagated throughout the cluster. Should a write operation happen on the same data on more than one node, a livelock occurs. This is however not critical, since only retires in different times must be performed. The same data cannot be written at the same time to more than one node. Data consistency is warranted. Read operations can occur at any time at any number of nodes, since the data is consistent when having been written.

Session

Quorum

In order to decide what must be done next, at least an uneven number of nodes must agree. It is recommended to use at least 3 nodes. The number of nodes which have the mayority decide how to resolve a confliclicting situation. Connections in a cluster between some nodes could fail. This is known as a split brain or brain split. Each partition would continue to work on it’s own, what is the least wanted behaviour. Therefore only the majority continues, while the minority goes into a sleep-mode. Upon reconnecting to the majority, the cluster continous to work in unison. This is self-healing and resiliency.

quorum

Current status within Open Source Osijek community

The MariaDB database galera aim is to serve as the main backend for the Synergy Platform. As it does heavy work of keeping any data consistent and does it quite well, the choice over some other existing alternatives was not difficult. Tests show low resource usage and the multimaster functionality is better choice than using a traditional master-slave model.

In order to have a minimum working system with quorum, Open Source Osijek has chosen to have a 3-node MariaDB Galera cluster.

MariaDB

 

References

https://mariadb.org/

https://mariadb.com/kb/en/galera/

https://mariadb.com/kb/en/what-is-mariadb-galera-cluster/

http://en.wikipedia.org/wiki/High_availability

http://en.wikipedia.org/wiki/Redundancy_%28databases%29

http://haproxy.1wt.eu/

http://www.keepalived.org/

http://en.wikipedia.org/wiki/Replication_%28computing%29

http://www.percona.com/live/mysql-conference-2013/sessions/how-understand-galera-replication-0

Retrospektiva: Uvod u programski jezik Java (I. dio)

Prošao je i prvi dio predavanja “Uvod u programski jezik Java”. Govorili smo o programiranju općenito, tj. šta to znači programirati računalo. Bilo je govora i o različitim vrstama programskih jezika – razlike između kompajlerskih i interpreterskih jezika i u koju grupu jezik Java zapravo pripada.

Nakon općenitih stvari prešli smo i na Java svijet te smo malo i spominjali i povijest samoga jezika. Nakon male povijesti jezika krenuli smo u opisivanju Java platforme i šta ona nama pruža. Tu je bilo riječi o različitim vrstama API-a (Java ME, Java SE i Java EE) kojeg nam platforma nudi. Bilo je i govora o Java Virtual Machine ili JVM; njezina svrha i mogućnosti.

Nadalje, bilo je govora i o tome kako izgleda izvorni kod u Javi. Dakle, opis same sintakse i neka osnovna pravila kojega se programeri u Java moraju držati. Prikazan je i postupak prevođenja iz izvornog koda, koji je razumljiv čovjeku, u strojni kod koji je razumljiv računalu, tj. u slučaju Java platforme – JVM-u.

Konačno smo došli i do točke u kojoj smo koristili i Karel J. Robot – alat pomoću kojega smo dočarali objektno orijentirani pristup programiranju. Dakle, kako u Javi izgleda objekt i kako možemo upravljati s njime.

Za kraj, kako je i predavač natuknio, očekujte i II. dio predavanja koji će biti organiziran za 2 – 3 tjedna od danas. Naravno, točan datum, mjesto i vrijeme će biti najavljeno na našem webu kojeg upravo čitate. Kao i inače – booking nije potreban da bi se pristupilo predavanju, ali je poželjan.

Vidimo se na sljedećem “Uvod u programski jezik Java” predavanju.

 

Galerija slika s predavanja:

HPIM1472-new HPIM1470 HPIM1471 HPIM1473 HPIM1474 HPIM1475 HPIM1476 HPIM1477 HPIM1478

Multilayer Switching

 

[toc]

 

 

Upoznajmo se sa osnovama Multilayer switching-a. Ali da bi razumjeli što je Mulilayer Switching,trebali bi znati što je switching odnosno kako rade switchevi (preklopnici).Vratimo se još jedan korak nazad i podsjetimo se osnova računalnih mreža.

 

OSI model i TCP/IP model

OSI model (Open Systems Interconnection model) je konceptualni slojeviti model mrežne komunikacije, koji opisuje funkcije i međusobnu komunikaciju između njegovih slojeva. Održava se od strane ISO organizacije (International Organization for Standardization), pod oznakom : ISO/IEC 7498-1. Na osnovi OSI modela, razvijen je TCP/IP model.

TCP/IP je skup protokola nužan za komunikaciju računala. Današnji internet je baziran na TCP/IP setu protokola. On se sastoji od nekoliko dijelova: TCP/UDP i IP.

OSI-TCP-IP

 

Na slici je vidljiva usporedba OSI i TCP/IP modela te može poslužiti kao primjer komunikacije TCP/IP protokola.Prema slici će se najbolje shvatiti što se događa kod komunikacije dva računala TCP/IP-om:

 

Naime kod komunikacije između dva računala (Source  Destination), dolazi do slijedećeg (u TCP/IP-u):

  • Aplikacija (pr. Web browser se spaja na Web Server ) formira podatke koje želi slati na drugo računalo (Layer 4, tj po OSI-ju 7,6 i 5 ). i prosljeđuje ju nižem sloju (Layeru)
  • Transportni sloj (TCP) preuzima podatke od gornjeg sloja i dodaje svoj dio

(u ovom slučaju Source i destination portove, CRC check, … ) i prosljeđuje ju nižem sloju

  • Internet sloj (IP) preuzima podatke od gornjeg sloja i dodaje svoj dio (source i

destination IP adrese,..) i prosljeđuje ju nižem sloju

  • Network Access sloj preuzima podatke od gornjeg sloja i dodaje svoj dio (MAC adrese, …) te šalje podatke samoj mrežnoj kartici, koja ih pretvara u električne (ili optičke) signale i šalje ih na medij.

Važno je znati da mrežnim medijem prolaze paketi podataka, dogovorene maksimalne veličine. Ako je na početku procesa enkapsulacije (ugnježđivanja) podataka utvrđeno da treba poslati više podataka nego što je maksimalna veličina paketa (~1500 b = 1.5kB), dolazi do kreiranja više paketa,od kojih svaki sadrži serijski broj, da bi se ispravno posložili na drugoj strani te sastavili u izvorni oblik.

 

S druge strane (na drugom računalu, proces je obrnut):

Mrežna kartica prima električne impulse, pretvara ih u slijed digitalnih podataka (0 i 1) , koje preuzima prvi sloj, obrađuje ih, prosljeđuje drugom sloju,… i tako do aplikacijskog sloja  koji to sve slaže u prvobitni oblik podataka, koji je poslan s prvog računala (Source).

 

Enkapsulacija

Slika prikazuje enkapsulaciju (ugnježđivanje) prema TCP/IP, sa Source računala. Ovdje će vam biti malo jasniji tok podataka i veza između TCP/IP slojeva.

TCP-IP Encapsulation

Aplikacijski sloj uzima podatke (iz same aplikacije) te ih razdvaja na manje dijelove. Svakom tom bloku podataka [DATA]  se dodaje zaglavlje [Transport Header] – u transportnom sloju (3) – ovdje se dodaju i Source i Destination portovi.

Source port se nasumično odabire (1024+  Random) a Destination port označava protokol za komunikaciju (pogledajte tablicu dolje).

Internet sloj dodaje svoj dio, koji sadrži i Source IP adresu (pošiljatelja) i destination IP adresu (primatelja) te se dalje sve prosljeđuje Network Access sloju koji dodaje i Source i Destination MAC adrese. Prema OSI modelu ovo je Layer 2 (u grubo on barata s MAC adresama – što nas i zanima)

Nadalje se sve pretvara u signale za slanje na mrežni medij (“bakar” ili “optika” tj. električne signale ili svjetlosne impulse). Ovaj proces se na računalu koje prima podatke, odvija u suprotnom smjeru.

 

TCP/UDP Portovi

TCP/IP protokol dopušta maksimalno 65535  portova [216] (16 bitni broj). Za svaki TCP/IP protokol je definiran i port preko kojega se koristi. Pomoću portova, svako računalo može (u svakom trenutku) paralelno komunicirati sa više protokola, jer svaki od njih koristi drugačiji port. Neki od osnovnih su nabrojani u tablici.

Portovi

Osim portova bitno je i kojim transportnim protokolom se koristi niži protokol:

  • TCP je tkzv. connection-oriented – što znači da se kod komunikacije dva računala, otvara konekcija (Three-way handshake) i TCP protokol se brine da je svaki segment podataka koji je poslan sa računala A na računalo B primljen u ispravnom obliku (u prijenosu podataka kroz medij može doći do gubitka djela podataka). Za svaki paket koji je s druge strane zaprimljen neispravan (o tome se brine  CRC checksum), zatraži se retransmisija i paket se šalje ponovno, sve dok nije potpuno ispravan.
  • UDP protokol se ne brine o tome da li je svaki paket podataka ispravno zaprimljen na drugoj strani ali je njegova prednost puno veća brzina (jer nema dodatne kontrole niti retransmisija).

Dodatni pojmovi 

  • MAC adresa (Media Access Control) je jedinstvena adresa, ugrađena u svaku mrežnu karticu, od strane proizvođača odnosno u svaki port na switchu (ili bilo kojem mrežnom uređaju). MAC adresa je 48 bitna, označava se sa 12 heksadecimalnih brojeva, grupiranih po 2 i obično odvojenih sa : ili -. Prvih 6. hexa brojeva označava proizvođaća a ostalih 6 su redni brojevi. Dakle ne osnovu MAC adrese možemo raspoznati proizvođaća same kartice (Intel, 3Com,Broadcom,…)     Pr. Izgled MAC adrese: 00-30-00-3A-FD-6C

MAC-adresa-primjer

 

  • IP adresa je jedinstvena adresa, te ju ne može imati niti jedno drugo računalo na mreži. IP adresa (Ipv4) je 32bitni binarni broj razlomljen u seriju dekadskih brojeva odvojenih točkom (.). Prvo se cijeli binarni broj razdjeli u 4 grupe od 8 binarnih brojeva, tada se svaka grupa od 8 bitova pretvara u decimalni broj. IPv4 može adresirati 4×8 bitova= 32b (bita) = 232 IP adresa. Osim IPv4 postoji i IPv6. IPv6 se sastoji od 8 heksteta tj (8 x 4 bajta) tj 8 puta po 4 heksadecimalna broja odvojena točkom (.)  Dakle IPv6 može adresirati: 8 x 16 bitova = 128b (bita)=2128 IP adresa.

 

  • ARP (Adress Resolution Protocol). Pošto u TCP/IP mrežama svaki paket mora sadržavati Source i Destination IP i MAC adrese, potrebna je i upotreba ARP protokola.  On je zadužen za pronalaženje MAC adrese od određene IP adrese (pridjeljuje MAC adresu IP adresi). Kada računalo A želi pristupiti računalu B (kojemu još nije pristupalo), ono provjeri da li zna njegovu MAC adresu (pošto mu je poznata IP adresa).  Postoje 2 načina kako računalo može napraviti svoju bazu/tablicu MAC <—-> IP adrese:
    • 1. Svako računalo prati mrežne pakete i zapisuje MAC-IP parove u svoju privremenu bazu, koja se briše svakih nekoliko minuta (bazu nazivamo ARP tablica, na PC računalu ju možemo vidjeti sa naredbom: arp -a
    • 2. Računalo koje nije dobilo IP-MAC podatak ide u Broadcast: ARP request, sva računala na njegovom segmentu mreže primaju taj broadcast (switchevi propuštaju broadcast zahtjeve a routeri NE). Tada računalo koje ima traženu IP adresu vraća pošiljaocu ARP requesta, ARP response sa ispravnom MAC adresom, koju računalo A sprema u svoju tablicu i drži ju neko vrijeme.Tek tada računalo A može kreirati klasičan TCP/IP paket i ostvariti konekciju na računalo B.

 

Ovo je dovoljno za razumjevanje priče koja slijedi.

 

Layer 2 switching – klasična upotreba switcheva (preklopnika).

U današnjim mrežam za međusobno umrežavanja/spajanje računala, poslužitelja i ostale mrežne opreme koriste se switchevi koji standardno rade na Layer 2 (dakle barataju sa MAC adresama).

Spajanjem bilo kojeg računala ili uređaja na neki port na switchu, sam switch prvo mora saznati njegovu MAC adresu te ju spremini u svoju internu tablicu koja sadrži par :

 

Source MAC adresa – port (interface) na switchu

 

To je i sva logika koja je potrebna za uspješno preklapanje, Naime kada spojimo računala A i B na switch,  i to primjerice:

Računalo A (MAC 00:01:02:A1:11:11) – port (interface) 1

Računalo B (MAC 00:01:02:B2:22:22) – port (interface) 2

 

Switch si nakon nekoliko trenutaka izgradi gore navedenu tablicu koju primjenjuje na svaki paket koji mu dođe.

 

Prisjetimo se TCP/IP komunikacije :

Svaki paket mora imati (uz ostale podatke) : Source i Destination MAC adrese i Source i Destination IP adrese. Pošto je ovo Layer 2 switch on gleda svaki paket i to samo dio sa Source MAC adresom i destination MAC adresom

(Layer 2 po OSI tj Layer 1 po TCP/IP modelu ):

 

Dakle računalo A šalje paket na računalo B :

 

Pojednostavljeno to radi ovako:

  1. Switch pogleda Source MAC (to je MAC od Računala A) i vidi da ga već ima u tablici (ako nema zapamti ga sada, na portu na koji je spojen) te pogleda i destination MAC adresu (to je MAC od Računala B)

  2. Switch provjerava svoju tablicu i gleda da li ima MAC adresu od računala B, ako ima gleda na kojem je portu (interface-u) i paket šalje na taj port (interface)

Ako nema MAC adresu od računala B, pokuša ju saznati slanjem ARP poruke te ju zapamti i izgradi si tablicu.

 

Ova MAC tablica na switch-u se zove i CAM tablica (Content addressable memory) tablica.

  1. Sada kada switch ima u CAM tablici i Source i Destination MAC adrese od ovog (i svakog) paketa od Računala A on paket (jedan po jedan) prebaci/preklopi na interface na kojem se nalazi spojeno računalo B. Ovo se ponavlja za svaki paket i za sve komunikacije.

 

Koji su nedostaci i na što treba paziti kod dizajna LAN mreža upotrebom Layer 2 switcheva.

 

Nasljeđe prošlosti : CSMA/CD (Carrier Sense Multiple Access With Collision Detection). Prije vremena switcheva, koristili su se uređaji zvani HUB-ovi.

Računala i druga mrežna oprema se na njih spajala na isti način kao na switcheve (prema topologiji : zvijezda [star]) – sva računala i oprema, svaki na svoj port na HUB-u. Na HUB-ovima se dijelila zajednička veza jer je on praktično bio samo pojačalo električnog signala. Veza je prema tome bila Half Duplex (samo primanje ili slanje na mrežu u jednom trenutku). Dakle u praksi se stalno dešavalo da su dva ili više računala u jednom djeliću vremena krenula u slanje podataka. Tu je uskakao CSMA/CD koji je tada detektirao ovaj slučaj koji se zove kolizija dakle “Collision Detection”  mehanizam, koji radi tako da tada svaki od pošiljatelja mora sačekati određeni nasumični broj nekoliko milisekundi te probati slati podatke ponovno i tako iz početka.

Upotrebom switcheva više nema kolizije ako se koristi Full Duplex mod rada portova (interface-a).Važno je znati da je i dalje ostao Half Duplex mod konfiguracija svakog porta na koji treba paziti jer se svaki port na switchu i krajnje računalo ili mrežna oprema mogu krivo “dogovoriti” te uspostaviti Half Duplex umjesto Full Duplex moda.

Full duplex je mod rada u kojemu je moguće istovremeno slanje i primanje podataka i to samo ako je tako konfigurirano na strani switcha i druge strane (računalo, drugi switch, poslužitelj , ….).

 

Podsjetimo se još nekih pojmova.

 

Network IP adresa

Network IP adresa (adresa mreže) je adresa koja definira samu mrežu. To je prva

adresa u mrežnom segmentu ili prva adresa u subnetu (subnetiranje je posebna prića [članak]).

 

BROADCAST IP adrese

Broadcast IP adrese ovisi o tome da li je mreža subnetirana ili nije. Univerzalna

broadcast adresa je: 255.255.255.255. inače ovisi o kojoj se mreži radi i u pravilu je to zadnja adresa unutar opsega mreže ili zadnja adresa u subnetu. Sve što se pošalje na broadcast adresu, primiti će svi unutar te mreže, a u slučaju univerzalnog broadcasta svi na svim mrežama. (Routeri po defaultu ne propuštaju broadcast poruke).

 

Problem Layer 2  switchinga je i Broadcast domena.

Naime mnogi protokoli u komunikaciji koriste broadcast poruke koje nepotrebno zagušuju mrežu i sve što se nalazi na mreži. Layer 2 switchevi proslijeđuju sve Broadcast poruke.

Riješenje ovog problema je logička segmentacija mreže na više virtualnih mreža (VLAN-ova). Dakle switchevi propuštaju (forward) sav promet samo unutar svakog VLAN-a. Da bi komunikacija između VLAN-o bila moguća potreban nam je Layer 3  / 4 uređaj : Router ili Multilayer Switch.

Pod pojmom multilayer switch smatramo uređaj koji radi barem na Layer 2, 3 i 4. (prema OSI modelu).

 

VLAN-ovi

VLAN čini logičku grupu ili cjelinu raznih mrežnih komponenti (računala, mrežnih uređaja  i sl.). VLAN-ovi se obično grupiraju prema nekim logičkim podjelama mreže: pr. prema odjelu tvrtke, prema specifičnim zahtjevima korisnika, poslužitelja i sl. Switch-evi i bridge-vi propuštaju unicast, multicast i broadcast promet samo unutar VLAN-a unutar kojega se nalaze. Dakle komunikacija je moguća samo između svih mrežnih uređaja i računala unutar jednog VLAN-a.

Promet između VLAN-ova nije moguć bez Layer 3 uređaja (Routeri ili Multilayer Switchevi).

 

VLAN TRUNK

TRUNK-ovi (prema Cisco terminologiji) omogućavaju “propuštanje” više istovremenih VLAN-ova, kroz određeni interface. Naime standardno svaki interface može biti isključivo samo u jednom VLAN-u. U slučaju potrebe da kroz određeni interface (port na switchu/routeru/…) moramo ili želimo propuštati više VLAN-ova, moramo interface konfigurirati kao trunk te odabrati neki od “trunk” protokola, koji pojednostavljeno, na svaki mrežni paket lijepe VLAN-ID, tkzv “tag” ili “naljepnicu” ,  sve dok putuje kroz interface koji je u trunk mod-u.Dakle kada paket koji ima VLAN tag, dođe do “normalnog” interface-a, u točno određenom VLAN-u (čiji “tag/ID” nosi), taj tag se skida i paket dalje nastavlja put kao običan/normalan. Postoji nekoliko protokola za trunk-ing a to su:

  • Cisco ISL
  • IEEE 802.1Q

 

Kako to radi na pojednostavljenom modelu, vidljivo je na slici.

TRUNK

 

 

Multilayer Switching

 

U daljem tekstu, bazirati ćemo se na Cisco Multilayer Switchevima zbog svojih specifičnosti (od kojih neke imaju i neki drugi proizvođaći) i to na entry – medium level uređajima poput: Catalyst 3560 ili Catalyst 3750 switcheva jer je na njima najlakše objasniti cijeli koncept.

 

Što se dešava na kojem sloju i kojom brzinom (za switcheve):

Layer 2 : sve se odrađuje na osnovi MAC adresa, brzinom hardvera (tkzv. “Wire Speed”)

Layer 3 : sve operacije preklapanja tj, ovdje govorimo o routing-u (usmjeravanju) se odrađuju na osnovi IP adresa , sve se odrađuje brzinom hardvera (za razliku od Routera-a kod kojih CPU sve odrađuje)

Layer 4 : Dodaje se mogućnost rada na Transportnom sloju (TCP/UDP portovi) – možemo reći da je ovaj sloj “Application aware” – svjestan aplikacija.

 

Prvo sumarizirajmo mogućnosti Layer 2 switchinga:

  • Bridge-ing brzinom hardvera “Hardware based bridging” tj “Wire Speed performance”
  • Kolizijska domena je na nivou porta , odnosno upotrebom Full Duplex moda ne postoji
  • Nema mrežnog prometa između VLAN-ova
  • Broadcast domena se proteže na sve portove (interface-e) i sve međusobno spojene Layer 2 switcheve

 

Bacimo pogled na klasične Routere (usmjerivače):

  • Broadcast domena ja unutar jednog porta (interface-a)
  • Layer 3 procesiranje je od  strane CPU-a i samim time je više kašnjenje (latency) od Layer 2 switchinga :(Routeri s mrežnim paketima rade u miliskundama , switchevi i mikrosekundama [1.000 puta brže])
  • Visoka cijena prema broju portova (interface-a)

 

Pregled logike rada Cisco switcha

Tipičnu logičku arhitekturu Cisco Switcha možemo vidjeti na slici :

Cisco ASIC

Slika: Primjer osnovne logičke sheme 48 portnog Multilayer switcha

 

O čemu se radi (ASIC) ?

ASIC (Application Specific Integrated Circuit) je IC (“chip”) koji se ovisno o izvedbi i modelu switcha praktično nalazi na svakom portu (interface-u). On je u mogućnosti unutar granica milisekundi: primiti, obraditi i proslijediti svaki mrežni paket.

Veliko ubrzanje u radu ASIC-a, uz upotrebu vrlo brze SRAM memorije, donosi i upotreba slijedećih komponenti integriranih u sam ASIC:

  • CAM memorije (tablice) za Layer 2 funkcionalnosti
  • TCAM memorije (tablice) za Layer 3 funkcionalnosti,

 

Zbog gore navedenih karakteristika, standardno ASIC omogućava obradu slijedećih funkcija, hardverskom brzinom :

  • Traffic forwarding (obrada i prosljeđivanje paketa)
  • QoS (Quality of Service)
  • ACL lookup  (Access Liste)
  • Route Processing (Obrada Routing funkcionalnosti)
  • STP (Spanning Tree protokol)

 

Multi-layer switch-evi mogu odluke o switching-u/routingu odraditi na osnovi :

  • source/destination MAC adrese u Layer 2 ili
  • source/destination IP adrese u Layer 3 ili
  • source/destination porta u Layer 4.

Osim toga ne postoji razlika u brzini rada Layer 2 , Layer 3 ili Layer 4. Dakle sve se odrađuje brzinom “hardvera”.

 

Pojednostavljeno Multilayer switching kombinira funkcionalnosti :

  • Layer 2 switchinga
  • Layer 3 routing/switchinga
  • Layer 4 routing/switchinga i to uz vrlo nisku latenciju koja je oko 1.000 puta manja od Routera.

Dakle većinu operacija sa mrežnim paketima Multilayer switch odrađuje oko 1.000 puta brže od klasičnih Routera (usmjerivača).

Možemo reći da je Multilayer switch spoj “klasičnog” Layer 2 switcha i Routera koji radi na “Wire Speed”-u unutar jedne hardverske platforme.

Naime sve operacije koje on obavlja, obavlja i klasični Layer 2 Switch i standardni Router (usmjerivač) ali sve na hardverskoj brzini unutar milisekundi. Njegovom upotrebom možemo povećati performanse cijele mreže, uz pravilan dizajn iste, uz nekoliko vrlo bitnih stvari na koje treba paziti:

  • Dizajn mreže (to važi za sve mreže), morao bi topološki biti hijerarhijski i sadržavati :
    • Core Layer mrežu
    • Distribution Layer mrežu
    • Access Layer mrežu

… i to pridržavajući se pravila dizajna svakog od navedenih hijerarhijskih slojeva.

  • Multilayer Switch, iako je praktično spoj Routera i Switcha predstavlja “single point of failure” tako da kod dizajna mreža moramo i na to paziti tj. uvesti redundanciju.
  • Uvođenjem redundancije sa Multilayer Switchevima moramo paziti da smo pravilno dizajnirali sve međuveze i njihove redundancije te iskoristili protokole koje osiguravaju brzu konvergenciju te štite mrežu od “loop-a”
  • Koristiti VLAN-ove već u samom dizajnu mreže.

 

 

 

Zaključimo priču sa jednim jednostavnim primjerom upotrebljivim u praksi.

Slika prikazuje osnovnu zamišljenu redundantnu mrežu sa multilayer switchevima:

Multilayer Switch-hierarchy-basic

 

Sada na u tu mrežu uvedimo slijedeće VLAN-ove.

 

VLAN10 → Ovdje će biti sva PC Računala iz nabave, računovodstva, managementa i prodaje

VLAN20 → Ovdje će biti razvojni poslužitelji za R&D odjel

VLAN21 → Ovdje će biti PC računala razvojnih timova (R&D)

VLAN25 → Ovdje će biti svi ostali poslužitelji

VLAN100 → Ovdje će biti sva oprema prema internetu

 

Logička shema mreže, poslužitelja i računala sada će izgledati ovako:

Multilayer Switch-hierarchy-basic-VLANs

Komunikaciju između VLAN-ova omogućavamo i ograničavamo preko Multilayer switcha.

Možemo kreirati neka (osnovna) pravila popout:

 

Svi iz VLAN10 mogu komunicirati sa svima, samo iz VLAN21 i VLAN25

Svi iz VLAN 21 mogu komunicirati sa svim ostalim VLAN-ovima

Svi razvojni poslužitelji iz VLAN20 mogu komunicirati samo sa VLAN21 i sa VLAN 25 i to samo sa određenim servisima iz VLAN 25 i to : DNS , NTP , HTTP i FTP.

Omogućimo svima da mogu ići prema VLAN100 (to je praktično izlaz na internet) ali onemogućimo uspostavljanje veze od bilo koga sa strane VLAN100 na bilo koji drugi VLAN.

 

Na ovaj način smo omogučili komunikaciju u određenom smjeru a zabranili u drugom ili omogućili komunikaciju između određenih VLAN-ova za samo određene portove/protokole a zabranili za sve druge protokole i sl.

Ograničenjima na VLAN100 smo onemogućili bilo kome tko je možda “provalio” na neki od Routera prema internetu, da otvori bilo kakvu vezu prema unutarnjim mrežama 🙂

 

Autor : Hrvoje Horvat

 

 

 

 

Protokoli za “Layer 3” redundanciju : HSRP

 

[toc]

 

 

 

Zbog čega nam uopće treba Layer 3 redundancija ?

(Layer 3 : OSI i/ili  TCP/IP model – sloj 3 tj. IP)

U slučajevima kada nam je bitan ulaz odnosno izlaz prema internetu, prva stvar koju moramo osigurati uz postojeću (primarnu) vezu prema internetu, je druga (backup) veza. preko istog ili drugog internet providera (ISP-a). Bez obzira da li se radi o istom ili drugačijem tipu veze (pr. optika, ADSL, SDSL ili drugo),sa strane mreže, prema korisničkim računalim ili poslužiteljima, potrebno je osigurati jedinstvenu metodu izlaza na internet (tj. u konačnici jedinstvenu IP adresu).

Tu IP adresu zapravo koristimo kao “Default Gateway”.

2xISP-osnovno

Koje najčešće opcije imamo:

a.) Primarni Router (Router1) i pripadajući link su stalno aktivni a sekundarni (Router2) tj. backup ručno uključujemo po potrebi (u slučaju kvara primarnog) – ovo nije baš najsretnije riješenje.

b.) Oba uređaja su aktivna, svaki ima svoju inside IP adresu (pr. 20.20.20.x) i svima je preko DHCP poslužitelja kao Default Gateway postavljena IP adresa prvog Routera (pr. 20.20.20.1). U slučaju kvara prvog, na DHCP poslužitelju mijenjamo svima Default Gateway u drugi Router (pr. 20.20.20.2) te svi korisnici moraju ponovno pokupiti IP parametre sa DHCP poslužitelja (iz GUI-a ili komandne linije) ili restartati računalo – ovo je malo bolje ali i dalje primitivno riješenje

c.) Ili nešto slično kao a.) i b.)

d.) Upotreba protokola za Layer 3 redundanciju (nazivaju se i “First Hop Redundancy Protocols” ili protokoli koji osiguravaju dostupnost “Default Gateway-a”)

  • (1) : HSRP (Cisco only, razvijen 1994)
  • (2) : VRRP (Industrijski standard , opisan u RFC 2338, razvijen 1999, po uzoru na HSRP )
  • (3) : GLBP (Cisco only, razvijen 2005)

Dakle zaključili smo da želimo automatizam koji će riješiti ovaj problem.

 

(1) Što nam nudi HSRP i kako on radi:

HSRP (Hot Standby Routing Protocol) je razvio Cisco te se koristi (i radi) samo na Cisco uređajima. On pojednostavljeno radi tako da dva ili više uređaja preko HSRP protokola dijele jednu virtualnu IP adresu (koju mi koristimo kao Default Gateway). Na tu virtualnu IP adresu svaki puta odgovara Router koji je Aktivan HSRP Router a ostali ništa ne rade, osim što svako malo provjeravaju da li su svi živi i koji od živih routera ima najviši prioritet.

Naime onaj Router koji u određenom trenutku ima najviši HSRP prioritet, on postaje i aktivan i preko njega zapravo teće sav promet. Kao na slici.

2xISP-HSRP-osnovno

Mana HSRP protokola je u tome što je u svakom trenutku samo jedan aktivan Router te se drugi (tj. svi ostali ako imamo više Routera/ISP-ova) ne koriste za promet, kao što se ne iskorištavaju niti sekundarni/backup linkovi prema internetu.

Postoji i poluautomatsko riješenje za to.

Naime HSRP protokol, sa Virtualnom IP adresom, svim routerima koji učestvuju u HSRP “razgovoru/dogovoru” te prioritetima istih (uz potencijalnu autentikaciju) se definira na nivou tkzv. “HSRP grupe”, kojih može biti više istovremeno.

Dakle krenimo malo dublje.

 

Sve gore navedeno za HSRP se definira za HSRP grupu, što znači da možemo imati jednu grupu u kojoj je Router 1 aktivan i drugu grupu u kojoj je Router 2 aktivan, problem je samo kako konfigurirati klijente.

Konfiguracija klijenata (pr. PC računala) za ovaj slučaj je najpraktičnija tako da se na DHCP poslužitelju podjele DHCP rezervacije na pola te da se prvoj polovici konfigurira kao Default Gateway prva Virtualna IP (gdje je Router 1 aktivan) a drugoj polovici Virtualna IP adresa od druge HSRP grupe , u kojoj je Router 2 aktivan. Na ovaj način smo iskoristili oba routera i oba linka prema internetu.

 

HSRP osnovni dio konfiguracije Routera bi tada izgledao ovako:

 

Napomena:

FastEthernet 0/0  ⇒ Veza prema ISP-u i internetu

FastEthernet 0/1  ⇒ LAN mreža

 

Router 1 :

========

 

 

 

Router 2 :

========

 

Konfiguracija DHCP Poslužitelja (DHCP rezervacije klijenata):

PC1 : 20.20.20.100 : ……. , Default gateway : 20.20.20.254 ,….

PC2 : 20.20.20.101 : ……. , Default gateway : 20.20.20.254 ,….

… … … …

PC10 : 20.20.20.110 : ……. , Default gateway : 20.20.20.253 ,….

PC11 : 20.20.20.111 : ……. , Default gateway : 20.20.20.253 ,….

Što će se dogoditi ako jedan od routera ili link ne rade ?

1. U slučaju da Router uopće ne radi , prvi Router u istoj HSRP grupi će preuzeti ulogu aktivnog i proslijeđivati promet, te će ostati aktivan do daljnjeg !

⇒ Osim ako smo konfigurirali tkzv “preemptive”:

U slučaju da smo samo konfigurirali preemptive (za HSRP grupe 1 i 10) pr.:

 

Tada će Router koji je inicijalno bio aktivan, kada se ponovno uključi preuzeti ulogu aktivnog od onoga koji je trenutno aktivan.

Ovdje postoji problem, jer ako Router koji je prvi bio aktivan, pa je otišao u standby (zbog metode objašjene nekoliko rečenica dolje [točka 2.]) zbog toga što mu se pokvario mrežni interface te se stalno pali i gasi (što zna biti slučaj u praksi), prvi router će malo malo postajati standby pa ponovno active, jer smo uključili “preempt” .

 

“Preempt”

Zbog toga se preporuča uz “preempt” dodati i timere tj. vremenski odmak (delay) koji mora proći, prije nego router preuzme ulogu aktivnog, naredba bi u našem slučaju bila

((za HSRP grupe 1 i 10)):

 

Dakle 180 sekundi je okvirno potencijalno dovoljno sigurno da se gore opisana greška vrlo vjerojatno neće dogoditi.

Osim parametra minimum , postoje i reload i sync od kojih je praktičan i reload .jer čeka – ako se router restartao, nakon restarta definiran period vremena : pr.:

 

 

U praksi je najsigurnije ne koristiti “preempt” osim ako stvarno ne znate što radite.

 

Interface tracking

2.Došli smo i do slučaja da samo link prema internetu ne radi, što onda ?

Moramo dodati još jedan parametar u konfiguraciji koji će pratiti i stanje krucijalnih interface-a (indirektno ili direktno, linka prema internetu u našem slučaju).

Ako naši routeri 1 i 2 imaju opremu ISP-a, spojenu na mrežne interface FastEthernet 0/0 , tada bi naša konfiguracija trebala izgledati ovako  ((za HSRP grupe 1 i 10)):

 

Na ovaj način se prati stanje interface-a FastEthernet 0/0 i ako se on sruši, prioritet HSRP grupe 1 , se spušta za vrijednost 10 (default), te pada na 95 , što znaći da router sa većim prioritetom – u našem slućaju 100 (Router 2) , preuzima ulogu aktivnog. Isti sistem vrijedi i za HSRP grupu 10.

Ako želimo promjeniti smanjivanje prioriteta (decrement) sa 10 na neku drugu vrijednost tu vrijednost dodajemo na kraj naredbi od prije – neka bude za 20

 

 

Dodatne opcije HSRP-a, su :

 

Autentikacija

Autentikacija – za svaku HSRP grupu moguće je i definirati iautentikaciju (dakle lozinku).

Postoji nekoliko opcija.:

  • 1.) Plain text
  • 2.) MD5

U našem slučaju koristiti ćemo običnu “plain text“ lozinku, a to se radi ovako

(u našem slučaju za HSRP grupe 1 i 10):

Mana “plain text” lozinke je sigurnosne prirode jer se lozinka šalje preko mreže nekriptirana.

Pogledajmo komunikaciju sa Routera 1, na mreži, u slučaju da smo ostavili HSRP grupu bez definirane autentikacije:

HSRP-Auth-default

Vidljivo je da se unatoč činjenici da nismo defnirali lozinku, u pozadini ipak koristi “default” lozinka (cisco).

Sada ćemo probati definirati lozinku (Lozinka), te pogledajmo kako sada izgleda isti paket na mreži:

HSRP-Auth-Lozinka

Dakle vidimo da se sada koristi lozinka (Lozinka), koju smo kreirali.

Iz oba primjera potvrdili smo i to da se lozinke šalju nekriptirane.

 

Upotreba MD5 metode riješava ovaj problem jer se više ne šalje nekriptirani ključ, ali o njoj nekom drugom prilikom.

 

 

 

“Hello” poruke

Hello Message Timeri – dakle svako malo Routeri unutar svake HSRP grupe šalju određene pakete , koji sadrže slijedeće poruke (za router koji šalje paket):

Prioritet routera : 0 – 255 (veći ima prioritet)

Hello Time (default 3.s.) : Svakih koliko sekundi (moguće je konfigurirati i msec) se   šalje paket

Holdtime (default 10.s) : Vrijeme unutar kojeg se smatra da su “Hello Time”  poruke važeće i da je sve u redu.

 

 

 

Dijagram toka HSRP poruka

 

Rad HSRP-a pojednostavljeno radi ovako:

1. Kreiramo HSRP grupe,pripadajuće IP adrese i druge parametre, na svim Routerima

2. Šalju se Hello paketi od strane svih Routera koji koriste HSRP, svake 3 sekunde na sve routere (zapravo na multicast adresu 224.0.0.2 na koju su “pretplačeni” svi routeri)

3. Na osnovi ovih paketa se odlučuje (rade se izbori [election]) koji Router će postati “Active”.

4. Kreira se Virtualna IP adresa i virtualna MAC adresa za koju je zadužen aktivni router

 

Oblik virtualne MAC adrese za svaku HSRP grupu je :

00:00:0C 07:AC _ _
Cisco ID HSRP ID ID (broj) HSRP grupe

 

Potom virtualnu MAC adresu zapamti prvi Switch i stavi ju u svoju tablicu (MAC →  Port Nr.)

Dakle “ljepi” se MAC adresa na port na switchu na kojem je aktivni HSRP Router, prema kojoj se svi paketi prosljeđuju na njega.

5. Šalju se (i očekuju) paketi unutar 10. sekundi, nakon toga ponovno se šalju i primaju novi, ako je sve po starom ništa se ne mijenja a ako se pojavio Router sa većim HSRP prioritetom (ovo se dešava za svaku HSRP grupu) skače se na točku 2 te se preskače na točku 4.

 

Standardno se svake 3 sekunde šalju poruke i drže se 10 sekundi. Dakle može se reći i ovako – ako poruka ne stigne od trenutno aktivnog routera unutar Holdtime-a (default 10 sekundi) , nakon toga dolazi do reizbora novog aktivnog routera koji switchevima šalje promijenu za virtualnu MAC adresu – dakle sada switchevi imaju port spojen na njega kao destination virtualnu MAC adresu od virtualne IP adrese (tako za svaku HSRP grupu)

5.1 Poseban slučaj tj. iznimka je slučaj kada smo uključili praćenje (track) nekog interface-a, pr:

 

⇒ Ako se dogodi ispad interface-a, koji se prati, u roku od nekoliko milisekundi isti router šalje Hello paket sa porukom u kojoj se vidi da mu je pao prioritet. Gotovo trenutno prvi slijedeći Router (po HSRP prioritetu) preuzima ulogu aktivnog.

6.Povratak na točku 1.

 

 

 

Sada se možemo vratiti na Hello Time i Hold Time.

Ako želimo optimizirati/mijenjati timere, osnovno pravilo kaže:

Hold Time = min. 3 x Hello Time

Zbog čega 3 x Hello Time →   jer je nedolazak 3 paketa ili isticanje Hold Time-a okidač za reizbore unutar HSRP grupe.

 

Naš primjer bi bio tuning HSRP-a sa brzinama VRRP-a:, dakle smanjivanje na slanja paketa svake sekunde i istek vremena na 4 sekunde, što je dovoljno da 3 paketa dođu.

 

Možemo ići i dalje (brže), te smanjiti vrijeme u milisekunde (150ms i 600ms)

 

 

Sa ovim zadnjim postavkama možemo biti sigurni da će se sve odigrati ispod jedne sekunde.

Napomena : treba biti oprezan i ne pretjerivati jer pr. ovako generiramo pakete svakih 150ms i dodatno opterečujemo Router (ili Layer3/4 Switch) !! .

 

Nakon što smo oba routera konfigurirali za dvije HSRP grupe,  pogledajmo što nam govore HSRP statusi:

 

Router 1

Router 2:

 Iz ispisa statusa HSRP-a, vidljivo je :

Za HSRP grupu 1 :

State is Active , – Za Router 1  , za Router 2 : Standby

Vidimo da Hello paketi istiću za 8.052 tj .

Virtualna IP : 20.20.20.254,

Virtualna MAC – podsjetimo se opisa  : 0000.0C07.ac01 

Hello time : 3.sec, HoldTime 10.s ec. (dakle vidljivo da smo ostavili default parametre)

Vidimo i da je preemption isključen.

 

Za HSRP grupu 10 :

State is Active , – Za Router 2  , za Router 1 : Standby

Vidimo da Hello paketi istiću za  9.556 sec.

Virtualna IP : 20.20.20.253,

Virtualna MAC – podsjetimo se opisa  : 0000.0C07.ac0a 

Hello time : 3.sec, HoldTime 10.s ec. (dakle vidljivo da smo ostavili default parametre)

Vidimo i da je preemption isključen.

 

 

 

Brza usporedba HSRP i VRRP protokola:

Razlike između HSRP i VRRP su minimalne, praktično u brzini konvergencije (koja je po default-u na strani VRRP ali se može konfigurirati u HSRP na istu ili bržu razinu).

Osim toga HSRP radi samo na Cisco opremi dok VRRP  radi na opremi svih proizvođaća (uključujući Cisco)

 

Timeri :

=======

HSRP : Hello time : 3 sekunde , Hold Time 10 sekundi

VRRP: Hello time : 1 sekunda , Hold Time 3 sekunde

 

 

Brza usporedab HSRP/VRRP i GLBP protokola :

HSRP i VRRP rade na principu Active/Standby (prema VRRP terminolgiji : Master/Backup) tj. samo jedan uređaj u svakoj grupi je aktivan te se iskorištava samo link aktivnog uređaja.

Kod GLBP (Gateway Load Balancing Protocol) protokola promet ide kroz sve uređaje te se iskorištavaju svi linkovi istovremeno, prema nekom od ponuđenih Load Balancing algoritama:

 

1. Round-robin : Na osnovi liste aktivnih (živih) routera se prosljeđuje promet sa krajnjih računala sekvencijalno prema routerima:

Pr. Ako imamo dva routera i 4 PC računala:

PC1 <==> Router 1

PC2 <==> Router 2

PC3 <==> Router 1

PC4 <==> Router 2

2. Weighted load-balancing :   Load Balancing algoritam koji na osnovi “težinskog” koeficjenta daje veći ili manji prioritet u opterečenju (slanju prometa) na određeni GLBP router u odnosu na ostale GLBP Routere.

 

3. Host-dependent : Promet će se raspoređivati prema GLBP routerima  tako da će  svaki puta isti host (krajnje računalo) prolaziti kroz isti Router:

Pr. Dva routera i 4 PC računala :

PC1 <==> Router 1 (svaki puta PC1 ide samo na Router 1),

PC2 <==> Router 2 (svaki puta PC2 ide samo na Router 2),

PC3 <==>Router 1 (svaki puta PC3 ide samo na Router 1),

PC4 <==> Router 2 (svaki puta PC4 ide samo na Router 2)

 

ali o detaljima o GLBP u nekom drugom članku.

 

 

Autor: Horvat Hrvoje

Red Hat Enterprise Linux 7

Konačno je nova verzija jedne od vodećih distribucija Linuxa – Red Hat Enterprise Linux i to verzija 7.

Nešto više o samoj najavi možete pročitati ovdje i ovdje. Detaljnu listu novosti možete naći ovdje.

E sad, zašto je izlazak nove verzije Red Hat Enterprise Linux bitno za nas i zašto ja sad ovo pišem? Zato što naša inicijativa koristi operacijski sustav CentOS za potrebe razvoja projekata i za platformu svim našim projektima. No tu je i subjektivan dojam autora ovog teksta. Da, da – moja malenkost isto koristi CentOS za svoje potrebe te je on ujedno i najomiljeniji operacijski sustav.

Red Hat Enterprise Linux je inače dosta rigorozan što se tiče popisa programa i njihovih verzija s kojim dolazi. Naime, kao što i sam naziv distribucije sugerira, Red Hat Enterprise Linux dolazi sa isključivo PROVJERENIM i STABILNIM aplikacijama. No i ovdje ta medalja ima dvije strane. S jedne strane, Red Hat Enterprise Linux je najstabilnija živuća GNU/Linux distribucija. No s druge strane on dolazi sa dosta starim verzijama aplikacija. Dosta često ga je teško natjerati da vrti neke nove stvari.

Red Hat Enterprise Linux se rangira kao operacijski sustav namjenjen, da čovjek nepovjeruje – enterprise svijetu. Ali ono što je nevjerojatno u toj priči je to da je Red Hat Enterprise Linux zapravo vrlo upotrebljiv za desktop korištenje. Čak i više od razvikanih Windows ubojica tipa Ubuntu, Fedora i Mint.

I dobro, no kakve sad CentOS sa početka priče ima veze sa Red Hat Enterprise Linux operacijskim sustavom? Zato što je CentOS zapravo projekt nastao na način da se uzme cijeli izvorni kod Red Hat Enterprise Linux distribucije. Izvorni kod se onda pretvori u izvršni te se napravi ISO slika koju vi slobodno onda možete preuzeti sa njihove stranice. Drugim riječima, taj CentOS je 100% kompatibilan sa Red Hat Enterprise Linux. Razlika je u tome što tvrtka Red Hat osigurava i podršku za svoj Red Hat Enterprise Linux koju, naravno, morate i platiti.

Ukratko, imate industrijski operacijski sustav koji je besplatan za bilo kakvo korištenje, uključujući i u komercijalne svrhe.

Nažalost, još ipak moramo pričekati koji dan za izlazak nove verzije CentOS distribucije. Dečki koji stoje iza CentOS projekta rade na izradi ISO slike i završnog testiranja. Pa eto, ovim putem vam toplo preporučujemo da si uzmete malo slobodnog vremena i da probate jedno od najboljih GNU/Linux distribucija.