F5 Load Balancer (LTM)

General Concepts
  1. Reverseproxy vs load balancer
    1. Load balancer: balances load across multiple servers
    2. Reverseproxy : load balancer ++; It has more features than a load balancer
      1. Load balancer
      2. Caching
      3. SSL termination
      4. Compression
  2. Global server load balancing (GSLB) : Global server loading balancing (GSLB) refers to web traffic management and application delivery over multiple data centers and/or public or private clouds in various geographical areas. Application load at each location is typically managed by “local” load balancers, and client requests are generally sent to closer servers to ensure minimal latency and maximum performance.

F5 Big-IP Concepts
  1. Node: A node is a logical object on the BIG-IP LTMsystem that identifies the IP address of a physical resource on the network.
  2. Pool: A pool is a logical set of devices, such as web servers, that you group together to receive and process traffic.
  3. Pool Member
    1. A pool member is a logical object that represents a physical node on the network. Once you have assigned a pool to a virtual server, the BIG-IP system directs traffic coming into the virtual server to a member of that pool.
    2. An individual pool member can belong to one or multiple pools, depending on how you want to manage your network traffic.
    3. The difference between a node and a pool member is that a node is designated by the device’s IP address only (10.10.10.10), while designation of a pool member includes an IP address and a service (such as 10.10.10.10:80).
  4. F5 Virtual server
    1. A virtual server is a proxy of the actual server (physical, virtual, or container). Combined with a virtual IP address, this is the application endpoint that is presented to the outside world
    2. A virtual server is a traffic-management object on the BIG-IP system that is represented by a virtual IP address and a service, such as 192.168.20.10:80
      Image credit: https://cmdref.net/hardware/bigip/index.html
  5. Virtual Server Types
    1. Standard : Load balancer that directs client traffic to a load balancing pool and is the most basic type of virtual server.
    2. Forwarding Layer 2
    3. Forwarding IP
    4. Performance HTTP
    5. Performance Layer4
    6. Stateless
    7. Reject
    8. DHCP
    9. Internal
  6. Destination address
    1. When creating a virtual server, you must specify a destination address. You can specify either a host address or a network address.
    2. Host address: With a host address, a virtual server can listen for client connections that are destined for the host address and then direct them to a server in a server pool
    3. Network address: With a network address (specifically, an address whose host bit is set to 0), a virtual server can direct client connections that are destined for an entire range of IP addresses, rather than for a single destination IP address
  7. Load balancing methods
    1. Static methods
      1. Round Robin
      2. Ratio load balancing
    2. Dynamic methods
      1. Least connections
      2. Fastest load balancing
    3. Priority Group Activation: Priority Group Activation load balancing allows pool members to be used only if preferred pool members are unavailable
    4. Failback Host
  8. Monitors: The BIG-IP system uses monitors to check whether or not pool members are eligible to service application traffic
    1. BIG-IP systems include native support for a wide number of protocols and proprietary applications and services, including TCP, UDP, HTTP, HTTPS, SIP, LDAP, SOAP, MSSQL, MySQL, and others.

Reference: https://support.f5.com/csp/article/K02024845

Create Virtual Server Workflow
  1. Get Big-IQ device reference
    1. Url: /mgmt/shared/resolver/device-groups/cm-bigip-allBigIpDevices/devices/?$filter=hostname eq bigIPDevice’
    2. selfLink property of the device is the deviceReference we would be using in step2
  2. Create a node
  3. Create a pool
  4. Add member to pool
  5. Create a virtual server
  6. Attach a pool to the server
  7. Attach profiles to virtual server

Reference: https://clouddocs.f5.com/products/big-iq/mgmt-api/v7.0.0/HowToSamples/bigiq_public_api_wf/t_create_simple_application.html