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

相关推荐

  • bash功能特性二 命令别名和历史命令

    一、历史命令     bash提供存储历史命令的功能,下面来详细介绍一下。     1、history命令         命令格式:history [options]   &nb…

    Linux干货 2015-04-21
  • 8.网络基础知识

    1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。 网桥:网桥就是把2个不同的网段桥接起来;可隔离冲突域。 集线器:集线器就是把多根以太网线或光纤集合连接在同一段物理介质下的装置;工作在物理层;不能隔离冲突域。 二层交换机:工作于OSI模型的第2层(数据链路层),故而称为二层交换机。二层交换技术的发展已经比较成熟,二层交换机属数据…

    Linux干货 2017-08-21
  • 用户和组的相关配置文件

      用户,是计算机识别使用者身份的一种唯一使用标识。 而现实生活中为了方便人类记忆使用等,用户名往往是用便于人类识别的语言来记录的。但事实上计算机并不对人类语言敏感,所以有必要把人类语言跟机器语言对应上。于是,linux给每一个创建用户提供了一个UID。当使用用户名登录时,系统换自动对应UID来识别该用户身份。 而用户名与UID的对应信息就储存在一…

    Linux干货 2016-10-23
  • 士大夫

    士大夫

    2017-11-13
  • 最简单也最难:运维监控的最后1公里

    谈运维我们不得不提监控,监控是运维的起点,也是难点。随着IT架构逐渐复杂化,从前端到IT底层,中间涉及浏览器、网络、服务器、操作系统、中间件、应用、数据库等,每个环节厂商不尽相同。当出现异常需要定位哪个环节出了问题的时候,排查就耗时耗力,若使用优云监控产品,以上难题不再是问题。优云全栈运维监控覆盖了所有环节的监控,真正做到监控无盲区,运维无隐患。 运维最后一…

    系统运维 2017-01-09
  • Network Teaming网络组总结

    一、Network Teaming网络组的创建 第一步;准备工作,建立两个网络接口eth0、eth1,把原有网卡配置文件删除; 命令:cd /etc/sysconfig/network-scripts                rm -rf ifcfg-* &nbs…

    2017-03-26