Loadbalancers: Difference between revisions

From Hobbynet Admin Wiki
Jump to navigation Jump to search
Line 29: Line 29:
==== 212.72.224 IP reeks ====
==== 212.72.224 IP reeks ====
<pre>
<pre>
212.72.224.240 2a02:968:1:2:212:72:224:240  loadbalancer1-vlan100.hobby.nl    (IP adres voor loadbalancer zelf)
212.72.224.240 2a02:968:1:2:212:72:224:240  loadbalancer1-vlan100.hobby.nl    (IP adressen voor loadbalancer zelf)
212.72.224.241 2a02:968:1:2:212:72:224:241  loadbalancer2-vlan100.hobby.nl    (IP adres voor loadbalancer zelf)
212.72.224.241 2a02:968:1:2:212:72:224:241  loadbalancer2-vlan100.hobby.nl    (IP adressen voor loadbalancer zelf)
</pre>
</pre>



Revision as of 09:52, 28 September 2020

doel

De loadbalancer zorgt er voor dat onze webdiensten redundant uitgevoerd worden.

opzet

We hebben 2 virutele loadbalancer loadbalancer1 en loadbalancer2. Elk draai op een andere hypervisor te weten vmware1 en vmware2


normale situatie

Dit geeft weer hoe in normale situaties het verkeer loopt.

File:Normaal.dia

webserver faalt

Dit geeft weer hoe het verkeer loopt wanneer een webserver faalt.

File:Webserverfaalt.dia

loadbalancer faalt

Dit geeft weer hoe het verkeer loopt wanneer een loadbalancer faalt.

File:Lbfaalt.dia

IP plan

servers

Gereserveerd

212.72.224 IP reeks

212.72.224.240 2a02:968:1:2:212:72:224:240  loadbalancer1-vlan100.hobby.nl     (IP adressen voor loadbalancer zelf)
212.72.224.241 2a02:968:1:2:212:72:224:241  loadbalancer2-vlan100.hobby.nl     (IP adressen voor loadbalancer zelf)

212.72.227 IP reeks

212.72.227.88 en 2a02:968:1:7:212:72:227:88  loadbalancer1-vlan107.hobby.nl     (IP adressen voor loadbalancer zelf)
212.72.227.89 en 2a02:968:1:7:212:72:227:89  loadbalancer2-vlan107.hobby.nl     (IP adressen voor loadbalancer zelf)

212.72.229 IP reeks

server id 21 t/m 40
212.72.229.101  vip11.hobby.nl           (virtuele IP adressen voor diensten die gebalanced worden)
   t/m 
212.72.229.110  vip20.hobby.nl           (virtuele IP adressen voor diensten die gebalanced worden)

server id 81 t/m 100
212.72.229.111  vip31.hobby.nl           (virtuele IP adressen voor diensten die gebalanced worden)
   t/m 
212.72.229.120  vip40.hobby.nl           (virtuele IP adressen voor diensten die gebalanced worden)

212.72.229.251  lb1-vlan102-bip.hobby.nl     (IP adres voor loadbalancer zelf)
212.72.229.252  lb2-vlan102-bip.hobby.nl     (IP adres voor loadbalancer zelf)
212.72.229.253  lb1-vlan102.hobby.nl         (IP adres voor het OS van de loadbalancer)
212.72.229.254  lb2-vlan102.hobby.nl         (IP adres voor het OS van de loadbalancer)

172.31.1 IP reeks

server id 61 t/m 80
172.31.1.100 vip01-int.hobby.nl (virtuele IP adressen voor diensten die gebalanced worden voor interne diensten)
   t/m 
172.31.1.109 vip10-int.hobby.nl (virtuele IP adressen voor diensten die gebalanced worden voor interne diensten)

172.31.1.196  lb1-bip-int.hobby.nl         (IP adres voor loadbalancer zelf)
172.31.1.197  lb2-bip-int.hobby.nl         (IP adres voor loadbalancer zelf)
172.31.1.198  lb1-int.hobby.nl             (IP adres voor het OS van de loadbalancer)
172.31.1.199  lb2-int.hobby.nl             (IP adres voor het OS van de loadbalancer)

ipv6

Voor alle genoemde externe IPv4 adressen, is er ook een IPv6 adres in de stijl die we bij Hobbynet hanteren: 212.72.229.101 wordt 2a02:968:1:1:212:72:229:101.

targets

toegekend

extern

  • vip01 www-test HCC.nl test omgeving
  • vip03 www-prod HCC.nl productie omgeving
  • vip11 php-joomla algemeen en test.hcc.nl https
  • vip12 groepen.hcc.nl + sub urls http https
  • vip13 www.dikkenberg.net http https
  • vip20 www.scouthout.nl http https
  • vip31 www.scoutingschipluiden.nl http https

intern

  • vip01-int db-clus01 database cluster groeperingen
  • vip02-int hcc-dbclus02 database cluser hcc.nl website

targets

Target vallen in de gewone ip space en is dus geen ruimte voor gereserveerd

toegekend

extern

  • 212.72.227.68 www-test-lb1
  • 212.72.227.69 www-test-lb2
  • 212.72.227.72 www-prod-lb1
  • 212.72.227.73 www-prod-lb2
  • 212.72.229.90 php-joomla-lb1
  • 212.72.229.91 php-joomla-lb2
  • 212.72.229.110 www.scouting.nl
  • 212.72.229.111 www.scoutingschipluiden.nl

intern

  • 172.31.1.213 db01
  • 172.31.1.214 db02
  • 172.31.1.215 HCC-db03
  • 172.31.1.216 HCC-db04

configuratie

termen

Hieronder een overzicht van termen die in de configuratie worden gebruikt en mogelijk verwarrend zijn.

  • server
Dit is de kant waar, via virtuele IP adressen, de webserver draait en waar de client mee communiceert.
  • target
Dit zijn bijvoorbeeld de webservers die in één balanced pool zitten
  • VRRP
Dit is het protocol dat zorgt voor de master slave setup, ook wel hartbeat protocol genoemd
  • network
Hier staat gedefinieerd met welk IP adres (en subnet) de loadbalancer in een bepaald subnet hangt. 
Let op: de loadbalancer heeft zijn eigen IP adressen die los staan van het OS

config files

De configuratie bestanden mogen nooit met de hand ge-edit worden. Dit dient altijd te gebeuren door middel van de loadbalancer command prompt.
Deze kan je benaderen door met ssh in te loggen op een loadbalancer en als root het commando te geven bng control.

Elke configuratiewijziging moet op beide loadbalancers doorgevoerd worden. Dit wordt helaas niet vanzelf gerepliceerd.
Ook moet je elke wijziging, min of meer zoals bij Cisco, opslaan door het commando save all te gebruiken.

nieuwe server aanmaken/aanpassen/bekijken

Een server en een target moeten in het zelfde subnet zitten ivm routering.
Meerdere servers kunnen dezelfde target hebben, denk hierbij aan webservers met meerdere https sites. In zo'n geval krijgt het target echter alleen een extra loopback adres.
Eveneens moet voor elke poort een eigen server worden geconfigureerd: dus bijvoorbeeld server 3 voor http en server 4 met https met beide dezelfde targets.

server ids

Voor de volgende reeksen zijn de volgende ids toegewezen:

  • 212.72.227.0/24 id 1/20
  • 212.72.229.0/24 id 21/40
  • 212.72.224.0/24 id 41/60
  • 172.31.1.0/24 id 61/80

aanmaken

In dit voorbeeld gaan we de server configureren voor een webserver. Dit doen we als volgt via de loadbalancer command prompt:

loadbalancing

bng control
LB1# server 2 name vip2
LB1# server 2 ipaddr 212.72.227.81
LB1# server 2 ipaddr6 2a02:968:1:7:212:72:227:81
LB1# server 2 port 80
LB1# server 2 protocol tcp
LB1# server 2 sessionid src+dstport
LB1# server 2 method session
LB1# server 2 targets 2,3

Hierna willen we deze configuratie doorvoeren en activeren. Dit doen we door het commando:

commit server 2

Fallback

Als je niet wilt dat er geloadbalanced wordt, maar dat er gebruik wordt gemaakt van een andere target als de originele target er niet is, configureer je het als volgt:

bng control
LB1# server 2 name vip2
LB1# server 2 ipaddr 212.72.227.81
LB1# server 2 ipaddr6 2a02:968:1:7:212:72:227:81
LB1# server 2 port 80
LB1# server 2 protocol tcp
LB1# server 2 sessionid src+dstport
LB1# server 2 method session
LB1# server 2 targets 2
LB1# server 2 backup 3

bekijken

Nu willen we kijken of de configuratie goed is. Dit kan je door het show server commando te geven.

LB1#show server (of sh server 2 als je alleen server 2 wil zien)
  no ipaddr        ipaddr6                    port prt net net6 sessions S targets backups
  -- ------------- -------------------------- ---- --- --- ---- -------- - ------- -------
   1 212.72.227.80 2a02:968:1:7:212:72:227:80   80 tcp   1    0        0 e 1,2
   2 212.72.227.81 2a02:968:1:7:212:72:227:81   80 tcp   1    0        0 e 2,[3]

LB1# show server 2
  no ipaddr        ipaddr6                    port prt net net6 sessions S targets backups
  -- ------------- -------------------------- ---- --- --- ---- -------- - ------- -------
   2 212.72.227.81 2a02:968:1:7:212:72:227:81   80 tcp   1    0        0 e 2,[3]

aanpassen

In het vorige voorbeeld hebben we 2 foutjes gemaakt die willen we herstellen. Voordat we dat doen moeten we eerst de server disablen en de-registeren:
Dat doe je als volgt:

LB1# disable server 2
LB1# unregister server 2  

Wat we willen aanpassen is de naam van de server. Die is nu 'vip2', dat moet zijn 'vip02'. Ga als volgt te werk:

LB1# server 2 name vip02

Daarna willen we de target nog aanpassen naar 3 en 4 in plaats van 2 en 3:

LB1# server 2 target 3,4

Ook hier na moeten we weer een commit doen echter krijgen we nu wel een foutmelding:

LB1# commit server 2
  ERROR: WARNING: server 2 references unregistered target 3
  ERROR: WARNING: server 2 references unregistered target 4

Dit komt om dat target 3 en 4 nog niet bestaan.

nieuwe target aanmaken/aanpassen/bekijken

Een server en een target moeten in hetzelfde subnet zitten ivm routering

target ids

  • 212.72.227.0/24 ids 100/199
  • 212.72.229.0/24 ids 200/299
  • 212.72.224.0/24 ids 300/399
  • 172.31.1.0/24 ids 400/499

aanmaken

configuratie op de loadbalancer

Dit gaat vrijwel identiek aan het configureren van de server:

target 2 name www-test-lb2
target 2 ipaddr 212.72.227.69
target 2 ipaddr6 2a02:968:1:7:212:72:227:69
target 2 port 80
target 2 protocol tcp
target 2 ping 3,10
target 2 ping6 3,10
target 2 agent6 10000,3,10
target 2 sessionid src+dstport
target 2 dsr enable

Hierna moet ook weer een commit gedaan worden:

commit target 2

configuratie op de target

Op de target in kwestie moeten een aantal wijzigingen worden doorgevoerd om alles goed te laten werken.

sysctl.conf

De volgende regels moeten aan /etc/sysctl.conf worden toegevoegd:

net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.all.arp_announce=2

Deze hierna activeren door middel van het commando sysctl -p

loopback interface

Om te zorgen dat de target naar het IP adres (vip) van de loadbalancer luistert, moet er een loopback interface worden aangemaakt met het vip van de loadbalancer:

iface lo inet6 static
        address         2a02:968:1:7:212:72:227:80
        netmask         128

auto lo:0 
iface lo:0 inet static
        address 212.72.227.80
        netmask 255.255.255.255

Interface lo heeft geen auto erbij staan omdat die al default bovenaan de interfaces configuratie staat.

BNG agent

De bng agent wordt gebruikt om diverse controles uit te voeren en bij te houden hoe zwaar de server wordt belast. Dit wordt vervolgens uitgelezen door de loadbalancer. Deze agent kan je voor zowel 32 bit als 64 bit vinden in de /sbin directory op LB1 en natuurlijk LB2

  • /sbin/bngagent-Linux-i386 is de 32 bit
  • /sbin/bngagent-Linux-amd64 is de 64 bit

Eén van deze twee moet je naar de target kopiëren. Hierna moet je de volgende regel toevoegen onderaan de lo:0 interface:

        up /sbin/bngagent-Linux-amd64 -6 10000

Dit zorgt er voor dat wanneer de interface up gaat, de agent wordt gestart en dat deze luistert op IPv6 op port 10000/udp. Dit verkeer moet dus ook doorgelaten worden door de firewall.

bekijken

Door middel van het show commando kan je zien hoe een target erbij staat:

LB1# show target
  no ipaddr        ipaddr6                    port prt net net6 srv sessions status      info                                    name
  -- ------------- -------------------------- ---- --- --- ---- --- -------- ----------- --------------------------------------- ------------
   1 212.72.227.68 2a02:968:1:7:212:72:227:68   80 tcp   1    1   1        0 operational arp:up,nd6:up,ping:up,ping6:up,agent6:1 www-test-lb1
   2 212.72.227.69 2a02:968:1:7:212:72:227:69   80 tcp   1    1   1        0 operational arp:up,nd6:up,ping:up,ping6:up,agent6:1 www-test-lb2

Zoals je hier kan zien is de gehele pool (alle targets) up en operationeel.

aanpassen

Het aanpassen gaat hetzelfde als bij de server. We gaan nu nog een extra monitoring script voor http toevoegen, zodat we zeker weten dat de webserver draait.

LB1# disable target 1
LB1# unregister target 1
LB1# target 1 script "/usr/lib/mon/mon.d/http.monitor -p $port$ -u /index.html $ipaddr$",2,7
LB1# commit target 1
LB1# disable target 2
LB1# unregister target 2
LB1# target 2 script "/usr/lib/mon/mon.d/http.monitor -p $port$ -u /index.html $ipaddr$",2,7
LB1# commit target 2

Als we nu de status bekijken met show target zul je zien dat er een extra controle bij staat (onder script):

LB1# sh target
  no ipaddr        ipaddr6                    port prt net net6 srv sessions status      info                                               name
  -- ------------- -------------------------- ---- --- --- ---- --- -------- ----------- -------------------------------------------------- ------------
   1 212.72.227.68 2a02:968:1:7:212:72:227:68   80 tcp   1    1   1        0 operational arp:up,nd6:up,ping:up,ping6:up,agent6:14,script:up www-test-lb1
   2 212.72.227.69 2a02:968:1:7:212:72:227:69   80 tcp   1    1   1        0 operational arp:up,nd6:up,ping:up,ping6:up,agent6:8,script:up  www-test-lb2

configuratie opslaan

  • Vergeet niet om de wijzigingen op te slaan:
LB1# save all
  • Vergeet niet om de aanpassingen op beide loadbalancers aan te brengen

VRRP

VRRP is het protocol waarmee wordt geregeld welke loadbalancer de master is en welke de slave.
Met show vrrp kan je zien of de loadbalancer waar je op bent ingelogd master of slave is.
Door het commando stop te geven zet je de loadbalancer uit en wordt de master taak overgedragen aan de andere loadbalancer.
VRRP draait op dedicated vlan 997 en is eth4 (network5) op de loadbalancers.
Vanaf de ssh command prompt kan je weer starten met bng start of service bng start.

LB2# sh vrrp
  state     BACKUP
  vrid      9 (0x09)
  priority  200
  ipaddr0   ::ffff:212.72.227.80
  ipaddr1   2a02:968:1:7:212:72:227:80

status van de servers bekijken

Dit doe je met het commando show servers vanaf de bng command prompt

LB1# show servers
  no ipaddr         ipaddr6                     port prt net net6 sessions S targets backups
  -- -------------- --------------------------- ---- --- --- ---- -------- - ------- -------
   1 212.72.227.80  2a02:968:1:7:212:72:227:80    80 tcp   1    0        2 e 1,2
   2 172.31.1.100   -                           3306 tcp   2    0      509 e 3       4
   3 212.72.229.101 2a02:968:1:1:212:72:229:101   80 tcp   3    0       85 e 5,6
   4 212.72.229.101 2a02:968:1:1:212:72:229:101  443 tcp   3    0       24 e 7,8
   5 172.31.1.101   -                           3306 tcp   2    0        9 e 9       10
   6 212.72.227.82  2a02:968:1:7:212:72:227:82    80 tcp   1    0        2 e 11,12
   7 212.72.227.82  2a02:968:1:7:212:72:227:82   443 tcp   1    0        0 e 13,14
   8 212.72.227.80  2a02:968:1:7:212:72:227:80   443 tcp   1    0        0 e 15,16
   9 212.72.229.102 2a02:968:1:1:212:72:229:102   80 tcp   3    0      134 e 5,6
  10 212.72.229.102 2a02:968:1:1:212:72:229:102  443 tcp   3    0       39 e 7,8
  11 212.72.229.103 2a02:968:1:1:212:72:229:103   80 tcp   3    0        2 e 5,6
  12 212.72.229.103 2a02:968:1:1:212:72:229:103  443 tcp   3    0        0 e 7,8

server uitschakelen

Stel we willen server 12 uitschakelen, dan doe je dat met volgende commando: disable server 12.
Je zult zien, als je de status opvraagt, dat in de kolom S nu een D staat bij server 12

LB1# disable server 12
LB1# show server
 no ipaddr         ipaddr6                     port prt net net6 sessions S targets backups
 -- -------------- --------------------------- ---- --- --- ---- -------- - ------- -------
  1 212.72.227.80  2a02:968:1:7:212:72:227:80    80 tcp   1    0        2 e 1,2
  2 172.31.1.100   -                           3306 tcp   2    0      499 e 3       4
  3 212.72.229.101 2a02:968:1:1:212:72:229:101   80 tcp   3    0      100 e 5,6
  4 212.72.229.101 2a02:968:1:1:212:72:229:101  443 tcp   3    0       25 e 7,8
  5 172.31.1.101   -                           3306 tcp   2    0        9 e 9       10
  6 212.72.227.82  2a02:968:1:7:212:72:227:82    80 tcp   1    0        2 e 11,12
  7 212.72.227.82  2a02:968:1:7:212:72:227:82   443 tcp   1    0        0 e 13,14
  8 212.72.227.80  2a02:968:1:7:212:72:227:80   443 tcp   1    0        0 e 15,16
  9 212.72.229.102 2a02:968:1:1:212:72:229:102   80 tcp   3    0      133 e 5,6
 10 212.72.229.102 2a02:968:1:1:212:72:229:102  443 tcp   3    0       39 e 7,8
 11 212.72.229.103 2a02:968:1:1:212:72:229:103   80 tcp   3    0        3 e 5,6
 12 212.72.229.103 2a02:968:1:1:212:72:229:103  443 tcp   3    0        0 D 7,8

server inschakelen

Stel we willen server 12 inschakelen, dan doe je dat met volgende commando: enable server 12.
Je zult zien, als je de status opvraagt, dat in de kolom S nu een e staat bij server 12

LB1# enable server 12
LB1# show server
 no ipaddr         ipaddr6                     port prt net net6 sessions S targets backups
 -- -------------- --------------------------- ---- --- --- ---- -------- - ------- -------
  1 212.72.227.80  2a02:968:1:7:212:72:227:80    80 tcp   1    0        2 e 1,2
  2 172.31.1.100   -                           3306 tcp   2    0      486 e 3       4
  3 212.72.229.101 2a02:968:1:1:212:72:229:101   80 tcp   3    0      100 e 5,6
  4 212.72.229.101 2a02:968:1:1:212:72:229:101  443 tcp   3    0       22 e 7,8
  5 172.31.1.101   -                           3306 tcp   2    0        9 e 9       10
  6 212.72.227.82  2a02:968:1:7:212:72:227:82    80 tcp   1    0        2 e 11,12
  7 212.72.227.82  2a02:968:1:7:212:72:227:82   443 tcp   1    0        0 e 13,14
  8 212.72.227.80  2a02:968:1:7:212:72:227:80   443 tcp   1    0        0 e 15,16
  9 212.72.229.102 2a02:968:1:1:212:72:229:102   80 tcp   3    0      128 e 5,6
 10 212.72.229.102 2a02:968:1:1:212:72:229:102  443 tcp   3    0       40 e 7,8
 11 212.72.229.103 2a02:968:1:1:212:72:229:103   80 tcp   3    0        3 e 5,6
 12 212.72.229.103 2a02:968:1:1:212:72:229:103  443 tcp   3    0        0 e 7,8

status van target bekijken

Met het commando show target zien we de status van alle targets

LB1# show target
  no ipaddr        ipaddr6                    port prt net net6 srv sessions status      info                                               name
  -- ------------- -------------------------- ---- --- --- ---- --- -------- ----------- -------------------------------------------------- --------------------
   1 212.72.227.68 2a02:968:1:7:212:72:227:68   80 tcp   1    1   1        1 operational arp:up,nd6:up,ping:up,ping6:up,agent6:5,script:up  www-test-lb1
   2 212.72.227.69 2a02:968:1:7:212:72:227:69   80 tcp   1    1   1        1 operational arp:up,nd6:up,ping:up,ping6:up,agent6:1,script:up  www-test-lb2
   3 172.31.1.213  -                          3306 tcp   2    0   2      471 operational arp:up,ping:up,agent:1,script:up                   db01
   4 172.31.1.214  -                          3306 tcp   2    0   2        0 operational arp:up,ping:up,agent:5,script:up                   db02
   5 212.72.229.90 2a02:968:1:1:212:72:229:90   80 tcp   3    3   *      105 operational arp:up,nd6:up,ping:up,ping6:up,agent6:16,script:up php-joomla-lb1 http
   6 212.72.229.91 2a02:968:1:1:212:72:229:91   80 tcp   3    3   *      108 operational arp:up,nd6:up,ping:up,ping6:up,agent6:4,script:up  php-joomla-lb2 http
   7 212.72.229.90 2a02:968:1:1:212:72:229:90  443 tcp   3    3   *       28 operational arp:up,nd6:up,ping:up,ping6:up,agent6:16,script:up php-joomla-lb1 https
   8 212.72.229.91 2a02:968:1:1:212:72:229:91  443 tcp   3    3   *       26 operational arp:up,nd6:up,ping:up,ping6:up,agent6:4,script:up  php-joomla-lb2 https
   9 172.31.1.215  -                          3306 tcp   2    0   5        9 operational arp:up,ping:up,agent:1,script:up                   HCC-db03-int
  10 172.31.1.216  -                          3306 tcp   2    0   5        0 operational arp:up,ping:up,agent:1,script:up                   HCC-db04-int
  11 212.72.227.72 2a02:968:1:7:212:72:227:72   80 tcp   1    1   6        1 operational arp:up,nd6:up,ping:up,ping6:up,agent6:1,script:up  www-prod-lb1 http
  12 212.72.227.73 2a02:968:1:7:212:72:227:73   80 tcp   1    1   6        1 operational arp:up,nd6:up,ping:up,ping6:up,agent6:3,script:up  www-prod-lb2 http
  13 212.72.227.72 2a02:968:1:7:212:72:227:72  443 tcp   1    1   7        0 operational arp:up,nd6:up,ping:up,ping6:up,agent6:1,script:up  www-prod-lb1 https
  14 212.72.227.73 2a02:968:1:7:212:72:227:73  443 tcp   1    1   7        0 operational arp:up,nd6:up,ping:up,ping6:up,agent6:3,script:up  www-prod-lb2 https
  15 212.72.227.68 2a02:968:1:7:212:72:227:68  443 tcp   1    1   8        0 operational arp:up,nd6:up,ping:up,ping6:up,agent6:5,script:up  www-test-lb1 https
  16 212.72.227.69 2a02:968:1:7:212:72:227:69  443 tcp   1    1   8        0 operational arp:up,nd6:up,ping:up,ping6:up,agent6:1,script:up  www-test-lb2 https

target uitschakelen

Stel je wilt target 8 uitschakelen dan geef je het commando disable target 8, als je dan de status van de targets opvraagt zul je zien dat bij target 8 disabled staat:

LB1# disable target 8
LB1# show target
  no ipaddr        ipaddr6                    port prt net net6 srv sessions status      info                                               name
  -- ------------- -------------------------- ---- --- --- ---- --- -------- ----------- -------------------------------------------------- --------------------
   1 212.72.227.68 2a02:968:1:7:212:72:227:68   80 tcp   1    1   1        1 operational arp:up,nd6:up,ping:up,ping6:up,agent6:7,script:up  www-test-lb1
   2 212.72.227.69 2a02:968:1:7:212:72:227:69   80 tcp   1    1   1        1 operational arp:up,nd6:up,ping:up,ping6:up,agent6:2,script:up  www-test-lb2
   3 172.31.1.213  -                          3306 tcp   2    0   2      444 operational arp:up,ping:up,agent:1,script:up                   db01
   4 172.31.1.214  -                          3306 tcp   2    0   2        0 operational arp:up,ping:up,agent:1,script:up                   db02
   5 212.72.229.90 2a02:968:1:1:212:72:229:90   80 tcp   3    3   *       90 operational arp:up,nd6:up,ping:up,ping6:up,agent6:2,script:up  php-joomla-lb1 http
   6 212.72.229.91 2a02:968:1:1:212:72:229:91   80 tcp   3    3   *       85 operational arp:up,nd6:up,ping:up,ping6:up,agent6:7,script:up  php-joomla-lb2 http
   7 212.72.229.90 2a02:968:1:1:212:72:229:90  443 tcp   3    3   *       27 operational arp:up,nd6:up,ping:up,ping6:up,agent6:2,script:up  php-joomla-lb1 https
   8 212.72.229.91 2a02:968:1:1:212:72:229:91  443 tcp   3    3   *       28 disabled    disabled                                           php-joomla-lb2 https
   9 172.31.1.215  -                          3306 tcp   2    0   5        9 operational arp:up,ping:up,agent:1,script:up                   HCC-db03-int
  10 172.31.1.216  -                          3306 tcp   2    0   5        0 operational arp:up,ping:up,agent:38,script:up                  HCC-db04-int
  11 212.72.227.72 2a02:968:1:7:212:72:227:72   80 tcp   1    1   6        2 operational arp:up,nd6:up,ping:up,ping6:up,agent6:1,script:up  www-prod-lb1 http
  12 212.72.227.73 2a02:968:1:7:212:72:227:73   80 tcp   1    1   6        1 operational arp:up,nd6:up,ping:up,ping6:up,agent6:10,script:up www-prod-lb2 http
  13 212.72.227.72 2a02:968:1:7:212:72:227:72  443 tcp   1    1   7        0 operational arp:up,nd6:up,ping:up,ping6:up,agent6:1,script:up  www-prod-lb1 https
  14 212.72.227.73 2a02:968:1:7:212:72:227:73  443 tcp   1    1   7        0 operational arp:up,nd6:up,ping:up,ping6:up,agent6:10,script:up www-prod-lb2 https
  15 212.72.227.68 2a02:968:1:7:212:72:227:68  443 tcp   1    1   8        0 operational arp:up,nd6:up,ping:up,ping6:up,agent6:7,script:up  www-test-lb1 https
  16 212.72.227.69 2a02:968:1:7:212:72:227:69  443 tcp   1    1   8        0 operational arp:up,nd6:up,ping:up,ping6:up,agent6:2,script:up  www-test-lb2 https

target inschakelen

Stel je wilt target 8 inschakelen dan geef je het commando enable target 8, als je dan de status van targets op vraagt zul je zien dat bij target 8 operational staat:

LB1# show target
  no ipaddr        ipaddr6                    port prt net net6 srv sessions status      info                                              name
  -- ------------- -------------------------- ---- --- --- ---- --- -------- ----------- ------------------------------------------------- --------------------
   1 212.72.227.68 2a02:968:1:7:212:72:227:68   80 tcp   1    1   1        1 operational arp:up,nd6:up,ping:up,ping6:up,agent6:1,script:up www-test-lb1
   2 212.72.227.69 2a02:968:1:7:212:72:227:69   80 tcp   1    1   1        1 operational arp:up,nd6:up,ping:up,ping6:up,agent6:1,script:up www-test-lb2
   3 172.31.1.213  -                          3306 tcp   2    0   2      422 operational arp:up,ping:up,agent:1,script:up                  db01
   4 172.31.1.214  -                          3306 tcp   2    0   2        0 operational arp:up,ping:up,agent:1,script:up                  db02
   5 212.72.229.90 2a02:968:1:1:212:72:229:90   80 tcp   3    3   *       97 operational arp:up,nd6:up,ping:up,ping6:up,agent6:3,script:up php-joomla-lb1 http
   6 212.72.229.91 2a02:968:1:1:212:72:229:91   80 tcp   3    3   *       96 operational arp:up,nd6:up,ping:up,ping6:up,agent6:6,script:up php-joomla-lb2 http
   7 212.72.229.90 2a02:968:1:1:212:72:229:90  443 tcp   3    3   *       25 operational arp:up,nd6:up,ping:up,ping6:up,agent6:3,script:up php-joomla-lb1 https
   8 212.72.229.91 2a02:968:1:1:212:72:229:91  443 tcp   3    3   *       18 operational arp:up,nd6:up,ping:up,ping6:up,agent6:6,script:up php-joomla-lb2 https
   9 172.31.1.215  -                          3306 tcp   2    0   5        9 operational arp:up,ping:up,agent:1,script:up                  HCC-db03-int
  10 172.31.1.216  -                          3306 tcp   2    0   5        0 operational arp:up,ping:up,agent:6,script:up                  HCC-db04-int
  11 212.72.227.72 2a02:968:1:7:212:72:227:72   80 tcp   1    1   6        1 operational arp:up,nd6:up,ping:up,ping6:up,agent6:3,script:up www-prod-lb1 http
  12 212.72.227.73 2a02:968:1:7:212:72:227:73   80 tcp   1    1   6        1 operational arp:up,nd6:up,ping:up,ping6:up,agent6:7,script:up www-prod-lb2 http
  13 212.72.227.72 2a02:968:1:7:212:72:227:72  443 tcp   1    1   7        0 operational arp:up,nd6:up,ping:up,ping6:up,agent6:3,script:up www-prod-lb1 https
  14 212.72.227.73 2a02:968:1:7:212:72:227:73  443 tcp   1    1   7        0 operational arp:up,nd6:up,ping:up,ping6:up,agent6:7,script:up www-prod-lb2 https
  15 212.72.227.68 2a02:968:1:7:212:72:227:68  443 tcp   1    1   8        0 operational arp:up,nd6:up,ping:up,ping6:up,agent6:1,script:up www-test-lb1 https
  16 212.72.227.69 2a02:968:1:7:212:72:227:69  443 tcp   1    1   8        0 operational arp:up,nd6:up,ping:up,ping6:up,agent6:1,script:up www-test-lb2 https

handige links

De site van de maker van BalanceNG

handleiding

Media:handleiding-ng.pdf

Vereisten voor installatie loadbalancer software

software

Het ubuntu pakket mon en mysql-client moet worden geinstalleerd, daar moet mon service wel gedeactiveerd worden:

update-rc.d mon disable

Daarnaast moet de dbi perl module worden geinstalleerd als volgt:

perl -MCPAN -e 'install DBI'

Deze pakket zijn voor de check plugins

firewall

De firewall dient uitgeschakeld te worden

sysctl.conf

Deze settings moeten worden toegevoegd worden aan sysctl.conf

# Disable IPv6 on internal network
net.ipv6.conf.eth1.disable_ipv6=1
#
# Disable auto generated IPv6 address on eth0
net.ipv6.conf.eth0.autoconf=0
#
# Disable auto generated IPv6 address on eth2
net.ipv6.conf.eth2.autoconf=0
#
# Disable auto generated IPv6 address on eth2
net.ipv6.conf.eth3.autoconf=0

licentie

De licentie is gekoppeld aan de machine moet opnieuwe gegeneren bij inlab

upgrade procedure

Volgende omschrijft de upgrade procedure voor de loadbalancers.

* Download de i386 en amd64 .deb files bij inlab  https://www.inlab.de/balanceng/download.html
* ga naar backup2bit ga naar de directory /disk/site/hobbynet/www/repo/pool/non-free/b
* verwijderder de oude deb files (Niet rename of wat dan ook ze mogen niet meer in deze dir staan)
* plaats hier de 2 gedownloaden deb files
* draai 'mkpackes' om de repostory te updaten
* ga naar lb1 draai bng stop om de loadbalancer te stoppen
* kijk of lb2 het goed heeft overgenomen (bezoek www.hcc.nl)
* draai 'apt-get update'
* draai 'apt-get dist-upgrade'
* doe 'bng start'
* ga in control modus met 'bng control'
* check of alle targets up zijn met commando 'sh tar'
  Er kunnen altijd een paar targets down zijn of gedisabled maar het overgrote deel moet de status 'operational' hebben
  Het kan soms even duren voor dat alles operational is !
* doe 'sh vrrp', de state moet BACKUP zijn 
* herhaal deze procedure voor lb2
* vergeet niet te controleren of hcc.nl werkt

herinstalatie procedure

De herinstalatie procedure staat apart beschreven hier Herinstallatie Loadbalancer