• LVS本地实验环境搭建


    文中实验需要使用以下软件:

    • CentOS的镜像
    • Virtual Box
    • GNS3

    0、实验前的准备工作

    0.1、修改yum源

    为了方便安装软件,我们设置yum源为公司yum源

    • 1、直接复制公司机器上的yum源文件到自己机器上
    [root@lvs ~]# vim /etc/yum.repos.d/XXX.repo 
    
    
    • 2、更新cache
    [root@lvs ~]# yum makecache 
    

    1、创建4台实验用的虚机


    分别为

    • Client: 客户机器
    • LVS: LVS 机器
    • RS1: real server 1
    • RS2: real server 2

    以上系统均为CentOS7,所用虚拟软件为Virtual Box

    可以通过先创建一台虚机后,逐个复制的方法来快速创建虚机。


    记得勾选“重新初始化所有网卡的MAC地址(R)”

    所有虚机均启用两个网卡,如下图所示,连接方式选择未指定

    之所以选择未指定方式是为了后面在GSN中方便连线

    为了方便管理,我们后面会将eth0,即第一个网卡用于内部;相对的,eth1,即第二个网卡用于外部。

    2、在GSN3中设置网络拓扑

    按照下图所示的方式连接各台虚机,图中所示的IP网卡连接方式均可先忽略,后面会讲述。

    3、设置RS1虚机

    3.1、设置网卡连接方式

    在GSN中的RS1图标上右击,选择Configure

    然后,在network选项卡中,设置Adapters为1

    其实对于RS1而言,上面的操作不做也可以...但是当需要启用外部网卡eth1的时候,就需要设置Adapters为2了。

    网卡1连接方式选择仅主机(Host Only)网络

    3.2、设置网卡1信息

    我们先来看下网卡信息,输入ip addr指令可以看到

    当然,我这里是已经设置后的情形,设置前稍有不同,不过我们可以看到网卡1的名称应该为enp0s3,
    所以我们可以这样来修改网卡1的配置

    [root@rs1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-enp0s3
    TYPE="Ethernet"
    PROXY_METHOD=none
    BROWSER_ONLY=no
    BOOTPROTO=static
    IPADDR=192.168.30.17
    PREFIX=24
    GATEWAY=192.168.30.200
    DEFROUTE="yes"
    IPV4_FAILURE_FATAL="no"
    IPV6INIT="yes"
    IPV6_AUTOCONF="yes"
    IPV6_DEFROUTE="yes"
    IPV6_FAILURE_FATAL="no"
    IPV6_ADDR_GEN_MODE=stable-privacy
    NAME="enp0s3"
    DEVICE="enp0s3"
    ONBOOT="yes"
    

    这里需要注意将其网关设置为192.168.30.200,即LVS的内部地址。

    修改后通过service network restart指令来使新配置生效。

    [root@rs1 ~]# service network restart
    Restarting network (via systemctl):                        [  确定  ]
    

    3.3、安装apache服务

    为了方便后面访问lvs时候知道访问到了哪台机器,我们在每台RS上都安装apache服务,以开放80端口服务。

    # 安装apache服务
    [root@rs1 ~]# yum install -y httpd
    # 启动apache服务
    [root@rs1 ~]# httpd
    

    修改默认主页内容为RS1

    [root@localhost rs1]# echo RS1 > /var/www/html/index.html
    

    为了方便区分,在两台不同的RS上,我们需要输入不同的内容。

    3.4、关闭防火墙

    3.4.1、临时关闭防火墙

    可以使用 setenforce 0来临时关闭防火墙,但是重启电脑后会失效

    [root@rs1 ~]# getenforce
    Enforcing
    [root@rs1 ~]# setenforce 0
    [root@rs1 ~]# getenforce
    Permissive
    

    3.4.2、永久关闭防火墙

    [root@rs1 ~]# vim /etc/selinux/config
    # This file controls the state of SELinux on the system.
    # SELINUX= can take one of these three values:
    #     enforcing - SELinux security policy is enforced.
    #     permissive - SELinux prints warnings instead of enforcing.
    #     disabled - No SELinux policy is loaded.
    SELINUX=enforce
    # SELINUXTYPE= can take one of three two values:
    #     targeted - Targeted processes are protected,
    #     minimum - Modification of targeted policy. Only selected processes are protected. 
    #     mls - Multi Level Security protection.
    SELINUXTYPE=targeted
    

    把SELINUX=enforce 改成disabled就可以了,重启电脑reboot,永久生效

    [root@rs1 ~]# reboot
    # 输入上面的命令后Xshell断开连接
    [root@rs1 ~]# Connection closing...Socket close.
    
    Connection closed by foreign host.
    
    Disconnected from remote host(本机CentOS) at 15:31:57.
    # 再次开机后
    [root@rs1 ~]# getenforce 
    Disabled
    

    关闭firewall

    3.4.3、关闭firewall

    此外还需要执行下面的命令

    # 查看防火墙状态
    firewall-cmd --state
    # 临时关闭防火墙
    systemctl stop firewalld.service
    # 永久关闭防火墙
    systemctl disable firewalld
    

    这样一来RS1便设置好了。

    4、设置RS2虚机

    与设置RS1虚机方式类似,只是要记住

    • RS2的IPADDR192.168.30.27
    • RS2的apache主页内容为RS2

    5、设置LVS虚机

    LVS需要设置的内容比较多,我们先把共性的地方设置了

    5.1、关闭防火墙

    同RS服务器设置,不再多说

    5.2、配置网卡1

    与RS类似,但是不需要配置网关了

    [root@lvs ~]# vim /etc/sysconfig/network-scripts/ifcfg-enp0s3
    TYPE="Ethernet"
    PROXY_METHOD=none
    BROWSER_ONLY=no
    BOOTPROTO=static
    IPADDR=192.168.30.200
    PREFIX=24
    
    DEFROUTE="yes"
    IPV4_FAILURE_FATAL="no"
    IPV6INIT="yes"
    IPV6_AUTOCONF="yes"
    IPV6_DEFROUTE="yes"
    IPV6_FAILURE_FATAL="no"
    IPV6_ADDR_GEN_MODE=stable-privacy
    NAME="enp0s3"
    DEVICE="enp0s3"
    ONBOOT="yes"
    

    5.3、配置网卡2

    LVS需要一个网卡用于连接外部网络,故需要额外设置。

    网卡2的连接方式需要在Virtual Box中改为桥接模式

    并且修改网卡2的配置文件:

    [root@lvs ~]# vim /etc/sysconfig/network-scripts/ifcfg-enp0s8
    DEVICE="enp0s8"
    BOOTPROTO="none"
    IPADDR=172.20.0.200
    PREFIX=24
    

    你机器上的网卡二可能不叫enp0s8,同前文一样ip addr可以查看网卡的名字。

    service network restart重启服务后,网卡改动生效。

    5.4、安装ipvsadm

    linux 内核自带了 ipvs,但是ipvsadm还是要我们自己安装的。

    [root@lvs ~]# yum -y install ipvsadm
    ...
    
    已安装:
      ipvsadm.x86_64 0:1.27-7.el7                                                                                                                          
    
    完毕!
    

    检查是否安装成功

    [root@lvs yum.repos.d]# ipvsadm
    IP Virtual Server version 1.2.1 (size=4096)
    Prot LocalAddress:Port Scheduler Flags
      -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
    

    看到如上内容,安装就成功了

    5.5、打开ip转发机制

    [root@lvs ~]# echo 1 >/proc/sys/net/ipv4/ip_forward 
    [root@lvs ~]# echo net.ipv4.ip_forward = 1 >> /etc/sysctl.conf
    [root@lvs ~]# sysctl -p
    net.ipv4.ip_forward = 1
    

    5.6、配置转发规则

    #创建一个集群服务,调度算法rr
    [root@lvs ~]# ipvsadm -A -t 172.20.0.200:80 -s rr           
    #添加rs1 nat方式   
    [root@lvs ~]# ipvsadm -a -t 172.20.0.200:80 -r 192.168.30.17 -m
    #添加rs2 nat方式    
    [root@lvs ~]# ipvsadm -a -t 172.20.0.200:80 -r 192.168.30.27 -m
    

    6、配置Client虚机

    Client虚机的配置方式很简单,毕竟它只是用来访问LVS的,我们只需要配置他的网卡2信息就好。

    6.2、配置网卡2

    配置方式和LVS网卡2的配置方式相似,只是要注意:

    • Client的网卡2IPADDR172.20.0.123

    service network restart重启服务后,网卡改动生效。

    7、测验是否搭建成功

    我们只要在Client机器上访问LVS机器的外部网卡IP即可。

    [root@client ~]# curl 172.20.0.200
    RS1
    [root@client ~]# curl 172.20.0.200
    RS2
    

    如果能依次出现“RS1”和“RS2”,那就说明我们搭建成功了!

  • 相关阅读:
    响应头中的 ETag 值是如何生成的
    http请求状态码
    RPC 和 REST 有什么优劣
    comet 长轮询与 node 实现
    HTTPS 加密
    iterm2 快捷键
    static in C/C++
    03-树3 Tree Traversals Again
    2016.03.19随笔
    03-树2 List Leaves
  • 原文地址:https://www.cnblogs.com/laolieren/p/set_up_lvs_test_env.html
Copyright © 2020-2023  润新知