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入门基础知识

    1、计算机的组成及其功能。         计算机系统主要分为硬件系统和软件系统两部分。         (1)硬件系统由五部分组成,其中包括:         控制器:调度程序、数据、地址,协调计算机各部分工作及内存与外设的访问;         运算器:对数据进行加工处理;         存储器:存储程序、信号、命令,数据等信息,并在需要时提供这些信息…

    Linux干货 2018-02-25
  • 马哥教育网络班20期+第2周课程练习

    1、Linux上的文件管理命令有哪些?其常用的使用方法及相关示例演示。 答: cp 复制、 mv 移动、rm 删除 (1)cp :复制文件或目录         用法:    cp [OPTION]… [-T] SOURCE DEST    cp [OPTI…

    Linux干货 2016-06-16
  • RPM包管理——运维必备技能之一

    软件运行环境: API:Application Programming Interface     POSIX :Portable OS 程序源代码 –> 预处理 –> 编译 –> 汇编 –> 链接     …

    Linux干货 2016-08-21
  • IPTABLES

    IPTABLES 软防火墙 防火墙是做什么的: 在生活中顾名思义防火墙即是为了防止火势、火情蔓延而设立的一道屏障,那么这道屏障在设置在那里后就可以保障内外两地将无情火分隔,保证我的内地不受外地的火情影响,从而安全的生活下去;查看下图帮助理解防火墙; 图1-1     图1-1可以看出当数据流量从外网主机访问内网主机时,…

    Linux干货 2017-03-15
  • Linux文件管理命令

    2018-03-11

    2018-03-11
  • 8.1-用户和组(命令篇)

    1、标准输入输出 我们知道,执行一个shell命令行时通常会自动打开三个标准文件,     即标准输入文件(stdin),通常对应终端的键盘;     标准输出文件(stdout)     标准错误输出文件(stderr),这两个文件都对应…

    Linux干货 2016-08-04