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 20:15
下一篇 2017-06-29 14:32

相关推荐

  • Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示

    目录与路径 相对路径与绝对路径 绝对路径:路径的写法【一定由根目录 / 写起】 /usr/share/doc 这个目录。 相对路径:路径的写法【不是由 / 写起】 由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: 【cd ../man】这就是相对路径的写法。相对路径意指相对于当前的工作目录 cd (切换目录) . &n…

    Linux干货 2016-11-06
  • 基于NFS服务的wordpress站点

    实验要求:             (1) nfs server导出/data/web,在目录中提供wordpress;     (2) nfs client挂载nfs server导出的文件系统至/data/web; …

    2017-06-11
  • 基于Python和MoviePy库实现数据的动态展示

    基于Python和MoviePy库实现数据的动态展示 (翻译:以马内利)  原文链接:Data Animations With Python and MoviePy   Python拥有很多实现数据可视化的库,但是很少可以展示GIFs的动态视图。 这篇博客主要介绍怎样使用MoviePy库作为一个其他可视化库的通用插件。 Movi…

    2015-03-26
  • 8月2日作业

    1、在/testdir/data里创建的新文件自动属于g1组,组g2的成员如:alice能对这些新文件有读写权限,组g3的成员如:tom只能对新文件有读权限,其它用户(不属于g1,g2,g3)不能访问这个文件夹。 答: ~]# groupadd g1 ~]# groupadd g2 ~]# groupadd g3 ~]# useradd -G g2 alic…

    Linux干货 2016-08-04
  • 终端类型

        终端是什么?终端不仅仅是显示器,还包括与之配套的键盘。在linux中表现为一个字符设备。Linux与用户交互时,直接向终端设备发送数据,数据就会被发送到屏幕上,用户通过键盘写的数据,就是向这个字符设备写数据,数据会同步显示到显示器上,回车后数据才会被linux执行命令。 终端类型 1串行口终端  &n…

    Linux干货 2016-10-17
  • 26期网络班

    26期网络班

    Linux干货 2016-12-26