LVS的模式三:NAT(网络地址转换)模式

一.NAT(网络地址转换)模式

1.NAT百度百科
  • NAT(Network Address Translation,网络地址转换),当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但现在又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法。
  • 这种方法需要在专用网连接到因特网的路由器上安装NAT软件。装有NAT软件的路由器叫做NAT路由器,它至少有一个有效的外部全球IP地址。这样,所有使用本地地址的主机在和外界通信时,都要在NAT路由器上将其本地地址转换成全球IP地址,才能和因特网连接。
  • 另外,这种通过使用少量的公有IP 地址代表较多的私有IP 地址的方式,将有助于减缓可用的IP地址空间的枯竭。在RFC 2663中有对NAT的说明。
2.功能
  • NAT不仅能解决IP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。
  • 1.宽带分享:这是 NAT 主机的最大功能。
  • 2.安全防护:NAT 之内的 PC 联机到 Internet 上面时,他所显示的 IP 是 NAT 主机的公共 IP,所以 Client 端的 PC 当然就具有一定程度的安全了,外界在进行 portscan(端口扫描) 的时候,就侦测不到源Client 端的 PC 。
3.技术背景
  • 要真正了解NAT就必须先了解现在IP地址的使用情况,私有 IP 地址是指内部网络或主机的IP 地址,公有IP 地址是指在因特网上全球唯一的IP 地址。RFC 1918 为私有网络预留出了三个IP 地址块,如下:
    A 类:10.0.0.0~10.255.255.255
    B 类:172.16.0.0~172.31.255.255
    C 类:192.168.0.0~192.168.255.255
  • 上述三个范围内的地址不会在因特网上被分配,因此可以不必向ISP 或注册中心申请而在公司或企业内部自由使用。
  • 随着接入Internet的计算机数量的不断猛增,IP地址资源也就愈加显得捉襟见肘。事实上,除了中国教育和科研计算机网(CERNET)外,一般用户几乎申请不到整段的C类IP地址。在其他ISP那里,即使是拥有几百台计算机的大型局域网用户,当他们申请IP地址时,所分配的地址也不过只有几个或十几个IP地址。显然,这样少的IP地址根本无法满足网络用户的需求,于是也就产生了NAT技术。
  • 虽然NAT可以借助于某些代理服务器来实现,但考虑到运算成本和网络性能,很多时候都是在路由器上来实现的。
4.工作原理
  • 借助于NAT,私有(保留)地址的"内部"网络通过路由器发送数据包时,私有地址被转换成合法的IP地址,一个局域网只需使用少量IP地址(甚至是1个)即可实现私有地址网络内所有计算机与Internet的通信需求。
  • NAT将自动修改IP报文的源IP地址和目的IP地址,Ip地址校验则在NAT处理过程中自动完成。有些应用程序将源IP地址嵌入到IP报文的数据部分中,所以还需要同时对报文的数据部分进行修改,以匹配IP头中已经修改过的源IP地址。否则,在报文数据部分嵌入IP地址的应用程序就不能正常工作。
  • ①如下图这个 client(终端) 的 gateway (网关)设定为 NAT 主机,所以当要连上 Internet 的时候,该封包就会被送到 NAT 主机,这个时候的封包 Header 之 source IP(源IP) 为 192.168.1.100 ;②而透过这个 NAT 主机,它会将 client 的对外联机封包的 source IP ( 192.168.1.100 ) 伪装成 ppp0 ( 假设为拨接情况 )这个接口所具有的公共 IP ,因为是公共 IP 了,所以这个封包就可以连上 Internet 了,同时 NAT 主机并且会记忆这个联机的封包是由哪一个 ( 192.168.1.100 ) client 端传送来的;③由 Internet 传送回来的封包,当然由 NAT主机来接收了,这个时候, NAT 主机会去查询原本记录的路由信息,并将目标 IP 由 ppp0 上面的公共 IP 改回原来的 192.168.1.100 ;④最后则由 NAT 主机将该封包传送给原先发送封包的 Client。
    在这里插入图片描述
5.NAT模式的基本概念
  • 通过网络地址转换(NAT)将一组服务器构成一个高性能的,高可用的虚拟服务器,是NAT技术。
6.NAT模式的原理
  • 客户端发送请求到达Director后,Director根据负载均衡算法改写目标地址为后端某个真正服务器的RIP(web服务器池中主机之一)并转发给后端主机,就像NAT一样。
  • 当后端服务器处理完请求后,后端主机将响应数据交给Director,并有director改写源地址为VIP后传输给客户端。大多数商品话的IP负载均衡硬件都是使用此方法。
    在这里插入图片描述
    这种模式下:
  • RIP和DIP一般处于同一私有网段中。但并非必须,只要它们能通信即可。
  • 各Realserver的网关指向DIP这样才能保证响应交给Director。
  • NAT模式的最大缺点就是Director负责所有进出数据:不仅处理客户端发起的请求,还负责将响应传输给客户端。而响应数据一般比请求数据大的多,调度器Director容易出现瓶颈。
  • 这种模式配置起来简单。

二.模拟NAT

1.实验环境
主机名(IP)功能
server1(172.25.24.1)director
server2(172.25.24.2)真实主机1
server3(172.25.24.3)真实主机2
真机(172.25.254.24)客户端
2.配置NAT模式的LVS
  • (1)在server1上添加一块网卡,给该网卡加上外网ip,激活网卡。在这里插入图片描述在这里插入图片描述
[root@server1 ~]# ip addr add 172.25.254.100/24 dev eth1
[root@server1 ~]# ip link set up eth1
[root@server1 ~]# ip addr show eth1

在这里插入图片描述

  • (2)在server2,server3上添加网关。
    在这里插入图片描述在这里插入图片描述
  • (3)在server1上打开内核路由功能。
  • server1收到客户请求后,得到一个公网的IP,跟目的主机server2,server3不在一个网段。
  • 如果想要将客户端来的数据包转发给后端服务器,那么必须对这个数据包进行ip转换,再进行数据包转发。
  • Linux系统默认禁止数据包转发,需要配置Linux系统的IP转发功能进行转发。
    在这里插入图片描述
    在这里插入图片描述
  • (4)在server1上添加调度策略
[root@server1 ~]# vim /etc/yum.repos.d/rhel-source.repo   #搭建yum源

[rhel-source]
name=Red
baseurl=http://172.25.24.24/6.5
gpgcheck=0

[LoadBalancer]
name=LoadBalancer
baseurl=http://172.25.24.24/6.5/LoadBalancer
gpgcheck=0

[root@server1 ~]# yum install ipvsadm -y

[root@server1 ~]# ipvsadm -A -t 172.25.254.100:80 -s rr
[root@server1 ~]# ipvsadm -a -t 172.25.254.100:80 -r 172.25.24.2:80 -m
[root@server1 ~]# ipvsadm -a -t 172.25.254.100:80 -r 172.25.24.3:80 -m
[root@server1 ~]# /etc/init.d/ipvsadm save

[root@server1 ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.25.254.100:80 rr
  -> 172.25.24.2:80               Masq    1      0          0         
  -> 172.25.24.3:80               Masq    1      0          0         
  • (5)在server2和server3的realserver上打开httpd服务,并且在默认发布目录下添加要测试的内容
    server2:
[root@server2 ~]# yum install httpd -.y
[root@server2 ~]# vim /var/www/html/index.html
[root@server2 ~]# /etc/init.d/httpd start
[root@server2 ~]# curl localhost
---server2---

server3:

[root@server3 ~]# vim /var/www/html/index.html
[root@server3 ~]# /etc/init.d/httpd start
[root@server3 ~]# curl localhost
---server3---
3.测试
  • 在真机测试:
    在这里插入图片描述
  • 在server1上查看轮询状态:
    在这里插入图片描述注意:模拟时在server1添加的网卡的IP必须与测试端的IP处于同一网段。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值