热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

端口映射与NAT负载均衡

4.1实验目的(1)理解端口静态映射的作用;(2)理解负载均衡的用途;(3)掌握NAT端口映射的配置;(4)掌握基于TCP的NAT负载均衡的配置;(5)掌握NAT均衡负载的测试;4

4.1 实验目的

1)理解端口静态映射的作用;

2)理解负载均衡的用途;

3)掌握NAT端口映射的配置;

4)掌握基于TCPNAT负载均衡的配置;

5)掌握NAT均衡负载的测试;

4.2 实验原理

1.NAT负载均衡的工作原理

利用NAT可以将多台相同的服务器映射为单个外网地址,对每次连接请求动态转换为一个内部服务器的地址,可以将外网的访问流量分发到每台服务器,实现负载均衡。工作原理图11所示:

   

                                   端口映射与NAT负载均衡

                            图11  NAT均衡负载

   当外网主机访问服务器的内部全局地址202.68.10.10时,路由器会采用轮询(Round Robin)方式在4台服务器之间分发会话,即1-4个报文的目的地址会被替换为服务器1-4的内网地址。地址替换对于外网主机是透明,外网主机只知道与202.68.10.10在通信,无法知道内网的网络拓扑结构。基于NAT的负载均衡可以减轻单台服务器提供服务器的压力,但是由于NAT路由器无法感知服务器的故障,如果其中某一台服务器出现故障,路由器仍然会将数据转发到该服务器,会造成去往服务器集群的流量出现路由黑洞。

 2.NAT负载均衡的配置步骤

① 配置路由的接口IP,并定义内部接口和外部接口。

② 定义访问控制列表,匹配进行转换的外网合法IP地址。

     R1(config)#access-list  1  permit  host  210.38.220.10

如果外网访问210.38.220.10地址,则进行转换,否则不进行。

③ 定义NAT地址池来表示内部服务器群的地址,使用关键词rotary,表示使用轮询

式从地址池中取出相应的服务器IP来进行转换。

例如:

  R1(config)#ip nat pool WEB_SERVER 192.168.1.2 192.168.1.4 prefix-length 24 type rotary             

    定义地址池名称为WEB_SERVER,地址池的IP地址范围为192.168.1.2~192.168.1.4,地址网络前缀为24,转换的方法文轮询。

④ 把目标地址为访问控制列表中IP的报文转换成地址中定义的服务器IP地址。

R1(config)#ip nat inside destination list 1 pool WEB_SERVER  

将目标地址符合list 1中的报文转换为WEB_SERVER地址池中的地址。

3.负载均衡配置实例

实验网络拓扑图如图9-12所示:

                                      端口映射与NAT负载均衡

12  NAT负载均衡网络拓扑图

地址表如表6所示:

6 PAT网络IP地址表

设备

接口

IP地址

子网掩码

R1

 S2/0

210.38.220.1

/24

 Fa0/1

192.168.1.1

/24

R2

 S2/0DCE

210.38.220.2

/30

 F0/0

202.20.20.1

/24

PC0

 NIC

202.20.20.10

/24

Server1

 Fa0/0

192.168.1.10

/24

Server2

 Fa0/0

192.168.1.11

/24

背景说明:内网有2台对外提供Web服务的服务器,配置较低,为了处理来自Internet的大量Web请求,需要将来自外网的Web访问流量通过轮询的方式分别发送到每台服务器,因此,可以再路由器R1上做NAT负载均衡的配置。

配置要求:使路由器Serv1Serv2来模拟两台Web服务器,它们对外映射相同的公有地址为:210.38.220.10

实验步骤:

步骤1Server1Server2的配置。

//路由器充当Web服务器配置

Server1(config)#interface FastEthernet0/0

Server1(config-if)# ip address 192.168.1.10 255.255.255.0

Server1(config-if)# no shutdown

Server1(config)#ip default-gateway 192.168.1.1    //配置默认网关

Server1(config)#ip http server //启动Web服务

Server2(config)#interface FastEthernet0/0

Server2(config-if)# ip address 192.168.1.11 255.255.255.0 

Server2(config-if)# no shutdown

Server2(config)#ip default-gateway 192.168.1.1   //配置默认网关

Server2(config)#ip http server  //启动Web服务

步骤2R1配置

R1(config)#interface f0/1

R1(config-if)#ip address 192.168.1.1 255.255.255.0

R1(config)# ip nat inside             // 内部接口

R1(config-if)#no shutdown

R1(config)#interface  s2/0

R1(config-if)#ip address 210.38.220.1 255.255.255.0

R1(config)# ip nat outside // 外部接口

R1(config-if)#no shutdown

R1(config)#ip route 0.0.0.0 0.0.0.0 s0/0   //配置默认路由

 

R1(config)#access-list 1 permit 210.38.220.10   //ACL匹配需要进行流量分发的外部地址

//配置Web服务器的地址池

R1(config)#ip nat pool WEB_SERVERS 192.168.1.10 192.168.1.11 prefix-length 24 type rotary

// 将目标地址为210.38.220.10的报文的分发为WEB_SERVERS地址池中的各个服务器

R1(config)#ip nat inside destination list 1 pool WEB_SERVERS 

步骤3R2配置

R2(config)#interface f0/0

R2(config-if)#ip address 202.20.20.1 255.255.255.0

R2(config-if)#no shutdown

R2(config)#interface s2/0

R2(config)#clock rate 64000

R2(config-if)#ip address 210.38.220.2 255.255.255.0

R2(config-if)#no shutdown

步骤4:结果测试

(1)外网访问内网服务器。

                                                     端口映射与NAT负载均衡

                           图13  1次访问的结果

                    端口映射与NAT负载均衡

14  2次访问的结果

    从上图可以看出,两次访问相同的IP地址,得到的页面时不同的,说明NAT的确将请求分发给了不同的路由器。

   (2)查看NAT转换表。

R1#show ip nat translations

Pro Inside global      Inside local       Outside local      Outside global

tcp 210.38.220.10:80   192.168.1.10:80    202.20.20.10:1733  202.20.20.10:1733

tcp 210.38.220.10:80   192.168.1.11:80    202.20.20.10:1734  202.20.20.10:1734

  从转换表也可以看到,同一个内部全局地址,映射了不同的内部本地地址。

 (3)查看NAT转换统计数据。

R1#show ip nat statistics

Total active translations: 2 (0 static, 2 dynamic; 2 extended)

Outside interfaces:

  Serial0/0

Inside interfaces:

  FastEthernet0/0

Hits: 109  Misses: 11

CEF Translated packets: 120, CEF Punted packets: 0

Expired translations: 8

Dynamic mappings:

-- Inside Destination

[Id: 1] access-list 1 pool WEB_SERVERS refcount 2

 pool WEB_SERVERS: netmask 255.255.255.0

        start 192.168.1.10 end 192.168.1.11

        type rotary, total addresses 2, allocated 2 (100%), misses 0

Queued Packets: 0

 




推荐阅读
  • 本文详细介绍了在 CentOS 7 系统中配置 fstab 文件以实现开机自动挂载 NFS 共享目录的方法,并解决了常见的配置失败问题。 ... [详细]
  • 本文将带你快速了解 SpringMVC 框架的基本使用方法,通过实现一个简单的 Controller 并在浏览器中访问,展示 SpringMVC 的强大与简便。 ... [详细]
  • com.sun.javadoc.PackageDoc.exceptions()方法的使用及代码示例 ... [详细]
  • oracle c3p0 dword 60,web_day10 dbcp c3p0 dbutils
    createdatabasemydbcharactersetutf8;alertdatabasemydbcharactersetutf8;1.自定义连接池为了不去经常创建连接和释放 ... [详细]
  • javascript分页类支持页码格式
    前端时间因为项目需要,要对一个产品下所有的附属图片进行分页显示,没考虑ajax一张张请求,所以干脆一次性全部把图片out,然 ... [详细]
  • 如何在Java中使用DButils类
    这期内容当中小编将会给大家带来有关如何在Java中使用DButils类,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。D ... [详细]
  • 本文详细介绍了如何在 Linux 系统上安装 JDK 1.8、MySQL 和 Redis,并提供了相应的环境配置和验证步骤。 ... [详细]
  • Android 自定义 RecycleView 左滑上下分层示例代码
    为了满足项目需求,需要在多个场景中实现左滑删除功能,并且后续可能在列表项中增加其他功能。虽然网络上有很多左滑删除的示例,但大多数封装不够完善。因此,我们尝试自己封装一个更加灵活和通用的解决方案。 ... [详细]
  • 如果应用程序经常播放密集、急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了。因为MediaPlayer存在如下缺点:1)延时时间较长,且资源占用率高 ... [详细]
  • 本文详细介绍了在 Ubuntu 系统上搭建 Hadoop 集群时遇到的 SSH 密钥认证问题及其解决方案。通过本文,读者可以了解如何在多台虚拟机之间实现无密码 SSH 登录,从而顺利启动 Hadoop 集群。 ... [详细]
  • Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)
    近日需要将PostgreSQL数据库从Windows中迁移到Linux中,LinuxCentOS7安装PostgreSQL9.5.17安装过程特此记录。安装环境&#x ... [详细]
  • 原文网址:https:www.cnblogs.comysoceanp7476379.html目录1、AOP什么?2、需求3、解决办法1:使用静态代理4 ... [详细]
  • com.hazelcast.config.MapConfig.isStatisticsEnabled()方法的使用及代码示例 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 本文详细介绍了如何使用Python中的smtplib库来发送带有附件的邮件,并提供了完整的代码示例。作者:多测师_王sir,时间:2020年5月20日 17:24,微信:15367499889,公司:上海多测师信息有限公司。 ... [详细]
author-avatar
她们都叫我哥
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有