实验原理图

实验环境

  • 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服务器上添加两块硬盘,做共享存储使用,格式化

  • 在虚拟机上添加硬盘
[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服务器切换为仅主机模式,启动服务

[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调度管理工具

添加外网的网卡,并切换为仅主机模式

[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

写在最后:

本专栏所有文章均为南京课工场学员投稿,如有问题欢迎指出讨论,未经允许,禁止转载!

iptables nat实验_【零基础学云计算】LVS负载均衡群集之NAT模式搭建 (实践篇)...相关推荐

  1. LVS负载均衡群集(NAT模式)

    目录 群集 群集的含义 为什么会有群集 群集的分类 负载均衡群集 高可用群集 高性能群集 负载均衡群集架构和工作模式 负载均衡的结构 负载均衡群集工作模式分析 LVS虚拟服务器 Linux Virtu ...

  2. 高效多用的群集之LVS负载均衡群集(NAT模式)

    目录 一.群集 1.群集的含义 2.为什么会有群集 二.群集的分类 1.负载均衡群集 2.高可用群集 3.高性能群集 三.负载均衡群集架构和工作模式 1.负载均衡的结构 第一层,负载调度器(Load ...

  3. c++mfc编写实验_零基础学Windows窗口图形界面编程(不用MFC),菜鸟学完变身高手,敢与专业媲美...

    又一门新的计算机课上线啦! 什么课?看下面视频(以下视频是本课第一讲) 用什么语言 我们声明一下(这个在我们课上也跟同学强调):不要为用什么语言掐架!那是初学者的行为,为高手所不为. 第二,我们这门课 ...

  4. LVS负载均衡群集——NAT模式实例

    目录 一:企业群集应用概述 1.1群集的含义 1.2群集存在的必要 1.3解决的方法 二:企业群集的分类 2.1负载均衡群集(Load Balance Cluster) 2.2高可用群集(High A ...

  5. LVS负载均衡群集部署之——NAT模式的介绍及搭建步骤

    文章目录 一.企业群集应用概述 1.1 群集的三种类型 1 负载均衡群集 2 高可用群集 3 高性能运算群集 1.2 负载均衡结构 1.3 负载均衡群集工作模式 (1) NAT模式--地址转换 (2) ...

  6. LVS负载均衡群集——NAT地址转换

    目录 一.集群与分布式 1.1 集群的含义 1.2 LVS模型 1.3系统性能扩展方式 1.4 群集的三种类型 1.4.1. 负载均衡群集 1.4.2.高可用群集 1.4.3.高性能运算群集 1.5分 ...

  7. LVS 负载均衡群集----NAT模式

    目录 一.企业群集应用概述 1.1 群集的含义 1.2 问题 1.3 解决办法 1.4 系统性能扩展方式 二.企业群集分类 2.1  负载均衡群集 2.2  高可用群集 2.3  高性能运算群集 三. ...

  8. linux加权_「学员笔记」LINUX随堂笔记(十一):LVS负载均衡群集

    第12章 LVS负载均衡群集 一.群集概述 1.1 群集的类型 无论是哪种群集,都至少包括两台节点服务器,而对外表现为一个整体,只提供一个访问入口(域名或IP地址),相当于一台大型计算机,根据群集所提 ...

  9. LVS负载均衡群集概念、NAT模式LVS负载均衡实战部署

    目录 引言: 一.群集的含义 1.1 群集存在的必要 1.2 解决方法 二.群集的种类 2.1 负载均衡群集(Load Balance Cluster) 2.2 高可用群集 (High Availab ...

最新文章

  1. 360浏览器如何保存html文件夹下,在360浏览器中将书签保存的详细步骤
  2. python代码大全p-如何写出优雅又地道的Python代码?【转载】
  3. mysql怎么设置计划任务_mysql设置定时任务
  4. 032_Notification通知
  5. 双向链表删除节点时间复杂度_删除链表的节点(剑指offer第十七题)
  6. Apache Log4j2 远程代码执行 漏洞
  7. Nginx 反向代理、动静分离、负载均衡及配置实例
  8. 权限丢失_不要让任何“账户权限”问题困扰你!
  9. mac php5.6.30与php7共存,认识Homebrew以及在Mac上同时安装PHP5及PHP7
  10. json日期格式化 java_java_Java Web程序中利用Spring框架返回JSON格式的日期,返回Json时格式化日期Date 第一 - phpStudy...
  11. linux后台开发核心技术
  12. DotNET企业架构应用实践-数据库表记录的唯一性设计的设计兼议主键设定原则
  13. 潘多拉固件设置ipv6_OpenWRT IPv6配置
  14. 对打字练的小键人的网站91xjr.com站资源打包,gulp独立分文件夹打包
  15. Java截取视频第一帧
  16. Linux和windows导入scv数据文件
  17. 32位微型计算机能不能安装64位操作系统,32位cpu能装64位系统吗|32位cpu可以装64位系统吗...
  18. Could Not Autowired ,No Beans of ....
  19. 百度地图之添加覆盖物并响应事件
  20. JN5168的SPI使用

热门文章

  1. java short后缀_自学java的新手问个问题,为什么写个代码中的int能自动转
  2. JS两个字符串日期相减得出天数
  3. Android studio 创建kotlin工程
  4. Jmeter日志输出和日志级别设置
  5. React Native windows环境安装遇到的坑
  6. (JAVA)Object类之String类
  7. 语义化版本控制规范(SemVer)
  8. Python爬虫爬取美剧网站
  9. 利用expect实现自动化操作
  10. Luogu 4514 上帝造题的七分钟