[CentOS] Setting Up LVS to Load Balance DNS

Trevor Kates katestt at gmail.com
Fri Aug 23 23:45:57 UTC 2013


On Fri, Aug 23, 2013 at 11:53 AM, Trevor Kates <katestt at gmail.com> wrote:

> 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_udpport=35001
> fs.nfs.nlm_tcpport=35001
>
> /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_udpport=35001
> fs.nfs.nlm_tcpport=35001
>

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

Thanks.
--



More information about the CentOS mailing list