结合这几天做LVS-NAT结构模型的实验。特总结如下

一、准备三台RHEL6.6虚拟机

1台Director

2台RealServer

1、克隆两台RealServer

在装好RHEL6.6后,最好是将装好了的RHEL6.6作为Director。其余两台RS1、RS2通过克隆的方式实现,只能在Director关机的情况下进行克隆。这里我选择的是完整克隆。也可以通过“现有快照”克隆

右击Director——>管理——>克隆

RS2克隆方法同RS1克隆方法一样
2、更新网卡设备名与IP规划

(1)、更新RS1、RS2网卡设备名

因为克隆后的虚拟机与原虚拟机比较改变了网络设备的名,例如,克隆后的网卡为eth1,而原虚拟机则为eth0。

[root@gnnt rules.d]# ifconfig

eth1      Link encap:Ethernet  HWaddr 00:0C:29:6E:CF:B2

inet addr:172.16.0.9  Bcast:172.16.255.255  Mask:255.255.0.0

............................................................

[root@gnnt ~]# cd /etc/udev/rules.d/

[root@gnnt rules.d]# vim 70-persistent-net.rules

# PCI device 0x8086:0x100f (e1000) (custom name provided by external tool)

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:7f:d5:6a", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x8086:0x100f (e1000) (custom name provided by external tool)

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:6e:cf:b2", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

可看见有两个网卡的配置信息,需要删除掉关于eth0 的信息。然后修改eth1的网卡名称为eth0。

(2)、IP规划

Director:eth0(桥接模式,可浏览外网)     IP地址:172.16.0.9    子网掩码:255.255.0.0

默认网关:172.16.1.1   DNS:202.106.0.20

eth1(仅主机模式,不可浏览外网) IP地址:192.168.1.3    子网掩码:255.255.255.0

RS1:eth0(仅主机模式)                    IP地址:192.168.1.1    子网掩码:255.255.255.0

默认网关:192.168.1.3

RS2:eth0(仅主机模式)                    IP地址:192.168.1.2    子网掩码:255.255.255.0

默认网关:192.168.1.3

具体实现方法可参照:

http://1343138116.blog.51cto.com/6124664/1680268  Vmware虚拟机三种网络模式用途的第3节ifcfg-ethX的配置

配置完成后执行如下操作

[root@gnnt /]#service network restart  #重启网络服务,使配置生效。可以省略,直接进行下一步

[root@gnnt /]#reboot   #重启系统,让系统重新读取网卡的设备名称

[root@gnnt /]#ifconfig #查看网卡的设备名是否更新

IP地址规划好后测试连通效果。Director:eth0网卡能否PING通互联网,以ping www.baidu.com为例; Director:eth1能否PING通RS1:eth0、RS2:eth0; RS1:eth0、RS2:eth0能否互相PING通。

3、通过yum方式安装ipvsadm

具体实现方法可参照:

http://1343138116.blog.51cto.com/6124664/1681861 RedHat 6.6自建yum仓库

当yum仓库建立完成后通过yum install ipvsadm命令方式安装

二、LVS-NAT实现方法

拓扑图

注:

1、这里的Client我使用的是物理机

2、添加Router只是为了能够看出LVS-NAT的整个流程,在这里没有实际意义

3、RS1、RS2的网关地址是DIP:192.168.1.3

4、RS可以使用Linux或Windows,如果要调内核参数则只能用Linux

1、RS1设置

[root@gnnt ~]# rpm -qa|grep httpd   #查看是否安装了httpd服务,若没有安装则需要安装以下文件

httpd-2.2.15-39.el6.x86_64

httpd-tools-2.2.15-39.el6.x86_64

[root@gnnt ~]#service httpd status #查看httpd服务是否启动,可以看出httpd服务是停止的

httpd is stopped

[root@gnnt ~]# service httpd start #启动httpd服务

Starting httpd: httpd: apr_sockaddr_info_get() failed for gnnt

httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

[  OK  ]

#这里的意思是需要一个DNS服务器,可以不用理会,本次实验不会用到bind服务

[root@gnnt ~]#echo "welcome to RS1.gnnt.com" > /var/www/html/index.html #编辑index.html文件

[root@gnnt ~]#setenforce 0   #Permissive=0,代表仅记录安全警告但不阻止可疑行为

setenforce是SElinux的知识,请参阅

http://os.51cto.com/art/201105/265956.htm  SELinux入门:了解和配置SELinux

[root@gnnt ~]#service iptables stop    #一定要将防火墙关闭,否则不能“curl RS2”的内容

[root@gnnt ~]#curl http://localhost    #访问本机的index.html文件

welcome to RS1.gnnt.com

[root@gnnt ~]#curl http://192.168.1.2  #访问RS2的index.html文件

welcome to RS2.gnnt.com

2、RS2设置

[root@gnnt ~]# rpm -qa|grep httpd  #查看是否安装了httpd服务,若没有安装则需要安装以下文件

httpd-2.2.15-39.el6.x86_64

httpd-tools-2.2.15-39.el6.x86_64

[root@gnnt ~]#service httpd status #查看httpd服务是否启动,可以看出httpd服务是停止的

httpd is stopped

[root@gnnt ~]# service httpd start #启动httpd服务

Starting httpd: httpd: apr_sockaddr_info_get() failed for gnnt

httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

[  OK  ]

#这里的意思是需要一个DNS服务器,可以不用理会,本次实验不会用到bind服务

[root@gnnt ~]#echo "welcome to RS2.gnnt.com" > /var/www/html/index.html #编辑index.html文件

[root@gnnt ~]#setenforce 0      #Permissive=0,代表仅记录安全警告但不阻止可疑行为

[root@gnnt ~]#service iptables stop     #一定要将防火墙关闭,否则不能“curl RS1”的内容

[root@gnnt ~]#curl http://localhost     #访问本机的index.html文件

welcome to RS2.gnnt.com

[root@gnnt ~]#curl http://192.168.1.1   #访问RS1的index.html文件

welcome to RS1.gnnt.com

注:也要将Director的防火墙关闭

3、Director设置

注:文档最后有对ipvsadm命令详解的补充,想仔细研究的同学也可以根据命令详解设置不同的调度方式

(1)、使用rr调度算法进行负载均衡

[root@gnnt ~]#ipvsadm -A -t 172.16.0.9:80 -s rr

[root@gnnt ~]#ipvsadm -a -t 172.16.100.1:80 -r 192.168.10.8 -m

[root@gnnt ~]#ipvsadm -a -t 172.16.100.1:80 -r 192.168.10.9 -m

#添加一个IP为地址172.16.0.9,端口为80的集群服务器

#添加一个IP为地址192.168.1.1,端口为80的集群RS服务

#添加一个IP为地址192.168.1.2,端口为80的集群RS服务

注:测试前一定要在Director中开启IP转发,重启服务或系统后IP转发会失效。测试步骤在第三节

[root@gnnt ~]# cat /proc/sys/net/ipv4/ip_forward

0

[root@gnnt ~]# echo 1  > /proc/sys/net/ipv4/ip_forward

[root@gnnt ~]# cat /proc/sys/net/ipv4/ip_forward

1

[root@gnnt ~]#

(2)、查看客户端连接数

[root@gnnt ~]# ipvsadm -L -c

IPVS connection entries

pro expire state       source             virtual            destination

TCP 01:58  TIME_WAIT   172.16.0.255:53948 172.16.0.9:http    192.168.1.1:http

TCP 01:57  TIME_WAIT   172.16.0.255:53944 172.16.0.9:http    192.168.1.1:http

TCP 01:54  TIME_WAIT   172.16.0.255:53937 172.16.0.9:http    192.168.1.1:http

TCP 01:55  TIME_WAIT   172.16.0.255:53943 172.16.0.9:http    192.168.1.1:http

.............................................................................

(3)、查看统计信息

[root@gnnt ~]# ipvsadm -L --stats

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port               Conns   InPkts  OutPkts  InBytes OutBytes

-> RemoteAddress:Port

TCP  172.16.0.9:http                  4507    22120    21685  2037284  2504098

-> 192.168.1.1:http                 2596    13021    12926  1185170  1491242

-> 192.168.1.2:http                 1911     9099     8759   852114  1012856

(4)、查看速率信息

[root@gnnt ~]# ipvsadm -L --rate

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port                 CPS    InPPS   OutPPS    InBPS   OutBPS

-> RemoteAddress:Port

TCP  172.16.0.9:http                     4       19       18     2208     1953

-> 192.168.1.1:http                    3       14       14     1629     1379

-> 192.168.1.2:http                    1        5        5      579      573

(5)、查看超时信息

[root@gnnt ~]# ipvsadm -L --timeout

Timeout (tcp tcpfin udp): 900 120 300

(6)、清除ipvsadm规则

[root@gnnt ~]# ipvsadm -C

(7)、保存ipvsadm,以便重启以后规则也能生效

推荐使用

[root@gnnt ~]# service ipvsadm save   #直接保存ipvsadm规则

ipvsadm: Saving IPVS table to /etc/sysconfig/ipvsadm:      [  OK  ]

[root@gnnt ~]#ipvsadm -S > /etc/sysconfig/ipvsadm.com   #将ipvsadm规则保存指定的文件中

[root@gnnt ~]#ipvsadm -R < /etc/sysconfig/ipvsadm.com   #从指定的文件中载入ipvsadm规则

三、通过物理机进行测试

通过按F5按钮刷新,查看测试效果



           图1

图2


补充:ipvsadm命令详解

默认调度方法:wlc

ipvsadm:

管理集群服务

添加:-A -t|u|f service-address [-s scheduler]

-t: TCP协议的集群

-u: UDP协议的集群

service-address:     IP:PORT

-f: FWM: 防火墙标记

service-address: Mark Number

# ipvsadm -A -t 172.16.0.9:80 -s rr

修改:-E

删除:-D -t|u|f service-address

管理集群服务中的RS

添加:-a -t|u|f service-address -r server-address [-g|i|m] [-w weight]

-t|u|f service-address:事先定义好的某集群服务

-r server-address: 某RS的地址,在NAT模型中,可使用IP:PORT实现端口映射;

[-g|i|m]: LVS类型

-g: DR

-i: TUN

-m: NAT

[-w weight]: 定义服务器权重

# ipvsadm -a -t 172.16.0.9:80 -r 192.168.10.1 -m

# ipvsadm -a -t 172.16.0.9:80 -r 192.168.10.2 -m

修改:-e

删除:-d -t|u|f service-address -r server-address

查看

-L|l

-n: 数字格式显示主机地址和端口

--stats:统计数据

--rate: 速率

--timeout: 显示tcp、tcpfin和udp的会话超时时长

-c: 显示当前的ipvs连接状况

删除所有集群服务

-C:清空ipvs规则

保存规则

-S

# ipvsadm -S > /path/to/somefile

载入此前的规则:

-R

# ipvsadm -R < /path/from/somefile

至此,本文档已经结束,文档中难免有不尽人意之处,希望各位能够给出宝贵的建议,谢谢!

紫禁之巅

2015年8月6日 15:44

转载于:https://blog.51cto.com/zjzd86/1682275

在RHEL6.6环境下进行LVS-NAT实验(Vmware模式)相关推荐

  1. 南工程c语言实验报告,Linux环境下-C语言编程实验报告(1)(总4页).doc

    Linux环境下-C语言编程实验报告(1)(总4页).doc 西 安 邮 电 大 学 (计算机学院)课内实验报告实验名称 Linux环境下 C语言编程 专业名称 网络工程班 级 1203班 学生姓名 ...

  2. 计算机环境下和手工环境下,在计算机环境下建立手工模拟实验的设想

    作者:杨艺佳 [摘 要]随着实践性的教学更多的受到重视,作为会计专业实践性教学的会计手工模拟实验,在会计专业的教学中也变得更加不可或缺:而随着信息技术的发展和普及,计算机会计信息系统也给传统的手工会计 ...

  3. 转载--CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡

    源地址:http://www.cnblogs.com/mchina/archive/2012/08/27/2644391.html 一.简介 VS/NAT原理图: 二.系统环境 实验拓扑: 系统平台: ...

  4. CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡

    一.简介 VS/NAT原理图: 二.系统环境 实验拓扑: 系统平台:CentOS 6.3 Kernel:2.6.32-279.el6.i686 LVS版本:ipvsadm-1.26 keepalive ...

  5. hybrid环境下划分vlan一个实验 ————一故障分析

    实现: VLA10 vlan20 vlan30都可以访问vlan100 vlan10--vlan20  ok vlan20--vlan30  ok vlan10-vlan30   no不能访问 所有端 ...

  6. 在VSCode环境下用dlv工具的attach模式远程调试在运行中的服务

    一.前提条件 1.以下操作和注意事项都是基于ubuntu 20.04版本进行描述. 2.以下操作和注意事项都是基于操作系统的非root用户进行描述. 3.需要提前下载dlv工具,远程服务器上的dlv工 ...

  7. WIN10环境下 CCS6.0+SEED-DTK6437 实验

    由于win10系统不支持CCS3.3,所以使用CCS6.0版本. 需要下载 CCS6.0+仿真器驱动  提取码ttkg 没成功 大家别试了 1. 安装CCS6.0 将下载的 解压到一个没有中文的路径中 ...

  8. linux环境下rocketMq双master集群搭建

    为什么要使用集群 在生产环境中,经常会有意外的情况发生,对于rocketmq也不例外,单节点情况下,如果出现网络闪断,服务器掉电或宕机之类的,如果服务器不能及时恢复,很可能造成丢消息的情况,因此,集群 ...

  9. 在X11图形环境下开启/关闭勿扰模式及其背后机制

    开启/关闭勿扰模式 在Linux系统中.X11图形环境下,开启/关闭勿扰模式很简单,按照以下步骤操作即可: (1)鼠标左键点击右下角的"^",即"显示隐藏的图标" ...

最新文章

  1. 设计模式重构代码_Duplicated Code (重复代码)如何处理?
  2. 数位 DP 入门 (不要 62+windy 数)
  3. ASP.NET MVC中同步与异步
  4. Java 捕获 mybatis异常_3 springboot集成mybatis和全局异常捕获
  5. 【小白学云计算】xmpp开源服务器的配置和安装图文详解
  6. linux ssd hdd 缓存,ArchLinux 部署 SSD 缓存
  7. JS String 对象 常用方法
  8. sqlserver日志文件在哪_用友SQL SERVER数据库置疑修复实例
  9. 在Linux中使用GoAccess分析Nginx的日志
  10. 数码相机如何当做摄像头(图文并茂版)
  11. Linux系统的镜像文件下载
  12. Setup Factory安装结束自动启动程序
  13. 通俗易懂的讲解贝叶斯原理(保证简单)
  14. Acwing 1299. 五指山
  15. 联想移动裁员为求自保 摩托罗拉品牌逐渐消退
  16. html+盒子+边距,盒子模型、边框、边距
  17. Xcode6内置环境变量(Build Setting Macros)
  18. MongoSocketOpenException: Exception opening socket
  19. windows 11 锁屏壁纸路径
  20. java代码抛出异常_Java中编写代码出现异常,如何抛出异常,如何捕获异常

热门文章

  1. Linux调试——gdb调试器的简单使用调试coredump文件
  2. Java中的nextInt()和next()与nextLine()区别详解
  3. linux 创建crontab文件位置,linux - 如何通过脚本创建crontab - Ubuntu问答
  4. php数字导出excel表格中_php怎么把数据表中的数据导出到excel表中
  5. java ee 期末考试_JAVA EE 期末试题 (1)
  6. mysql 秀出两个相关联的表中满足条件的内容_这六个 MySQL 死锁案例,能让你理解死锁的原因!...
  7. 时间序列:五种编辑距离和Python实现
  8. 低差异序列:范德科皮特序列(Van der Corput sequence)
  9. python3命令行运行程序怎么关闭_python中怎样退出程序运行?
  10. matlab 绘制三维图并标注每个点的坐标