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”,那就說明我們搭建成功了!

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