1. 程式人生 > >LVS-NAT實現方式

LVS-NAT實現方式

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實現方式