码迷,mamicode.com
首页 > 其他好文 > 详细

LVS-NAT实现方式

时间:2018-04-12 18:38:32      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:LVS-NAT   LVS-NAThttps   

环境准备:
                注意:时间必须同步
                RS服务器:192.168.27.144 (与VS服务器进行时间同步)
                                 192.168.27.145
                VS服务器(与172.18.0.1进行同步并且允许192.168.27.0网段与本机同步)
                DIP地址:192.168.27.105 
                VIP地址:172.20.101.91
                CIP服务器:172.20.0.101
                NTP服务器:172.18.0.1

一:在VS服务器上进行操作

        1 chronyd服务(网络时间协议)搭建
            ntpdate "172.18.0.1"(手动同步)
        2 启动chronyd服务;
          systemctl start chronyd  #chronyd是centos7上面的一个新的时间同步服务器,默认UDP的323端口
        3 编辑chronyd配置文件
          vim /etc/chronyd.conf
              server 172.18.0.1 iburst       #添加此行指定与哪台服务器进行同步,iburst代表第一次启动就进行同步
              allow 192.168.27.0/24          #取消allow前面的注释,后面写入IP网段或地址
              local stratum 10               #取消此行注释,意思是如果本机无法与远程主机同步,也不影响后端服务器与本机的同步
        4 重启chronyd服务
         systemctl restart chronyd          #更改配置文件后重启服务生效,服务使用的是UDP的323端口;

二:分别在RS服务器上操作

            1 编辑chronyd服务的配置文件
            vim /etc/chronyd.conf
                    server 192.168.27.105        #要同步的主机IP指向VS服务器的DIP地址

        2 重启服务并且查看端口是否存在
                    systemctl restart chronyd        #重启chronyd服务;
                    ss -nlup                         #查看是否有UDP的323端口;

        3 查看同步信息
                    chronyc sources                  #使用此项命令可查看同步的信息;

三:给后端RS服务器分别设置网关

                1 vim /etc/sysconfig/network-scripts/ifcfg-ens33      
                        GATEWAY=192.168.27.105           #添加此行指定网关
                    2 在另一台RS服务器上同样设定网关;

四:在VS服务器上进行操作

                 1 开启ip_forward转发功能
                        echo net.ipvs.ip_forward=1 >> /etc/sysctl.conf     #开启路由转发功能
                 2 使用命令生效
                        sysctl -p
                 3 使用命令查看
                        sysctl -a | grep ip_forward                      #查看是否有结果

五:给客户端配置外网IP地址并且指定网关

                1 vim /etc/sysconfig/network-scripts/ifcfg-eth1
                        DEVICE=eth1                                      #指定网卡名称
                        IPADDR=172.20.0.101                              #指定IP地址
                        GATEWAY=172.20.101.91                            #指定目标网关,此处网关为VS服务器的VIP地址
                2 重启网卡服务
                        service network restart                          #此服务器是centos6所以使用此命令重启网卡服务
                3 测试是否能够ping通后端RS主机以及VS服务器的DIP;
                        ping 192.168.27.105
                        ping 192.168.27.144
                        ping 192.168.27.145

六:分别在后端RS服务器上搭建httpd

    1 在192.168.27.144上搭建httpd服务
            yum install httpd                                 #使用yum安装httpd服务
            echo "rs1" > /var/www/html/index.html             #方便后续测试结果明显 所以此处主页内容为rs1
            systemctl enable httpd                            #开机运行httpd服务

    2 在192.168.27.145上执行同样的操作,但主页内容为"rs2"
    3 注意:
                在启动httpd服务如果过慢可以在/etc/hosts文件中添加本机的ip地址后方对应主机名称得以解决

七:在CIP的服务器上面进行测试

    curl 192.168.27.144            #如果可以得到rs1的显示则说明成功

八:在VS服务器上进行操作

    1 yum install ipvsadm            #安装此服务
    2 ipvsadm -A -t 172.20.101.91:80 -s rr    
         #-A : 添加VS集群
                 #-t : 指定目标协议为TCP协议
             #172.20.101.91:80 : VIP:PORT
                 #-s : 指定调度算法
           #rr : 轮询算法
    3 ipvsadm -a -t 172.20.101.91:80 -r 192.168.27.144 -m  
        #-a : 添加RS集群                                                                                          
        #-t : 指定目标协议为TCP协议                                                             
        #172.20.101.91:80 : VIP:PORT                                                                    
        #-r : 指定RS的IP地址                                                            
        #-m : nat类型 

          ipvsadm -a -t 172.20.101.91:80 -r 192.168.27.145 -m 
                    #与以上解释同理

    4 ipvsadm -ln                    #查看配置的集群信息,以下内容就为此实验配置的内容
            IP Virtual Server version 1.2.1 (size=4096)
            Prot LocalAddress:Port Scheduler Flags
              -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
            TCP  172.20.101.91:80 rr
              -> 192.168.27.144:80            Masq    1      0          0         
              -> 192.168.27.145:80            Masq    1      0          0

    5 更改调度算法
            ipvsadm -E -t 172.20.101.91:80 -s wrr  
                    #-E : 修改VS集群                                                        
                    #-t : 指定目标协议为TCP协议          
                    #172.20.101.91:80 : VIP:PORT                        
                    #-s : 指定调度算法                                        
                    #wrr: 加权轮询算法
            ipvsadm -e -t 172.20.101.91:80 -r 192.168.27.144 -w 3 -m  
                    #-e : 编辑RS集群                                                                                 
                    #-t : 指定目标协议为TCP协议                                                                        
                    #172.20.101.91:80 : VIP:PORT                                              
                    #192.168.27.144:指定后端RS服务器地址                                                           
                    #-r : 指定RS的IP地址                                                           
                    #-m : nat类型                                                               
                    #-w : 指定权重大小

    6 ipvsadm -ln                #查看集群信息,显示以下内容则代表配置成功
            IP Virtual Server version 1.2.1 (size=4096)
            Prot LocalAddress:Port Scheduler Flags
              -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
            TCP  172.20.101.91:80 wrr
              -> 192.168.27.144:80            Masq    3      0          0         
              -> 192.168.27.145:80            Masq    1      0          0         

    7 /sbin/ipvsadm-save -n > /etc/sysconfig/ipvsadm       #手动保存ipvsadm策略到文件中,服务停止后会自动保存此文件并清空内存内容
         /sbin/ipvsadm-restore < /etc/sysconfig/ipvsadm       #手动恢复ipvsadm策略到内存中,服务启动后会自动读取此文件并还原到内存

    8 更改为源地址hash : 只要源地址不变,永远会调度到后端同一个RS上
            ipvsadm -E -t 172.20.101.91:80 -s sh

    9 将算法改为wlc算法:
            ipvsadm -E -t 172.20.101.91:80 -s wlc
    10 RS服务器的端口不同也没关系,不能直接更改,只能删除后再添加
            ipvsadm -d -t 172.20.101.91:80 -r 192.168.27.144:80 
            ipvsadm -a -t 172.20.101.91:80 -r 192.168.27.144:8080 -m

实现https的调度

    1 在RS服务器分别操作                    
                yum install mod_ssl                   #此处使用自定义证书,安装这个包就附带证书
    2 安装完成后重启httpd服务
            systemctl restart httpd               #重启后会发现多了一个443的端口
    3 在VS服务器上操作,添加集群443端口
            ipvsadm -A -t 172.20.101.91:443 -s wlc 
            ipvsadm -a -t 172.20.101.91:443 -r 192.168.27.144:443 -m
            ipvsadm -a -t 172.20.101.91:443 -r 192.168.27.145:443 -m
    4 在CIP的服务器上面进行测试
            curl -k https://172.20.101.91 

LVS-NAT实现方式

标签:LVS-NAT   LVS-NAThttps   

原文地址:http://blog.51cto.com/kaikai0720/2097549

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!