热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

实验详解LVSNAT部署实战

目录一案例环境二环境规划三实验步骤一案例环境LVS调度器作为Web服务器池的网关,LVS两块网卡,分别连接内外网,使用轮询(


目录

  • 一 案例环境
  • 二 环境规划
  • 三 实验步骤


一 案例环境

LVS调度器作为Web服务器池的网关,LVS两块网卡,分别连接内外网,使用轮询(rr)调度算法
在这里插入图片描述
(此次实验只搭建了web服务器1,2)


二 环境规划

1 调度器
对外公网:20.0.0.11 (NAT)
私有网络:192.168.100.11 (VM1)
业务端口号:80
路由转发功能

2 Web1
私有网络:192.168.100.12 (VM1)
网关:192.168.100.11

3 Web2
私有网络:192.168.100.13 (VM1)
网关:192.168.100.11

4 存储服务器
私有网络:192.168.100.14 (VM1)
网关:192.168.100.11


三 实验步骤

调度器

##添加一张网卡##
[root@localhost ~]# nmcli connection
NAME UUID TYPE DEVICE
Wired connection 1 bfc27410-ab83-37ce-a52b-ed5c4e6d0f92 802-3-ethernet ens37
ens33 7f14cbe3-135f-456e-a81e-d552a9c0e172 802-3-ethernet ens33
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens37
[root@localhost network-scripts]# vi ifcfg-ens37
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
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=ens37
UUID=bfc27410-ab83-37ce-a52b-ed5c4e6d0f92
DEVICE=ens37
ONBOOT=yes
IPADDR=192.168.100.11
NETMASK=255.255.255.0
[root@localhost network-scripts]# systemctl restart network
[root@localhost network-scripts]# vi ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
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=ens33
UUID=7f14cbe3-135f-456e-a81e-d552a9c0e172
DEVICE=ens33
ONBOOT=yes
IPADDR=20.0.0.11
NETMASK=255.255.255.0
[root@localhost network-scripts]# systemctl restart network
[root@localhost network-scripts]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
20.0.0.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
192.168.100.0 0.0.0.0 255.255.255.0 U 100 0 0 ens37
[root@localhost ~]# yum -y install ipvsadm
[root@localhost ~]# ipvsadm -v
ipvsadm v1.27 2008/5/15 (compiled with popt and IPVS v1.2.1)
[root@localhost ~]# modprobe ip_vs
[root@localhost ~]# cat /proc/net/ip_vs
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port Forward Weight ActiveConn InActConn##创建虚拟服务器(注意:NAT模式要两张网卡,调度器的地址时外网口地址)##
[root@localhost ~]# ipvsadm -A -t 20.0.0.11:80 -s rr##添加服务器节点##
[root@localhost ~]# ipvsadm -a -t 20.0.0.11:80 -r 192.168.100.12:80 -m
[root@localhost ~]# ipvsadm -a -t 20.0.0.11:80 -r 192.168.100.13:80 -m##保存LVS策略##
[root@localhost ~]# ipvsadm-save > /opt/ipvsadm
[root@localhost ~]# cat /opt/ipvsadm
-A -t localhost.localdomain:http -s rr
-a -t localhost.localdomain:http -r 192.168.100.12:http -m -w 1
-a -t localhost.localdomain:http -r 192.168.100.13:http -m -w 1##开启调度服务器路由转发功能##
[root@localhost ~]# vi /etc/sysctl.conf
......
net.ipv4.ip_forward = 1
[root@localhost ~]# sysctl -p
net.ipv4.ip_forward = 1

说明:
● ipvsadm -A -t 20.0.0.11:80 -s rr
-A:表示添加虚拟服务器
-t:用来指定VIP地址及TCP端口
-s:用来指定负载调度算法——rr(轮询算法),wrr(加权算法),lc(最少轮询),wlc(加权最少轮询)
● ipvsadm -a -t 20.0.0.11:80 -r 192.168.100.12:80 -m
-a:表示添加真实服务器
-t:用来指定VIP地址及TCP端口
-r:用来指定RIP地址及TCP端口
-m:表示使用NAT群集模式(“-g”是DR模式,“-i”是TUN模式)
-m参数后面还可以跟-w的参数,这里没有做的“-w”用来设置权重(权重为0时表示暂停节点)
-d:表示从服务器池中删除某一个节点,执行删除操作时必须指定目标对象,包括节点地址,虚拟地址。
-D:表示删除整个虚拟服务器,使用选项-D时,指定虚拟IP地址即可,无需指定节点
● ipvsadm -L:表示查看节点状态,加个“-n”将以数字形式显示地址,端口信息

存储服务器

##配置IP地址和网关##
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
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=ens33
UUID=c97c89fa-33b2-4d71-af32-0fade6d5ecf3
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.100.14
NETMASK=255.255.255.0
GATEWAY=192.168.100.11
[root@localhost ~]# systemctl restart network
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.100.11 0.0.0.0 UG 100 0 0 ens33
192.168.100.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33[root@localhost ~]# rpm -q nfs-utils ##如果没有装,yum -y install nfs-utils
nfs-utils-1.3.0-0.48.el7.x86_64
[root@localhost ~]# rpm -q rpcbind ##如果没有装,yum -y install rpcbind
rpcbind-0.2.0-42.el7.x86_64
[root@localhost ~]# systemctl start nfs
[root@localhost ~]# systemctl start rpcbind
[root@localhost ~]# mkdir /opt/51xit /opt/52xit
[root@localhost ~]# vi /etc/exports
......
/opt/51xit 192.168.100.0/24(rw,sync)
/opt/52xit 192.168.100.0/24(rw,sync)
[root@localhost ~]# systemctl restart nfs
[root@localhost ~]# systemctl restart rpcbind
[root@localhost ~]# systemctl enable nfs
[root@localhost ~]# systemctl enable rpcbind
[root@localhost ~]# echo "this is www.51xit.top" >/opt/51xit/index.html
[root@localhost ~]# echo "this is www.52xit.top" >/opt/52xit/index.html

Web1

##配置IP地址和网关##
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
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=ens33
UUID=eeab821b-e659-4875-a833-d83ba79824c5
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.100.12
NETMASK=255.255.255.0
GATEWAY=192.168.100.11
[root@localhost ~]# systemctl restart network
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.100.11 0.0.0.0 UG 100 0 0 ens33
192.168.100.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33[root@localhost ~]# yum -y install nfs-utils ##必须要装nfs-untils否则mount不识别nfs格式,系统最小化安装需要装
[root@localhost ~]# showmount -e 192.168.100.14 ##如果还没发布,请到存储服务器发布下,exportfs -rv
Export list for 192.168.100.14:
/opt/52xit 192.168.100.0/24
/opt/51xit 192.168.100.0/24
[root@localhost ~]# yum -y install httpd
[root@localhost ~]# mount 192.168.100.14:/opt/51xit /var/www/html/
[root@localhost ~]# vi /etc/fstab ##设置开机自动挂载
......
192.168.100.14:/opt/51xit/ /var/www/html/ nfs defaults,_netdev 0 0
[root@localhost ~]# mount -a ##测试格式
[root@localhost ~]# init 6
[root@localhost ~]# systemctl start httpd
[root@localhost ~]# systemctl enable httpd

登录192.168.100.12测试网站是否正常
在这里插入图片描述

Web2

[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
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=ens33
UUID=7df84afb-6c7f-4b38-92f6-621966d3edcd
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.100.13
NETMASK=255.255.255.0
GATEWAY=192.168.100.11
[root@localhost ~]# systemctl restart network
[root@localhost ~]# yum -y install nfs-utils
[root@localhost ~]# showmount -e 192.168.100.14
Export list for 192.168.100.14:
/opt/52xit 192.168.100.0/24
/opt/51xit 192.168.100.0/24
[root@localhost ~]# yum -y install httpd
[root@localhost ~]# mount 192.168.100.14:/opt/52xit /var/www/html/
[root@localhost ~]# ll /var/www/html/
total 4
-rw-r--r--. 1 root root 22 Sep 21 12:10 index.html
[root@localhost ~]# vi /etc/fstab
......
192.168.100.14:/opt/52xit/ /var/www/html/ nfs defaults,_netdev 0 0
[root@localhost ~]# mount -a
[root@localhost ~]# init 6
[root@localhost ~]# systemctl start httpd
[root@localhost ~]# systemctl enable httpd

登录192.168.100.13测试网站是否正常
在这里插入图片描述
登录20.0.0.11 测试轮询是否正常
在这里插入图片描述

在这里插入图片描述


推荐阅读
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 内网知识整理
    内网 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • POCOCLibraies属于功能广泛、轻量级别的开源框架库,它拥有媲美Boost库的功能以及较小的体积广泛应用在物联网平台、工业自动化等领域。POCOCLibrai ... [详细]
  • LVS-DR直接路由实现负载均衡示例
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • ! Configuration File for keepalivedglobal_defs {   notification_email {     ... [详细]
  • 一、生产服务器netstattcp连接状态 ... [详细]
  • LVS服务器集群系统
    LVS介绍LVS:LinuxVirtualServer,负载调度器,内核集成,章文嵩(花名正明),阿里的四层SLB(ServerLoadBalance)是基于LVS+keepali ... [详细]
author-avatar
w3shuajiang2
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有