LVS-NAT和LVS-DR实验(具体步骤)

实验一:LVS-NAT模式案例

  • 实验示意图:

    LVS-NAT和LVS-DR实验(具体步骤)_第1张图片

  • 实验1.1:rr调度算法:
    • 1,调整好各个实验主机的主机环境,调整IP,关闭防火墙;
    • 2,LVS、RS1和RS2安装net-tools工具,安装http;LVS上安装ipvsadm工具;
    • 3,将RS1和RS2的网卡网关指向LVS的DIP:

    • 4,开启LVS主机的IP转发功能:

      LVS-NAT和LVS-DR实验(具体步骤)_第2张图片

      • 使其生效:
        • [root@lvs ~]# sysctl -p
          • net.ipv4.ip_forward = 1

    • 5,LVS配置定义集群:
      • 1,配置调度算法,工作模式# ipvsadm -A -t 172.16.9.100:80 -s rr 

        LVS-NAT和LVS-DR实验(具体步骤)_第3张图片

      • 2,将后端的RS加入集群:

        LVS-NAT和LVS-DR实验(具体步骤)_第4张图片

        LVS-NAT和LVS-DR实验(具体步骤)_第5张图片

        • [root@lvs ~]# ipvsadm -a -t 172.16.9.100:80 -r 192.168.17.27 -m
        • [root@lvs ~]# ipvsadm -a -t 172.16.9.100:80 -r 192.168.17.37 -m
    • 6,查看配置的结果:# ipvsadm -Ln

      LVS-NAT和LVS-DR实验(具体步骤)_第6张图片

    • 7,测试:

      LVS-NAT和LVS-DR实验(具体步骤)_第7张图片

    • 8,查看状态:# ipvsadm -Ln --stats

      LVS-NAT和LVS-DR实验(具体步骤)_第8张图片

    • 9,查看速率:# ipvsadm -Ln --rate

      LVS-NAT和LVS-DR实验(具体步骤)_第9张图片

    • 10,循环访问:# while true;do curl 172.16.9.100 ;sleep 1 ;done

      LVS-NAT和LVS-DR实验(具体步骤)_第10张图片

  • 实验2.2:增加权重:
    • 修改模式为wrr:# ipvsadm -E -t 172.16.9.100:80 -s wrr 

    • 增加权重:修改并增加权重:-w:

      LVS-NAT和LVS-DR实验(具体步骤)_第11张图片

      • [root@lvs ~]# ipvsadm -e -t 172.16.9.100:80 -r 192.168.17.27 -m -w 3
      • [root@lvs ~]# ipvsadm -e -t 172.16.9.100:80 -r 192.168.17.37 -m -w 6

        LVS-NAT和LVS-DR实验(具体步骤)_第12张图片

    • 测试:# while true;do curl 172.16.9.100 ;sleep 1 ;done

      LVS-NAT和LVS-DR实验(具体步骤)_第13张图片

  • 实验2.3:实现端口映射:
    • 修改RS的http端口号为8080:
      • sed -i 's/^Listen 80/Listen 8080/' /etc/httpd/conf/httpd.conf

    • 在LVS上将RS1的端口映射修改为8080:

    • 先删除该条规则,在添加:

      • [root@lvs ~]# ipvsadm -d -t 172.16.9.100:80 -r 192.168.17.27
      • [root@lvs ~]# ipvsadm -a -t 172.16.9.100:80 -r 192.168.17.27:8080 -m -w 6

        LVS-NAT和LVS-DR实验(具体步骤)_第14张图片

    • 测试:

      LVS-NAT和LVS-DR实验(具体步骤)_第15张图片

  • 实验2.4:使用DH算法,源地址哈希算法
    • 将LVS集群调度算法修改sh:# ipvsadm -E -t 172.16.9.100:80 -s sh

      LVS-NAT和LVS-DR实验(具体步骤)_第16张图片

    • 测试:只要源地址不变,访问的为固定目标:

      LVS-NAT和LVS-DR实验(具体步骤)_第17张图片

  • 实验2.5:使用SH算法,目标地址哈希算法
    • 修改LVS的调度算法:# ipvsadm -E -t 172.16.9.100:80 -s dh

      LVS-NAT和LVS-DR实验(具体步骤)_第18张图片

  • 实验2.6:使用默认动态算法WLC:
    • 修改后,直接为默认算法wlc :# ipvsadm -E -t 172.16.9.100:80 

      LVS-NAT和LVS-DR实验(具体步骤)_第19张图片

  • 实验3:RS上安装wordpress,后端增加数据库
    • 实验示意图:

      LVS-NAT和LVS-DR实验(具体步骤)_第20张图片

    • 实验步骤:
      • 1,在上面实验基础上,RS安装php-fpm,PHP-mysql模块:
        • PHP-FPM(PHP FastCGI Process Manager)意:PHP FastCGI 进程管理器,用于管理PHP 进程池的软件,用于接受web服务器的请求。PHP-FPM提供了更好的PHP进程管理方式,可以有效控制内存和进程、可以平滑重载PHP配置。php-fastcgi 只是一个cgi程序,只会解析php请求,并且返回结果,不会管理(因此才出现的php-fpm)。
      • 2,在192.168.17.47主机上安装数据库:# yum -y install mariadb-server
        • 1,启动服务:# systemctl start mariadb.service 
        • 2,添加wordpress账号:# mysql -e "create database wordpress;grant all on wordpress.* to wordpress@'192.168.17.%' identified by 'hly'"

      • 3,RS1设置:
        • 1,启动php-fpm服务:# systemctl start php-fpm.service 

        • 2,修改RS1的apache配置文件,使其支持fastcgi程序:# vim /etc/httpd/conf.d/fcgi.conf
          • addType application/x-httpd-php .php
          • AddType application/x-httpd-php-source .phps
          • ProxyRequests Off
          • ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/var/www/html/$1

            LVS-NAT和LVS-DR实验(具体步骤)_第21张图片

        • 3,修改httpd主页面,使其支持PHP页面:# vim /etc/httpd/conf/httpd.conf 

        • 4,启动HTTP服务:# systemctl restart httpd.service 
        • 5,传入wordpress程序:解压放入/var/www/html目录下:
          • 修改# cp wp-config-sample.php wp-config.php 主配置文件名称;
          • 修改wp-config.php配置文件:# vim /var/www/html/wp-config.php 按照实际数据库信息修改:

            LVS-NAT和LVS-DR实验(具体步骤)_第22张图片

      • 4,RS2的主机同样设置:
      • 5,测试wordpress程序:
        • 浏览器输入VIP的地址:

        • 填写相关信息:测试正常
  • 保存ipvsadm规则信息:
    • [root@lvs ~]# ipvsadm-save > /data/ipvs.log

      LVS-NAT和LVS-DR实验(具体步骤)_第23张图片

    • 清理规则:ipvsadm -C
      • 恢复规则:ipvsadm-restore < /data/ipvs.log
    • ipvsadm服务需要相关配置文件才能起来,需要创建/etc/sysconfig/ipvsadm文件。
    • 将配置规则导入:# ipvsadm-save > /etc/sysconfig/ipvsadm-config 
    • 起来后导入配置后,重启服务,即可。
  • 实验二:LVS-DR模型

    LVS-NAT和LVS-DR实验(具体步骤)_第24张图片

    • 实验示意图:

      LVS-NAT和LVS-DR实验(具体步骤)_第25张图片

    • 实验过程:
      • 1,准备实验环境:修改相关IP地址:
      • 2,路由器主机192.168.17.57主机IP转发:关闭防火墙:

        LVS-NAT和LVS-DR实验(具体步骤)_第26张图片

        • 测试:客户端主机进行Ping测试:
      • 修改RS1和RS2的网关,指向Router;
      • 3,LVS-DR模型的特点:
        • (1) Director和各RS都配置有VIP
        • (2) 确保前端路由器将目标IP为VIP的请求报文发往Director
          • 在RS上修改内核参数以限制arp通告及应答级别
            • /proc/sys/net/ipv4/conf/all/arp_ignore
            • /proc/sys/net/ipv4/conf/all/arp_announce
        • (3)RS的RIP可以使用私网地址,也可以是公网地址;RIP与DIP在同一IP网络; RIP的网关不能指向DIP,以确保响应报文不会经由Director
        • (4)RS和Director要在同一个物理网络
        • (5)请求报文要经由Director,但响应报文不经由Director,而由RS直接发往 Client
        • (6)不支持端口映射(端口不能修败)
        • (7)RS可使用大多数OS系统
      • 3,LVS配置VIP:192.168.17.100 :#  ip a a 192.168.17.100/24 dev ens33

      • 4,RS1和RS2分别添加VIP,添加内核参数,通过脚本方式添加相关参数:

        LVS-NAT和LVS-DR实验(具体步骤)_第27张图片

         
        #!/bin/bash
        #Author:hly
        #Date:2017-08-13
        vip=192.168.17.100
        mask='255.255.255.255'
        dev=lo:1
        rpm -q httpd &> /dev/null || yum -y install httpd &>/dev/null
        #service httpd start &> /dev/null && echo "The httpd Server is Ready!"
        #echo "

        `hostname`

        " > /var/www/html/index.html case $1 in start) 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 ​ifconfig $dev $vip netmask $mask #broadcast $vip up #route add -host $vip dev $dev echo "The RS Server is Ready!" ;; stop) ifconfig $dev down echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce echo "The RS Server is Canceled!" ;; *) echo "Usage: $(basename $0) start|stop" exit 1 ;; esac

         

      • 5,添加LVS规则:默认不指定为DR模型
        • [root@lvs ~]# ipvsadm -A -t 192.168.17.100:80 -s rr

        • [root@lvs ~]# ipvsadm -a -t 192.168.17.100:80 -r 192.168.17.27
        • [root@lvs ~]# ipvsadm -a -t 192.168.17.100:80 -r 192.168.17.37

          LVS-NAT和LVS-DR实验(具体步骤)_第28张图片

      • 6,做测试:# while true;do curl http://192.168.17.100/index.html;sleep 1 ;done

        LVS-NAT和LVS-DR实验(具体步骤)_第29张图片

    • 7,网页测试:192.168.17.100/wordpress

你可能感兴趣的:(linux进阶)