LVS集群之NAT(地址转换模式)模式

NAT概述:

   NAT(Network address translation)即网络地址转换,作为一种过渡解决手段,可以用来减少对全球合
法IP地址的需求。简单的说,NAT就是在内部专用网络中使用内部地址,而当内部节点要与外界网络发生联系时,
就在边缘路由器或者防火墙处,将内部地址转换成全局地址,从而使得在外部公共网(Internet)上使用一个和数个合法IP地
址正常传输数据。NAT的工作原理是报文头(目标地址、源地址和端口等)被正确改写后,客户相信 它们连接
一个IP地址,而不同IP地址的服务器组也认为它们是与客户直接相连的。由此,可以用NAT方法将不同IP地
址的并行网络服务变成在一个IP地址 上的一个虚拟服务。


其中,这里的外网和内网是相对来讲的,下面假设能够访问互联网的网络为外网。 特点和要求:
1、LVS(Director)上面需要双网卡:DIP(内网)和VIP(外网)
2、内网的Real  Server主机的IP必须和DIP在同一个网络中,并且要求其网关都需要指向DIP的地址
3、RIP都是私有IP地址,仅用于各个节点之间的通信
4、Director位于client和Real Server之间,负载处理所有的进站、出站的通信

VS/NAT的体系结构如下图所示。在一组服务器前有一个调度器,它们是通过Switch/HUB相连接的。这些服务器 提供相同的网络服务、相同的内容,即不管请求被发送到哪一台服务器,执行结果是一样的。服务的内容可以复制到每台服务器的本地硬盘上,可以通过网络文件系统(如NFS)共享,也可以通过一个分布式文件系统来提供
这里写图片描述

           客户通过Virtual IP Address(虚拟服务的IP地址)访问网络服务时,请求报文到达调度
      器,调度器根据连接调度算法从一组真实服务器中选出一台服务器,将报文的目标地址
      Virtual IP Address改写成选定服务器的地址,报文的目标端口改写成选定服务器的相应端口,
      最后将修改后的报文发送给选出的服务器。同时,调度器在连接Hash表中记录这个连接,当这个
      连接的下一个报文到达时,从连接Hash表中可以得到原选定服务器的地址和端口,进行同样的改写
      操作,并将报文传给原选定的服务器。当来自真实服务器的响应报文经过调度器时,调度器将报文
      的源地址和源端口改为Virtual IP Address和相应的端口,再把报文发给用户。我们在连接上引
      入一个状态机,不同的报文会使得连接处于不同的状态,不同的状态有不同的超时值。在TCP连接中
      ,根据标准的TCP有限状态机进行状态迁移

这里写图片描述
#######在server5(调度器)上:
添加双网卡

[root@server5 network-scripts]# cd /etc/sysconfig/network-scripts/
[root@server5 network-scripts]# vim ifcfg-eth0
		DEVICE="eth0"
		BOOTPROTO="static"
		ONBOOT="yes"
		IPADDR="172.25.44.5"
		PREFIX=24
[root@server5 network-scripts]# vim ifcfg-eth1
		DEVICE="eth1"
		BOOTPROTO="static"
		ONBOOT="yes"
		IPADDR="192.168.0.5"
		PREFIX=24
[root@server5 network-scripts]#/etc/init.d/network restart
[root@server5 ~]# vim /etc/yum.repos.d/rhel-source.repo    #配置yum源
		[rhel-source]
		name=Red Hat Enterprise Linux $releasever - $basearch - Source
		baseurl=http://172.25.44.250/rhel6.5
		enabled=1
		gpgcheck=1
		gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
		[HighAvailability]
		name=HighAvailability
		baseurl=http://172.25.44.250/rhel6.5/HighAvailability
		gpgcheck=0
		[LoadBalancer]
		name=LoadBalancer
		baseurl=http://172.25.44.250/rhel6.5/LoadBalancer
		gpgcheck=0
		[ResilientStorage]
		name=ResilientStorage
		baseurl=http://172.25.44.250/rhel6.5/ResilientStorage
		gpgcheck=0
[root@server5 ~]# yum clean all
[root@server5 ~]# yum install ipvsadm  -y

####创建LVS

[root@server5 ~]# ipvsadm -A -t 172.25.44.5:80 -s rr      #创建一个集群服务,调度算法rr,-t表示TCP协议的集群 
[root@server5 ~]# ipvsadm -a -t 172.25.44.5:80 -r 192.168.0.2 -m -w 1  #管添加server1的 nat方式  ,-m表示 NAT模型 ,-w表示定义服务器权重
[root@server5 ~]# ipvsadm -a -t 172.25.44.5:80 -r 192.168.0.3 -m -w 1

####打开ip转发机制
[root@server5 ~]# echo “1” > “/proc/sys/net/ipv4/ip_forward” #打开ipv的ip转发机制,当前生效
[root@server5 ~]#vim /etc/sysctl.conf #打开ipv的ip转发机制,永久生效

		net.ipv4.ip_forward = 1

[root@server5 ~]# ipvsadm -l   #查看是否添加成功
		IP Virtual Server version 1.2.1 (size=4096)
		Prot LocalAddress:Port Scheduler Flags
		  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
		TCP  server5:http rr
		  -> 192.168.0.2:http             Masq    1      0          0         
		  -> 192.168.0.3:http             Masq    1      0          1         

####配置所有的RS服务器
在server2(后端服务器)上:
<1>vim /etc/sysconfig/network-scprits/ifcfg-eth0 #配置ip和网关
DEVICE=“eth0”
BOOTPROTO=“static”
ONBOOT=“yes”
IPADDR=“192.168.0.2”
GATEWAY=192.168.0.5 #修改网关为调度器的ip地址
PREFIX=24
<2>/etc/init.d/network restart
<3>/etc/init.d/httpd start

#######在server3(后端服务器)上:
和server2上的操作一样
<1>vim /etc/sysconfig/network-scprits/ifcfg-eth0
DEVICE=“eth0”
BOOTPROTO=“static”
ONBOOT=“yes”
IPADDR=“192.168.0.2”
GATEWAY=192.168.0.5
PREFIX=24
<2>/etc/init.d/network restart
<3>/etc/init.d/httpd start

#######在真机上测试:
[root@foundation44 images]# curl 172.25.44.5
bbs.westos.org - server3
[root@foundation44 images]# curl 172.25.44.5
www.westos.org - server2
[root@foundation44 images]# curl 172.25.44.5
bbs.westos.org - server3

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值