SLB

  1. Load-balancing
  2. Network load balancing (NLB)
  3. SLB L2
  4. SLB L3

Load-balancing

  • DNS
  • anycast
  • software (e.g., Apache, nginx)
  • NLB, SLB
  • F5

Network load balancing (NLB)

  • Windows Server
  • requires support from OS and network
  • packet hash determines the server to process it
    • hash(client IP), NIC-level
    • if cluster changes – recalculate hash-tables

SLB L2

  • SLB does not perform NAT, just forwards the packets
  • IP addresses are preserved, MAC destination – server
    • servers must be in the same L2 segment
    • IP-MAC table is filled using ARP
(config)# ip slb serverfarm <FARM>

; server IP address
(config-slb-sfarm)# real <IP>

; 3 default, count of SYN without response, if exceeded – switch to other server
(config-slb-real)# reassign <THRESHOLD>

; defaults: 8 conn, 2 clients, if both are exceeded – server failed 
(config-slb-real)# faildetect numconn <N> numclients <M>

(config-slb-real)# inservice
; service frontend
(config)# ip slb vserver <SERV>

; client is mapped to server for all sessions during timewindow, GID groups servers
(config-slb-vserver)# sticky <sec> [group <GID>]

(config-slb-vserver)# serverfarm <FARM>
(config-slb-vserver)# virtual <IP> <PROTOCOL> <PORT>
(config-slb-vserver)# inservice
# show ip slb reals
# show ip slb conn

SLB L3

  • announces service IP
    • client connects to service by IP
    • SLB selects server and performs destination NAT
    • server reply triggers source NAT on SLB
  • load-balancing
    • round robin
    • least connections
    • weighted
  • SLB can check server liveness if there are no clients
  • traffic must be symmetric: server reply analysis ≡ server keepalive
; SLB L3
(config-slb-sfarm)# nat server
(config-slb-sfarm)# real <IP> <PORT>