lvs-dr

        通过为请求报文重新封装一个MAC首部进行转发,源MAC是DIP所在的接口的MAC,目标MAC是某挑选出的RS的RIP所在接口的MAC地址;源IP/PORT,以及目标IP/PORT均保持不变;
    VIP通常配置在lo:0 网卡上

Director和各RS都得配置使用VIP;

DR模型注意内容:

1、前端路由器将目标IP为VIP的请求报文发往Director

    有以下三种方法实现:

        (a) 在前端网关做静态绑定;
        (b) 在RS上使用arptables;
        (c) 在RS上修改内核参数以限制arp通告及应答级别;
                 arp_ignore 限制响应级别

                0:默认值,表示可使用本地任意接口上配置的任意地址进行响应;
                1: 仅在请求的目标IP配置在本地主机的接收到请求报文接口上时,才给予响应;

             arp_announce  限制通告级别

                0:默认值,把本机上的所有接口的所有信息向每个接口上的网络进行通告;
                1:尽量避免向非直接连接网络进行通告;
                2:必须避免向非本网络通告;

2、RS的RIP可以使用私网地址,也可以是公网地址;RIP与DIP在同一IP网络;RIP的网关不能指向DIP,以确保响应报文不会经由Director;

3、同时RS跟Director要在同一个物理网络;

4、请求报文要经由Director,但响应不能经由Director,而是由RS直接发往Client;

5、不支持端口映射;

大致拓扑图如下:

lvs-dr

工作流程:

    客户端发送对VIP的请求,通过网络路由和交换机,将请求发送到Director,Director接受请求,经过负载均衡算法选取一台RS,将RIP所在的网卡的MAC地址作为目标MAC,在局域网中进行ARP广播,指定的RS收到请求,进行解析,之后将响应直接回馈给Client,不经过Director。


实验,负载均衡wordpress:

    准备: VIP : 172.16.0.66

        Director: 172.16.251.73

        RS1: 172.16.252.137 

        RS2: 172.16.253.202

RS1、2中:

          先搭建amp环境yum install -y httpd php php-mysql php-mbstring php-mcrypt mariadb-server(最好rs共享mysql和使用分布式共享其他资源,使得访问的数据相同,在这里先不考虑,详情可查看之前的博客)

 配置数据库:

    vim /etc/my.cnf.d/server.cnf

lvs-dr

systemctl start  mariadb.service

 mysql_secure_installation 加强数据库安全性,为数据库设置管理员密码,并设定不可匿名访问。

mysql -u root -p password 登录数据库创建,名为wordpress的数据库

            CREATE DATABASE wordpress;

 编辑wordpress配置文件:

        cp wp-config-sample.php wp-config.php
        vim wp-config.php

    lvs-dr

chmod -R a+w wordpress/

配置httpd:

    在/var/www/html/下创建wordpress的软连接 ln -s 源文件 目标文件

    vim /etc/httpd/conf.d/test.conf 根据需要进行配置

lvs-dr

启动httpd服务 systemctl start httpd.service

配置RS网卡:ifconfig lo:0 172.16.0.66 netmask 255.255.255.255 broadcast 172.16.0.66 up

        echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
        echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
        echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
        echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce

        route add -host 172.16.0.66 dev lo:0

Directory上:

        ifconfig ens33:0 172.16.0.66 netmask 255.255.255.255 broadcast 172.16.0.66 up

yum install -y ipvsadm

ipvsadm -A -t 172.16.0.66:80 -s rr

ipvsadm -a -t 172.16.0.66:80 -r 172.16.252.137 -g

ipvsadm -a -t 172.16.0.66:80 -r 172.16.253.202 -g

测试:

    在另外一台172.16网域内的主机上

lvs-dr

在RS主机中 tail /var/log/httpd/access_log

lvs-dr



原创文章,作者:Immortals、zcy,如若转载,请注明出处:http://www.178linux.com/78732

(1)
Immortals、zcyImmortals、zcy
上一篇 2017-06-28
下一篇 2017-06-29

相关推荐

  • 加油吧!少年!—至我和我M25期的伙伴

    引用 衣带渐宽终不悔,为伊消得人憔悴。—王国维《人间词话》 转眼已到了27岁的年纪,不知道自己是否还称得上少年。公交上让座被小朋友成为叔叔也都是很多年的事了。哪怕再有一颗少年心现在也要肩负起整个家庭的责任。 从毕业已工作了将近六个年头,无聊的工作平凡的薪水已经使我厌倦。闭上眼睛以后需要赡养四个老人,还要照顾孩子以后这些难题映入脑海。曾经以为遥远的…

    Linux干货 2017-07-11
  • 用户管理、组管理、权限管理、文本处理工具应用示例

    用户管理、组管理、权限管理、文本处理工具应用示例 1.复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其他用户均没有任何访问权限 [root@localhost ~]# cp -a /etc/skel/ /home/tuser1/ [root@localhost ~]# chmod -R go= /hom…

    Linux干货 2017-07-23
  • 编写服务脚本/root/bin/testsrv.sh和备份脚本/root/bin/copycmd.sh

    编写服务脚本/root/bin/testsrv.sh,完成如下要求 (1) 脚本可接受参数:start, stop, restart, status (2) 如果参数非此四者之一,提示使用格式后报错退出 (3) 如是start:则创建/var/lock/subsys/SCRIPT_NAME, 并显示“启动成功” 考虑:如果事先已经启动过一次,该如何处理? (…

    Linux干货 2016-08-24
  • 硬盘分区MBR和GPT选哪个好?有什么区别?

    当前主流的硬盘分区方式有两种:MBR和GPT。 一、MBR与GPT简介与结构 什么是MBR?         MBR,全称为Master Boot Record,即硬盘的主引导记录。是对IBM兼容机的硬盘或者可移动磁盘分区时,在驱动器最前端的一段引导扇区。 MBR的组成部分       &…

    Linux干货 2016-08-29
  • bash 循环语句while、until练习

    bash 循环语句while、until while练习题          1、求100以内所有正整数之和     2、通过ping命令探测172.16.250.1 – 254范围内的所有主机的在线状态,统计在线主机和…

    Linux干货 2016-08-19
  • 集中管理利器-puppet快速入门-中

    集中管理利器-puppet快速入门-中 6.    尝试启动master puppet 启动master puppet,并确认8140端口已被监听:  #puppet返回成功,但不一定能成功启动,puppet这个功能希望能改进… 7.    目录结构 /etc/puppet/  …

    Linux干货 2015-05-04