实验环境

准备3台虚拟机,使eth0在同一个网段上,使DIP和RIP在统一网段
lvs VIP=192.168.56.120,DIP=192.168.56.121
RS 192.168.56.122、192.168.56.123

安装过程

安装服务

两个RS上都安装 httpd 服务

  1. $ yum install -y httpd

DS上安装 ipvsadm

  1. $ yum install -y ipvsadm

配置DS

添加VIP:

  1. ifconfig enp0s8:0 192.168.56.120/24

开启路由转发功能:

  1. $ echo 1 > /proc/sys/net/ipv4/ip_forward

配置RS

调整RS的通过响应级别:

  1. echo 1 > /proc/sys/net/ipv4/conf/enp0s8/arp_ignore
  2. echo 2 > /proc/sys/net/ipv4/conf/enp0s8/arp_announce
  3. echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
  4. echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

配置RS的VIP:

  1. ifconfig lo:8 192.168.56.120 netmask 255.255.255.255
  2. route add -host 192.168.56.120 lo:8

启动RS上的httpd

  1. yum -y install httpd
  2. service httpd start

在httpd服务的默认路径 /var/www/html/ 下新建一个入口访问页index.html。

  1. ip addr show enp0s8 |grep '192.168.56.' |awk '{print $2}' >/var/www/html/index.html

测试两台RS能否访问index.html,但是VIP不能访问。

启动DS的ipvsadm并配置

ipvsadm:管理集群服务

  • 添加 -A -t|u|f service-address [-s scheduler]
    • -t TCP协议的集群
    • -u UDP协议的集群
      • service-address: IP:PORT
    • -f 防火墙标记
      • service-address:Mark Number
  • 修改 -E
  • 删除 -D -t|u|f service-address

管理集群服务中的RS:

  • 添加:-a -t|u|f service-address -r server-address [-g|i|m] [-w weight]
  • -r server-address 某RS的地址,在NAT模型中,可使用IP:PORT实现端口映射
    • [-g|i|m] LVS类型
    • -g:代表gateway,意思为直接路由
    • -i:隧道模型
    • -m:(masq)伪装,NAT模式
  • 修改: -e
  • 删除:-d -t|u|f service-address -r server-address
  • 查看
    • -L|l
    • -n 数字显示主机地址和端口
    • –stats:统计数据
    • –rate:速率
    • –timeout:显示tcp、tcpfin和udp的会话超时时长
    • -c:显示当前的ipvs连接状况
  • 删除所有集群服务
    • -C 删除ipvs规则
  • 保存规则
    • -S ipvsadm -S >/path/to/file
  • 载入此前的规则:
    • -R ipvsadm -R >/path/to/file
  1. ipvsadm -A -t 192.168.56.120:80 -s rr
  2. ipvsadm -a -t 192.168.56.120:80 -r 192.168.56.122 -g
  3. ipvsadm -a -t 192.168.56.120:80 -r 192.168.56.123 -g
  4. ipvsadm -ln
  5. #浏览器访问vip
  6. ipvsadm -lnc
  7. netstat -natp