LVS負載均衡羣集之NAT模式搭建 (實踐篇)

實驗原理圖

LVS負載均衡羣集之NAT模式搭建 (實踐篇)

實驗環境

  • LVS調度器作爲web服務器池的網關
  • LVS服務器配置兩塊網卡分別連接內外網
  • 使用輪詢(rr)調度算法
  • LVS負載調度器網段規劃 內網33網關:192.168.144.1 外網36:12.0.0.1
  • web1 192.168.144.151
  • web2 192.168.144.170
  • nfs服務器 192.168.144.145
  • client測試機 12.0.0.12

實踐操作

在NFS服務器上添加兩塊硬盤,做共享存儲使用,格式化

  • 在虛擬機上添加硬盤
    LVS負載均衡羣集之NAT模式搭建 (實踐篇)
[root@nfs ~]# fdisk /dev/sdb         //分區
令(輸入 m 獲取幫助):n                //創建新分區
Partition type:
     p   primary (0 primary, 0 extended, 4 free)
     e   extended
Select (default p): p                //主分區
分區號 (1-4,默認 1):                 //回車默認選項
起始 扇區 (2048-41943039,默認爲 2048):    //回車默認選項
將使用默認值 2048
Last 扇區, +扇區 or +size{K,M,G} (2048-41943039,默認爲 41943039):      //回車默認選項
將使用默認值 41943039
分區 1 已設置爲 Linux 類型,大小設爲 20 GiB

命令(輸入 m 獲取幫助):w        //保存

[root@nfs ~]# mkfs.xfs /dev/sdb1           //格式化磁盤
##以上操作格式化/dev/sdc磁盤
[root@nfs ~]# mkdir /opt/kgc /opt/accp         //創建掛載點
[root@nfs ~]# vim /etc/fstab                  //創建自動掛載 
...
/dev/sdb1       /opt/kgc        xfs     defaults        0 0       //編輯自動掛載條目
/dev/sdc1       /opt/accp       xfs     defaults        0 0
[root@nfs ~]# mount -a                                 //刷新掛載
[root@nfs ~]# df -hT                                   //查看磁盤掛載情況
文件系統       類型      容量  已用  可用 已用% 掛載點
/dev/sdb1      xfs        20G   33M   20G    1% /opt/kgc
/dev/sdc1      xfs        20G   33M   20G    1% /opt/accp
[root@nfs ~]# systemctl stop firewalld.service                 //關閉防火牆
[root@nfs ~]# setenforce 0
[root@nfs ~]# rpm -q nfs-utils                         //查看nfs兩個包是否安裝
nfs-utils-1.3.0-0.48.el7.x86_64
[root@nfs ~]# rpm -q rpcbind
rpcbind-0.2.0-42.el7.x86_64
[root@nfs ~]# vim /etc/exports                       //配置共享存儲配置文件
...
/opt/kgc        192.168.144.0/24(rw,sync,no_root_squash)      //支持144網段讀寫,同步,不支持降級處理
/opt/accp       192.168.144.0/24(rw,sync,no_root_squash)

把NFS服務器切換爲僅主機模式,啓動服務

LVS負載均衡羣集之NAT模式搭建 (實踐篇)

[root@nfs ~]# systemctl start nfs       //開啓nfs服務
[root@nfs ~]# systemctl start rpcbind
[root@nfs ~]# showmount -e                //查看提供共享信息
Export list for nfs:
/opt/accp 192.168.144.0/24
/opt/kgc  192.168.144.0/24
[root@nfs ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33      //修改網卡信息
BOOTPROTO=static                        //改爲靜態
IPADDR=192.168.144.145                   //添加地址,子網掩碼,網關
NETMASK=255.255.255.0
GATEWAY=192.168.144.1
[root@nfs ~]# service network restart          //重啓網絡

在web1,web2上安裝http服務,切換網卡爲僅主機模式

  • web1服務器
    [root@web1 ~]# yum install httpd -y       //安裝web服務
    [root@web1 ~]# systemctl stop firewalld.service   //關閉防火牆
    [root@web1 ~]# setenforce 0
    [root@web1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33     //修改網卡信息
    BOOTPROTO=static               //改爲靜態
    ...
    IPADDR=192.168.144.151                 //添加地址,子網掩碼,網關
    NETMASK=255.255.255.0
    GATEWAY=192.168.144.1
    [root@web1 ~]# service network restart 
    [root@web1 ~]# showmount -e 192.168.144.145       //查看nfs共享信息
    Export list for 192.168.144.145:
    /opt/accp 192.168.144.0/24
    /opt/kgc  192.168.144.0/24
    [root@web1 ~]# vim /etc/fstab                   //設置自動掛載
    192.168.144.145:/opt/kgc         /var/www/html   nfs     defaults,_netdev 0 0                   //掛載到站點中,模式爲nfs,默認網絡設備
    [root@web1 ~]# mount -a                    //刷新掛載
    [root@web1 ~]# df -hT                    //查看磁盤掛載信息
    文件系統                 類型      容量  已用  可用 已用% 掛載點
    192.168.144.145:/opt/kgc nfs4       20G   32M   20G    1% /var/www/html
    [root@web1 ~]# echo "this is kgc web" >  /var/www/html/index.html              //創建網頁
    [root@web1 ~]# systemctl start httpd.service                     //啓動web服務
  • web2服務器
    [root@web2 ~]# yum install httpd -y        //安裝web服務
    [root@web2 ~]# systemctl stop firewalld.service      //關閉防火牆
    [root@web2 ~]# setenforce 0
    [root@web2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33      //修改網卡信息
    BOOTPROTO=static               //改爲靜態
    ...
    IPADDR=192.168.144.170              //添加地址,子網掩碼,網關
    NETMASK=255.255.255.0
    GATEWAY=192.168.144.1
    [root@web2 ~]# service network restart 
    [root@web2 ~]# showmount -e 192.168.144.145           //查看nfs共享信息
    Export list for 192.168.144.145:
    /opt/accp 192.168.144.0/24
    /opt/kgc  192.168.144.0/24
    [root@web2 ~]# vim /etc/fstab                //設置自動掛載
    192.168.144.145:/opt/accp         /var/www/html   nfs     defaults,_netdev 0 0     //掛載到站點中,模式爲nfs,默認網絡設備
    [root@web2 ~]# mount -a              //刷新掛載
    [root@web2 ~]# df -hT                 //查看磁盤掛載信息
    文件系統                 類型      容量  已用  可用 已用% 掛載點
    192.168.144.145:/opt/accp nfs4       20G   32M   20G    1% /var/www/html
    [root@web2 ~]# echo "this is accp web" >  /var/www/html/index.html              //創建網頁
    [root@web2 ~]# systemctl start httpd.service               //啓動web服務

    在lvs負載調度器上添加兩塊網卡並設置路由轉發

    [root@lvs ~]# yum install ipvsadm -y  ##安裝ipvsadm調度管理工具
  • 添加外網的網卡,並切換爲僅主機模式
    LVS負載均衡羣集之NAT模式搭建 (實踐篇)
    [root@lvs ~]# cd /etc/sysconfig/network-scripts
    [root@lvs network-scripts]# cp -p ifcfg-ens33 ifcfg-ens36      //複製網卡配置文件爲ens36配置文件
    [root@lvs network-scripts]# vim ifcfg-ens33
    BOOTPROTO=static
    IPADDR=192.168.144.1              //設置內網網關ip
    NETMASK=255.255.255.0
    [root@lvs network-scripts]# vim ifcfg-ens36
    BOOTPROTO=static                 //刪除UUID
    NAME=ens36                        //修改爲36
    DEVICE=ens36
    IPADDR=12.0.0.1              //設置外網網關
    NETMASK=255.255.255.0
    [root@lvs network-scripts]# service network restart     //重啓網卡服務
    //可以在web上用ping測試能否連同網關
    [root@lvs network-scripts]# vim /etc/sysctl.conf             //路由轉發配置文件
    net.ipv4.ip_forward=1                          //開啓路由轉發
    [root@lvs network-scripts]# sysctl -p          //加載路由轉換功能
    [root@lvs network-scripts]# iptables -F        //清除轉發表
    [root@lvs network-scripts]#     iptables -t nat -F      //清除nat地址轉換表
    [root@lvs network-scripts]# iptables -t nat -A  POSTROUTING -o ens36 -s 192.168.144.0/24 -j SNAT --to-source 12.0.0.1      //指定nat地址轉換表,指定數據流出接口,指定原ip地址,指定源地址轉換SNAT,指定轉換的ip地址

    加載lvs內核模塊,配置管理軟件ipvsadm

    [root@lvs network-scripts]# modprobe ip_vs               //加載lvs內核
    [root@lvs network-scripts]# cat /proc/net/ip_vs            //查看ipvs信息
    IP Virtual Server version 1.2.1 (size=4096)
    Prot LocalAddress:Port Scheduler Flags
    -> RemoteAddress:Port Forward Weight ActiveConn InActConn
    [root@lvs network-scripts]# ipvsadm --save > /etc/sysconfig/ipvsadm          //centos7必須要先保存
    [root@lvs network-scripts]# systemctl start ipvsadm                      //啓動ipvsadm服務
    [root@lvs network-scripts]# vim /opt/nat.sh                       //編寫ipvsadm腳本
    #!/bin/bash
    ipvsadm -C                      //清空ipvs緩存
    ipvsadm -A -t 12.0.0.1:80 -s rr       //指定虛擬服務訪問入口,指定輪詢算法
    ipvsadm -a -t 12.0.0.1:80 -r 192.168.144.151:80 -m             //指定真實服務器,nat模式
    ipvsadm -a -t 12.0.0.1:80 -r 192.168.144.170:80 -m
    ipvsadm               //啓動
    [root@lvs network-scripts]# chmod +x /opt/nat.sh              //給執行權限
    [root@lvs network-scripts]# cd /opt/  
    [root@lvs opt]# ./nat.sh                             //啓動腳本
    IP Virtual Server version 1.2.1 (size=4096)
    Prot LocalAddress:Port Scheduler Flags
    -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
    TCP  lvs:http rr
    -> 192.168.144.151:http          Masq    1      0          0         
    -> 192.168.144.170:http          Masq    1      0          0 

    用client測試機(僅主機模式)訪問12.0.0.1

    LVS負載均衡羣集之NAT模式搭建 (實踐篇)LVS負載均衡羣集之NAT模式搭建 (實踐篇)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章