Chapter 3. Setting Up Load Balancer Prerequisites for Keepalived
keepalivedconsists of two basic groups: the LVS routers and the real servers. To prevent a single point of failure, each group should have at least two members.
3.1. The NAT Load Balancer Network
- Network Layout
- The topology for Load Balancer using NAT routing is the easiest to configure from a network layout perspective because only one access point to the public network is needed. The real servers are on a private network and respond to all requests through the LVS router.
- In a NAT topology, each real server only needs one NIC since it will only be responding to the LVS router. The LVS routers, on the other hand, need two NICs each to route traffic between the two networks. Because this topology creates a network bottleneck at the LVS router, Gigabit Ethernet NICs can be employed on each LVS router to increase the bandwidth the LVS routers can handle. If Gigabit Ethernet is employed on the LVS routers, any switch connecting the real servers to the LVS routers must have at least two Gigabit Ethernet ports to handle the load efficiently.
- Because the NAT topology requires the use of
iptablesfor some configurations, there can be a large amount of software configuration outside of Keepalived. In particular, FTP services and the use of firewall marks requires extra manual configuration of the LVS routers to route requests properly.
3.1.1. Configuring Network Interfaces for Load Balancer with NAT
eth0) will be on the 203.0.113.0/24 network and the private interfaces which link to the real servers (
eth1) will be on the 10.11.12.0/24 network.
NetworkManagerservice is not compatible with Load Balancer. In particular, IPv6 VIPs are known not to work when the IPv6 addresses are assigned by SLAAC. For this reason, the examples shown here use configuration files and the
/etc/sysconfig/network-scripts/ifcfg-eth0, could look something like this:
DEVICE=eth0 BOOTPROTO=static ONBOOT=yes IPADDR=203.0.113.9 NETMASK=255.255.255.0 GATEWAY=203.0.113.254
/etc/sysconfig/network-scripts/ifcfg-eth1, for the private NAT interface on the LVS router could look something like this:
DEVICE=eth1 BOOTPROTO=static ONBOOT=yes IPADDR=10.11.12.9 NETMASK=255.255.255.0
3.1.2. Routing on the Real Servers
/etc/sysconfig/network-scripts/ifcfg-eth0, file could look similar to this:
DEVICE=eth0 ONBOOT=yes BOOTPROTO=static IPADDR=10.11.12.1 NETMASK=255.255.255.0 GATEWAY=10.11.12.10
GATEWAY=line, the first one to come up will get the gateway. Therefore if both
eth1are configured and
eth1is used for Load Balancer, the real servers may not route requests properly.
ONBOOT=noin their network configuration files within the
/etc/sysconfig/network-scripts/directory or by making sure the gateway is correctly set in the interface which comes up first.
3.1.3. Enabling NAT Routing on the LVS Routers
keepalivedto configure IP information.
eth1by manually editing network configuration files or using a network configuration tool. Instead, configure them by means of the
keepalivedservice. Once it is up and running, the active LVS router will begin routing requests to the pool of real servers.