Setting Up LVS To Load Balance DNS

Home » CentOS » Setting Up LVS To Load Balance DNS
CentOS 1 Comment

lvs.cf:
serial_no = 56
primary = 10.100.9.40
service = lvs backup_active = 1
backup = 10.100.9.41
heartbeat = 1
heartbeat_port = 539
keepalive = 6
deadtime = 18
network = direct debug_level = NONE
monitor_links = 1
syncdaemon = 1
syncd_iface = eth0
syncd_id = 0
virtual ns1 {
active = 1
address = 10.100.9.224 eth0:2
vip_nmask = 255.255.255.0
port = 53
use_regex = 0
load_monitor = rup
scheduler = wlc
protocol = tcp
timeout = 6
reentry = 15
quiesce_server = 0
server ns1a {
address = 10.100.9.221
active = 1
weight = 1
}
server ns1b {
address = 10.100.9.222
active = 1
weight = 1
}
}
virtual ns1 {
active = 1
address = 10.100.9.224 eth0:2
vip_nmask = 255.255.255.0
port = 53
send = “\n”
use_regex = 0
load_monitor = rup
scheduler = wlc
protocol = udp
timeout = 6
reentry = 15
quiesce_server = 0
server ns1a {
address = 10.100.9.221
active = 1
weight = 1
}
server ns1b {
address = 10.100.9.222
active = 1
weight = 1
}
}

/etc/sysctl.conf (LVS):
# Kernel sysctl configuration file for Red Hat Linux
#
# For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and
# sysctl.conf(5) for more details.

# Controls IP packet forwarding net.ipv4.ip_forward = 1

# Controls source route verification net.ipv4.conf.default.rp_filter = 1

# Do not accept source routing net.ipv4.conf.default.accept_source_route = 0

# Promote secondary IPs (virtual) upon failover net.ipv4.conf.all.promote_secondaries = 1

# Controls the System Request debugging functionality of the kernel kernel.sysrq = 0

# Controls whether core dumps will append the PID to the core filename.
# Useful for debugging multi-threaded applications. kernel.core_uses_pid = 1

# Controls the use of TCP syncookies net.ipv4.tcp_syncookies = 1

# Disable netfilter on bridges. net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0

# Controls the maximum size of a message, in bytes kernel.msgmnb = 65536

# Controls the default maxmimum size of a mesage queue kernel.msgmax = 65536

# Controls the maximum shared segment size, in bytes kernel.shmmax = 68719476736

# Controls the maximum number of shared memory segments, in pages kernel.shmall = 4294967296

# Force nfs lock daemon to a set port fs.nfs.nlm_udpport5001
fs.nfs.nlm_tcpport5001

/etc/sysctl.conf (Real Server):
# Kernel sysctl configuration file for Red Hat Linux
#
# For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and
# sysctl.conf(5) for more details.

# Controls IP packet forwarding net.ipv4.ip_forward = 0

# Controls source route verification net.ipv4.conf.default.rp_filter = 1

# Do not accept source routing net.ipv4.conf.default.accept_source_route = 0

# Controls the System Request debugging functionality of the kernel kernel.sysrq = 0

# Controls whether core dumps will append the PID to the core filename.
# Useful for debugging multi-threaded applications. kernel.core_uses_pid = 1

# Controls the use of TCP syncookies net.ipv4.tcp_syncookies = 1

# Disable netfilter on bridges. net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0

# Controls the default maxmimum size of a mesage queue kernel.msgmnb = 65536

# Controls the maximum size of a message, in bytes kernel.msgmax = 65536

# Controls the maximum shared segment size, in bytes kernel.shmmax = 68719476736

# Controls the maximum number of shared memory segments, in pages kernel.shmall = 4294967296

# Force nfs lock daemon to a set port fs.nfs.nlm_udpport5001
fs.nfs.nlm_tcpport5001

One thought on - Setting Up LVS To Load Balance DNS

  • Embarrassingly, I was missing a sending program with a proper expect line for the UDP connection. All is working now.

    Thanks.

LEAVE A COMMENT