常青树 发表于 2019-1-5 12:23:49

centos下做Lvs负载均衡

  实验用三台Vmware下虚拟的centos5.5服务器,一台作为负载调度器(Lvs-server),两台真实web服务器(web1,web2).
  一、Lvs-nat实验:
  配置IP:
  1.window7下与虚拟机相连的网卡配置成8.8.8.1,不虚配置网关。
  2.Lvs-server需要配置两块网卡,一块(eth0)模拟与外网连接(本实验下与Windows相连),一块(eth1)与内部真实服务器通信。eth0:8.8.8.8,eth1:192.168.10.1
  3.web1:eth0:192.168.10.2
  4.web2:eth0:192.168.10.3
  配置web1,web2的默认网关地址为Lvs-server eth0地址,表示返回的信息通过Lvs-server给浏览器
  此时需要在Lvs-server上安装Lvs软件,即ipvsadm
  开启Lvs-server路由功能:echo 1 > /proc/sys/net/ipv4/ip_forward(此步必须执行,否则Lvs-server上两块网卡之间不能通信)
  然后写调度脚本lvsnat.sh,
  #!/bin/bash
  #lvsnat.sh
  ipvsadm -C(删除此前添加的所有的转化表)
  ipvsadm -A -t(表示tcp协议) 8.8.8.8:80 -s rr(轮叫模式)
  ipvsadm -a -t 8.8.8.8:80 -r 192.168.10.2:80 -m(把访问8.8.8.8的请求通过轮叫模式转到192.168.10.2服务器上,-m表示nat方式)
  ipvsadm -a -t 8.8.8.8:80 -r 192.168.10.3:80 -m
  ipvsadm -L -n(打印执行结果)
  保存后赋予执行权,然后执行。
  最后在windows的浏览器中输入8.8.8.8即可访问真实服务器上的网页。(注意,实验中必须关闭服务器防火墙,包括iptables 和selinux)
  二、Lvs ip-tun:
  实验设备与之前一致。
  配置IP:
  1.window7下与虚拟机相连的网卡配置成200.168.10.4,不虚配置网关。
  2.Lvs-server只需要配置一块网卡,另外还需要配置tun(隧道网卡)。eth0:200.168.10.1,tunl0:200.168.10.10 netmask 255.255.255.255(此处4个255将200.168.10.10限定为另一个网段,此网段只有一个Ip)
  3.web1:eth0:200.168.10.2,tunl0:200.168.10.10 netmask 255.255.255.255
  4.web2:eth0:200.168.10.3,tunl0:200.168.10.10 netmask 255.255.255.255
  修改路由表:
  Lvs-server:route add -host 200.168.10.10 dev tunl0
  web1:
  route del default(删除上个实验添加的网关)
  route add -host 200.168.10.10 dev tunl0
  web2:
  route del default
  route add -host 200.168.10.10 dev tunl0
  Lvs-server服务器脚本:
  #!/bin/bash
  #..
  ipvsadm -C(删除此前添加的所有的转化表)
  ipvsadm -A -t(表示tcp协议) 200.168.10.10:80 -s rr(轮叫模式)
  ipvsadm -a -t200.168.10.10:80-r200.168.10.2:80 :80 -i(把访问200.168.10.10:80 的请求通过轮叫模式转到200.168.10.2服务器上,-i表示ip-tun方式)
  ipvsadm -a -t200.168.10.10:80-r200.168.10.3:80 :80 -i
  ipvsadm -L -n(打印执行结果)
  执行脚本
  然后写真实服务器脚本:
  #!/bin/bash
  #..
  echo "1" > /proc/sys/net/ipv4/tunlo/arp_ignore
  echo "2" > /proc/sys/net/ipv4/tunlo/arp_announce
  echo "1" > /proc/sys/net/ipv4/all/arp_ignore
  echo "2" > /proc/sys/net/ipv4/all/arp_announce
  (此段含义:外界访问200.168.10.10时忽略,而当Lvs-server将请求转发过来时响应,并把200.168.10.2的mac地址给交换机)
  执行脚本
  最后在windows的浏览器中输入8.8.8.8即可访问真实服务器上的网页。
  Lvs dr与ip-tun相似,只不过在lvs-server上用eth0:0代替tunlo,在web1与web2上用lo代替tunlo,其他变动不大,此处不加详解。



页: [1]
查看完整版本: centos下做Lvs负载均衡