热门标签 | 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

 




推荐阅读
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • 本文介绍了在使用Python中的aiohttp模块模拟服务器时出现的连接失败问题,并提供了相应的解决方法。文章中详细说明了出错的代码以及相关的软件版本和环境信息,同时也提到了相关的警告信息和函数的替代方案。通过阅读本文,读者可以了解到如何解决Python连接服务器失败的问题,并对aiohttp模块有更深入的了解。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • WebSocket与Socket.io的理解
    WebSocketprotocol是HTML5一种新的协议。它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • RouterOS 5.16软路由安装图解教程
    本文介绍了如何安装RouterOS 5.16软路由系统,包括系统要求、安装步骤和登录方式。同时提供了详细的图解教程,方便读者进行操作。 ... [详细]
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社区 版权所有