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

实验原理图

39cdc4a8f4747f3674115c9ee87b86eb.png

实验环境

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

  • 在虚拟机上添加硬盘

d1b38926f6bbe56a43ac797efc9608ac.png
[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服务器切换为仅主机模式,启动服务

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

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

8f77990c5d139db6a433a75f5e87a634.png
[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

97f896e3955afdbb93c9ddcc2c192d14.png

写在最后:

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/428256.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

rs232串口驱动_RS232与RS485在性能上有啥区别和联系?老电工总结分析,一目了然...

串口是一种非常通用的设备接口,是仪器仪表设备常用的通信接口,常用于远程采集设备数据或者实现远程控制。串口的开发也比较简单,它是很多工程师最喜欢的接口之一。常见的串口协议有RS-232、RS-422、RS-485等,它是电子工程师面对的…

win7里面计算机叫什么,Win7电脑中的mrt.exe是甚么文件

咱们正在运用Win7体系的时分,只有咱们翻开使命办理便能够看失到有一个mrt.exe 步伐正在运转,也没有知叙mrt.exe 是甚么入程的,否不成以制止。这Win7电脑外的mrt.exe 是甚么文件呢?如今便随小编一同来看看电脑外的mrt.exe是甚么文件…

svn权限配置

转载于:https://www.cnblogs.com/wzlbigdata/p/8329601.html

pytorch gather_【Pytorch】Pytorch-1.1.0 版本新特性

2019年05月01日,Pytorch 1.1.0 版本正式发布啦~https://github.com/pytorch/pytorch/releases/tag/v1.1.0主要的几个功能:1. TensorBoard (currently experimental)2. JIT 的升级 [JIT] Attributes in ScriptModules [JIT] Dictionary and List Support …

MySQL-5.7.21非图形化下载、安装、连接问题记录

1、安装包下载链接:https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.21-winx64.zip 官网:https://www.mysql.com/downloads/ -> Community ->MySQl Community Sever ->选择与电脑对应的版本DownLoad 2、解压安装包到自定义的文件夹…

c++定义一个动态全局变量_静态链接与动态链接的宏观概述及微观详解

静态链接与动态链接的宏观概述及微观详解第一部分 宏观概述 1. 静态链接静态链接就是在程序运行前,链接器通过对象文件中包含的重定位表,完成所有重定位操作,并最终形成一个在运行时不需要再次进行依赖库的加载和重定位操作(因为所…

pwm控制舵机转动角度程序_Mixly 第15课 舵机的使用

第15课 舵机的使用舵机的旋转不像普通电机那样只是转圈圈,它可以根据你的指令旋转到0至180度之间的任意角度然后精准的停下来。舵机的转动的角度是通过调节PWM(脉冲宽度调制)信号的占空比来实现的。舵机比较多的用于对角度有要求的场合,比如机器人、摄像…

1、初始JAVA

一、 语言的翻译分两种: 编译型语言:例如c语言、c语言 优点:速度快 缺点:不能跨平台 编译器编译——>特定平台的目标文件obj——>特定平台 解释型语言:例如PHP语言、JavaScript语言 优点&am…

base64 转文件_PHP伪协议与文件包含

PHP伪协议与文件包含PHP伪协议与文件包含php:// 协议php://inputphp://filterdata:// 协议file:// 协议zip://、bzip2://、zlib://协议zip://协议bzip2://协议zlib://协议phar://伪协议文件包含漏洞(File Inclusion)文件包含漏洞:即file inclusion,意思是…

redis 登录_Redis集群架构+Dubbo开发框架+SSO单点登录+Nginx+ZooKeeper

Redis集群架构【课程介绍】Redis是现在使用为广泛的NoSQL数据库技术,其自身不仅拥有着良好的操作性能,也被广泛的应用于各种集群架构的数据整合处理之中,而本课程将通过Redis的核心作用,以及单实例redis存在的问题为读者进行分析&…

NopCommerce用.net core重写ef

最近看了NopCommerce源码,用core学习着写了一个项目,修改的地方记录下。项目地址 NopCommerce框架出来好久了。18年的第一季度 懒加载出来后也会全部移动到.net core。那么就更好玩了。 项目内容 模仿部分分层模式引擎机制DI容器EF仓储模式Mapping部分修…

服务器u8系统数据库不存在,用友u8服务器端数据库不装

用友u8服务器端数据库不装 内容精选换一换本章节指导您使用MongoDB客户端,通过弹性云服务器内网方式连接GaussDB(for Mongo)集群实例。操作系统使用场景:弹性云服务器的操作系统以Linux为例,客户端本地使用的计算机系统以Windows为例。目标实…

ie传递给系统调用的数据区域太小_内存区域与内存溢出异常

自动内存管理机制运行时数据区:Java虚拟机定义了在程序执行期间使用的各种运行时数据区域。其中一些数据区域是在Java虚拟机启动时创建的,仅在Java虚拟机退出时销毁。其他数据区域是每个线程所占的空间。线程数据区域是随着线程销毁和创建的。PC 寄存器(…

0010服务器无对应信息,服务器版本对应的内存

服务器版本对应的内存 内容精选换一换硬件要求如表1所示。操作系统要求如表2所示。上表中所需Ubuntu下载地址:服务器1:Ubuntu 18.04.1镜像包、Ubuntu 16.04.4 镜像包。服务器2:Ubuntu 16.04.3 镜像包。在安装操作系统过程中“选择软件列表”时…

idea中连接mysql插入成功数据 在navicat中刷新表格没有数据_MySQL入门简记

1、MySQL和Navicat的安装下载地址:MySQL官方网站 https://dev.mysql.com/downloads双击下载的mysql-installer-community-8.0.17.0 .msi开始安装。需要注意(Authentication Method)这一步:因为需要使用客户端navicat,在…

for循环数据量太大_中文文本分类roberta大力出奇迹之数据量大的问题

问题描述: 笔者在文本分类场景中使用了robertapooldense的三分类模型。采用预训练模型做项目的时候经常苦于数据太少,模型泛化性差,因此收集了1300W数据。在我尝试暴力出奇迹的时候,遇到了部分问题,在此记录一下。一. 数据预处理时…

future.cancel不能关闭线程_彻底弄懂线程池-newFixedThreadPool实现线程池

public class ExecutorServiceTest {public static void main(String[] args) throws IOException, InterruptedException {// 创建一个固定大小的线程池ExecutorService service Executors.newFixedThreadPool(3);for (int i 0; i < 10; i) {System.out.println("创…

Spring实战(十三)Spring事务

1、什么是事务&#xff08;Transaction&#xff09;&#xff1f; 事务是指逻辑上的一组操作&#xff0c;要么全部成功&#xff0c;要么全部失败。 事务是指将一系列数据操作捆绑成为一个整体进行统一管理。如果某一事务执行成功&#xff0c;则该事务中进行的所有数据更改均会提…

解密SVM系列(二):SVM的理论基础(转载)

解密SVM系列&#xff08;二&#xff09;&#xff1a;SVM的理论基础 原文博主讲解地太好了 收藏下 解密SVM系列&#xff08;三&#xff09;&#xff1a;SMO算法原理与实战求解 支持向量机通俗导论&#xff08;理解SVM的三层境界&#xff09; 上节我们探讨了关于拉格朗日乘子…

cout输出数组_让程序从1开始一直执行++操作,10秒钟能输出最大的数是多少

问题描述如果写一段代码&#xff0c;让程序从 1 开始一直执行 操作&#xff0c;在规定的 10s 钟内&#xff0c;你能输出的最大数是多少&#xff1f;并将它打印到屏幕上。乍一看&#xff0c;你会觉得它是一道算法题&#xff0c;再细想&#xff1a;不对&#xff01;这可能是一道…