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的
IPADDR
为192.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的网卡2
IPADDR
为172.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”,那就说明我们搭建成功了!
LVS本地实验环境搭建的更多相关文章
- XAMPP + PhpStorm + Xdebug本地实验环境搭建
参考: 下载合适的XDebug 点击这里,选择合适xdebug XAMPP配置 php_xdebug-xxxx.dll 拷贝dll至 D:\XAMPP\php\ext php.ini 文末追加 [XD ...
- https,https的本地测试环境搭建,asp.net结合https的代码实现,http网站转换成https网站之后遇到的问题
一:什么是https SSL(Security Socket Layer)全称是加密套接字协议层,它位于HTTP协议层和TCP协议层之间,用于建立用户与服务器之间的加密通信,确保所传递信息的安 ...
- 【转】https,https的本地测试环境搭建,asp.net结合https的代码实现,http网站转换成https网站之后遇到的问题
正需要这个,写的很好,就转过来了 转自: http://www.cnblogs.com/naniannayue/ 一:什么是https SSL(Security Socket Layer)全称 ...
- 操作系统内核Hack:(一)实验环境搭建
操作系统内核Hack:(一)实验环境搭建 三四年前,心血来潮,入手<Orange's:一个操作系统的实现>学习操作系统内核,还配套买了王爽的<汇编语言(第二版)>和<80 ...
- Nginx配置多个基于域名的虚拟主机+实验环境搭建+测试
标签:Linux 域名 Nginx 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://xpleaf.blog.51cto.com/9 ...
- spark-windows(含eclipse配置)下本地开发环境搭建
spark-windows(含eclipse配置)下本地开发环境搭建 >>>>>>注意:这里忽略JDK的安装,JDK要求是1.8及以上版本,请通过 java ...
- mininet(一)实验环境搭建
mininet(一)实验环境搭建 mininet(二)简单的路由实验 mininet(三)简单的NAT实验 最近学习(https://github.com/mininet/openflow-tutor ...
- rocketmq那些事儿之本地调试环境搭建
上一篇文章中我们已经介绍过rocketmq的集群环境搭建,然而在源码的学习中我们还需要进行本地的调试和问题的定位查找,毕竟还是在本地方便些,今天就说一说如何进行源码的本地调试 下载编译 对于rocke ...
- 手把手教你 Apache DolphinScheduler 本地开发环境搭建 | 中英文视频教程
点击上方 蓝字关注我们 最近,一些小伙伴反馈对小海豚的本地开发环境搭建过程不太了解,这不就有活跃的贡献者送来新鲜的视频教程!在此感谢@Tianqi-Dotes 的细致讲解 贡献者还贴心地录制了中英文两 ...
随机推荐
- C++之vector容器
一.STL的基本概念 STL(Standard Template Library)标准模板库大体上分为六大组件,分别为容器,算法,迭代器,仿函数,适配器和空间配置器,其中最重要的是容器,算法和迭代器, ...
- 【每日算法】存在重复元素 III
题目描述 这是 LeetCode 上的 220. 存在重复元素 III, 难度为 [中等] 给你一个整数数组 nums 和两个整数 k 和 t .请你判断是否存在 两个不同下标 i 和 j,使得 ab ...
- NOI2021游记
NOI2021游记 前言 写于 2021.7.28,成绩榜刚出后几个小时.总分 345 拿到银牌 183 名. 我的高中 OI 生活在这里画上句号.结局对我而言虽然不够完美,但是无论怎样都是我人生道路 ...
- 小鹤双拼win10一键恢复布局
起因 一直用的小鹤双拼布局,最近重装系统又要重新配置,麻烦 尝试 查找对应注册表设置,找到以下路径包含相应配置 HKEY_CURRENT_USER\Software\Microsoft\InputMe ...
- open jdk 绿色版 下载
https://adoptopenjdk.net/ 是 rethat 的 openjdk 地址, jdk 11 , 进入页面后搜索 : jdk_x64_windo , 下载 zip 绿色版的那个. h ...
- 工业互联网之微信小程序整体解决方案总结
随着工业互联网的快速发展,以及微信小程序的成熟,将两者结合实现对工况数据的查看和存储方案变得简单.以下方式为本人尝试过的整体解决方案,可以顺利实现无缝对接. 1.采集方式 1.ifix/intouch ...
- Docker安装Kong API Gateway并使用
我最新最全的文章都在南瓜慢说 www.pkslow.com,文章更新也只在官网,欢迎大家来喝茶~~ 1 简介 Kong不是一个简单的产品,本文讲的Kong主要指的是Kong API Gateway,即 ...
- Blazor 路由及导航开发指南
翻译自 Waqas Anwar 2021年4月2日的文章 <A Developer's Guide To Blazor Routing and Navigation> [1] 检查传入的请 ...
- 阿里内部资料:Android开发核心知识笔记共2100页,58万字,完整版开放下载
作为一个3-5年的Android工程师,我们经常会遇到这些瓶颈: 1.技术视野窄长期在小型软件公司,外包公司工作,技术视野被限制的太厉害 2.薪资提升难初中级Android岗位薪资上升空间有限,基本上 ...
- [C++]-set 集合
set集合用于存放一组无重复的元素.由于集合本身是有序的,所以可以高效地查找指定元素,也可以方便地得到指定大小范围地元素在容器中所处区间. 代码 #include<iostream> #i ...