zhuyumu 发表于 2019-1-6 06:40:17

LVS三种IP负载均衡配置

  1: LVS-DR模式(调度器与实际服务器都有一块网卡连在同一物理网段上)
  简要的网络结构如下所示
http://blog.运维网.com/attachment/201303/161657461.png
  配置LVSserver
引用#!/bin/sh  VIP=192.168.0.210
  RIP1=192.168.0.175
  RIP2=192.168.0.145
  ./etc/rc.d/init.d/functions
  case "$1"in
  start)
  echo "start LVS ofDirectorServer"
  #Set the Virtual IP Address
  /sbin/ifconfigeth0:1 $VIP broadcast $VIP netmask 255.255.255.255 up
  /sbin/route add-host $VIP dev eth0:1
  #Clear IPVS Table
  /sbin/ipvsadm-C
  #Set Lvs
  /sbin/ipvsadm -A -t $VIP:80 -srr
  /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80-g
  /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g
  #RunLvs
  /sbin/ipvsadm
  ;;
  stop)
  echo"close LVS Directorserver"
  /sbin/ipvsadm -C
  /sbin/ifconfigeth0:1 down
  ;;
  *)
  echo "Usage: $0{start|stop}"
  exit 1
  esac
  配置 RIP server
引用#!/bin/bash  VIP=192.168.0.210
  LOCAL_Name=50bang
  BROADCAST=192.168.0.255#vip'sbroadcast
  . /etc/rc.d/init.d/functions
  case "$1" in
  start)
  echo "reparing for Real Server"
  echo "1">/proc/sys/net/ipv4/conf/lo/arp_ignore
  echo "2">/proc/sys/net/ipv4/conf/lo/arp_announce
  echo "1">/proc/sys/net/ipv4/conf/all/arp_ignore
  echo "2">/proc/sys/net/ipv4/conf/all/arp_announce
  ifconfig lo:0 $VIPnetmask 255.255.255.255 broadcast $VIP up
  /sbin/route add -host $VIPdev lo:0
  ;;
  stop)
  ifconfig lo:0 down
  echo"0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
  echo "0">/proc/sys/net/ipv4/conf/lo/arp_announce
  echo "0">/proc/sys/net/ipv4/conf/all/arp_ignore
  echo "0">/proc/sys/net/ipv4/conf/all/arp_announce
  ;;
  *)
  echo"Usage: lvs {start|stop}"
  exit 1
  esac
  扩展知识:
  arp_ignore- 整型
  当对要求解析本地目标IP地址的ARP请求做响应时,定义不同的模式:
  0 - (缺省): 响应配置在任何接口上的任何本地目标地址
  1 - 只有当目标IP地址是配置在进入接口上的本地地址时才响应
  2 - 只有当目标IP地址是配置在进入接口上的本地地址,并且发送者的IP地址处于本接口的同一网段时才响应
  3 - 不响应用scope host配置的本地地址,只有通用地址和链接地址会被响应
  4-7 - 保留
  8 - 不响应所有的本地地址
  conf/{all,interface}/arp_ignore的最大值在{interface}上收到APR请求的时候被使用。
  arp_announce- 整型
  在ARP请求被送到接口上,要在IP包中宣布本地源IP地址时,定义不同的限制级别:
  0 - (缺省)使用配置在任何接口上的任何本地地址
  1 - 尝试避免本接口上的本地地址不是目标的子网段。当目标主机请求的源地址是逻辑网段的一部分时候,这种模式有用。
  如果我们生成这个请求,我们将会检查包含目标IP的所有子网,保留来自这些子网的源地址。
  如果没有这样的子网,就用级别2的规则来选择。
  2 - 总是使用这个目标的最好的本地地址。在这种模式下,我们忽略IP包中的源地址,尝试选择我们喜欢的本地地址给目标主机。
  选择的方式是在输出接口上包含目标IP地址的所有子网里寻找主要的IP地址。
  如果没有合适的的目标地址,就选择输出接口或者所有其他接口上的第一个地址。
  conf/{all,interface}/arp_announce的最大值是被使用的。
  提高限制级别会提供更多的机会来接收到解析目标的响应回答,而降低级别会宣布更多有效的发送者信息。
  在最开始,客户端发出命令来寻找VIP的时候,只有Director会应答客户端的ARP广播,这个是为什么要对ARP广播进行限制的原因
  2: LVS-TUN模式
  简要的网络架构如下:
http://blog.运维网.com/attachment/201303/161741323.png
  配置lvsserver
引用  #!/bin/sh
  # description: start LVS ofDirectorserver
  VIP=192.168.25.41(注意,lvsserver那台机器2个ip,一个是vip,一个是本身ip例如192.168.25.42)
  RIP1=192.168.25.44
  RIP2=192.168.25.45
  #RIPn=192.168.0.n
  GW=192.168.25.254
  ./etc/rc.d/init.d/functions
  case "$1" in
  start)
  echo " start LVS ofDirectorServer"
  # set the Virtual IP Address
  /sbin/ifconfig tunl0 $VIPbroadcast $VIP netmask 255.255.255.0 up
  /sbin/route add -host $VIP devtunl0
  #Clear IPVS table
  /sbin/ipvsadm -C
  #set LVS
  /sbin/ipvsadm -A-t $VIP:80 -s rr
  /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -i
  /sbin/ipvsadm-a -t $VIP:80 -r $RIP2:80 -i
  #/sbin/ipvsadm -a -t $VIP:80 -r $RIP3:80-i
  #Run LVS
  /sbin/ipvsadm
  #end
  ;;
  stop)
  echo "close LVSDirectorserver"
  ifconfig tunl0 down
  /sbin/ipvsadm -C
  ;;
  *)
  echo"Usage: $0 {start|stop}"
  exit 1
  esac
  .
  配置real server
引用#!/bin/sh  # ghb in 20060812
  # description: Configrealserver tunl port and apply arp patch
  VIP=192.168.25.43
  ./etc/rc.d/init.d/functions
  case "$1" in
  start)
  echo "Tunl portstarting"
  ifconfig tunl0 $VIP netmask 255.255.255.0 broadcast $VIPup
  /sbin/route add -host $VIP dev tunl0
  echo "1">/proc/sys/net/ipv4/conf/tunl0/arp_ignore
  echo "2">/proc/sys/net/ipv4/conf/tunl0/arp_announce
  echo "1">/proc/sys/net/ipv4/conf/all/arp_ignore
  echo "2">/proc/sys/net/ipv4/conf/all/arp_announce
  sysctl -p
  ;;
  stop)
  echo"Tunl port closing"
  ifconfig tunl0 down
  echo 1 >/proc/sys/net/ipv4/ip_forward
  echo 0 >/proc/sys/net/ipv4/conf/all/arp_announce
  ;;
  *)
  echo "Usage: $0{start|stop}"
  exit 1
  esac
  3: LVS-NAT模式
  简要的网络架构如下图:
http://blog.运维网.com/attachment/201303/161753146.png
  配置LVSserver
引用#!/bin/sh  # description: start LVS ofNat
  VLAN-IP=202.99.59.110
  RIP1=10.1.1.2
  RIP2=10.1.1.3
  #RIPn=10.1.1.n
  GW=10.1.1.1
  ./etc/rc.d/init.d/functions
  case "$1" in
  start)
  echo " start LVS ofNAtServer"
  echo "1" >/proc/sys/net/ipv4/ip_forward
  echo "0">/proc/sys/net/ipv4/conf/all/send_redirects
  echo "0">/proc/sys/net/ipv4/conf/default/send_redirects
  echo "0">/proc/sys/net/ipv4/conf/eth0/send_redirects
  echo "0">/proc/sys/net/ipv4/conf/eth1/send_redirects(内网卡上的)
  #Clear IPVStable
  /sbin/ipvsadm -C
  #set LVS
  /sbin/ipvsadm -a -t 202.99.59.110:80 -r10.1.1.2:80 -m -w 1
  /sbin/ipvsadm -a -t 202.99.59.110:80 -r 10.1.1.3:80 -m -w1
  #Run LVS
  /sbin/ipvsadm
  #end
  ;;
  stop)
  echo "close LVS Natserver"
  echo "0" >/proc/sys/net/ipv4/ip_forward
  echo "1">/proc/sys/net/ipv4/conf/all/send_redirects
  echo "1">/proc/sys/net/ipv4/conf/default/send_redirects
  echo "1">/proc/sys/net/ipv4/conf/eth0/send_redirects
  echo "1">/proc/sys/net/ipv4/conf/eth1/send_redirects(内网卡上的)
  /sbin/ipvsadm-C
  ;;
  *)
  echo "Usage: $0 {start|stop}"
  exit 1
  esac
  配置realserver
  LVS-Nat 模式的后端机器不需要配置.
  tips: -g表示使用DR方式,-m表示NAT方式,-i表示tunneling方式。

页: [1]
查看完整版本: LVS三种IP负载均衡配置