zoukankan      html  css  js  c++  java
  • NAT中TCP负载均衡实验总结

    目的:学习NAT如何实现负载均衡。
    在R2上做NAT负载,使R1 telnet R2的S2/2接口,分别跳转到摸拟内部服务器的R3,R4。

    Step 1:=====================
    R1:
    int s2/2
    no sh
    ip add 12.1.1.1 255.255.255.0

    R2:
    int s2/2
    no sh
    ip add 12.1.1.2 255.255.255.0

    int f0/0
    no sh
    ip add 192.168.1.1 255.255.255.0

    R3:
    int f0/0
    no sh
    ip add 192.168.1.3 255.255.255.0

    R4:
    int f0/0
    no sh
    ip add 192.168.1.4 255.255.255.0

    Step 2:======================================

    R3,R4:
    enable password cisco
    line vty 0 4 
    password cisco
    login

    Step 3:Disable route function and set up default-gateway======

    R3,R4:
    no ip routing
    ip default-gateway 192.168.1.1

    Step 4:==============================

    R2:
    int s0/0
    ip nat outside

    int f0/0
    ip nat inside

    access-list 1 permit 12.1.1.2 0.0.0.0
    ip nat pool NAT 192.168.1.3 192.168.1.4 netmask 255.255.255.0 type rotary
    ip nat inside destination list 1 pool NAT

    Step 5: Test===============================
    R1#telnet 12.1.1.2

    配置方法比较简单,只是需要注意被调用的ACL配置:
    环境:
    R2(s1)------(s1)R1(e0)-----(e0)R3
    R1上配置具体实验,R2测试发起telnet,R3被telnet
    1,如果使用非扩展访问列表,则将内部主机对外表现的内部全局地址作为ACL配置部分,如:
        access-list 1 permit 内部全局地址.
      看测试的例子配置:E0是内口,S1是外口,1.1.12.1为代表内部的内部全局地址.

       interface Ethernet0
       ip address 10.0.0.4 255.255.255.0
       ip nat inside
       interface Serial1
       ip address 1.1.12.1 255.255.255.0
       ip nat outside
       ip nat pool PL 10.0.0.1 10.0.0.2 prefix-length 24 type rotary
       access-list 1 permit 1.1.12.1
       看对应的调试信息:
      2509rj#1
    [Resuming connection 1 to r1 ... ]
    *Mar  1 01:38:36.635: NAT: s=1.1.12.2, d=1.1.12.1->10.0.0.1 [0]
    R1#
    *Mar  1 01:38:38.635: NAT: s=1.1.12.2, d=1.1.12.1->10.0.0.1 [0]
    R1#
    *Mar  1 01:38:42.635: NAT: s=1.1.12.2, d=1.1.12.1->10.0.0.1 [0]
    R1#
    R2#
    R2#telnet 1.1.12.1
    Trying 1.1.12.1 ...
    % Connection timed out; remote host not responding
    10.0.0.1是我的笔记本地址,未开TELNET功能,所以此时发起TLNET的路由器应该连不上

    再重新telnet,这次如果被转换成10.0.0.2那么就应该能登陆到R3路由器上,因为10.0.0.2是R3的地址.:
    *Mar  1 01:38:50.635: NAT: s=1.1.12.2, d=1.1.12.1->10.0.0.1 [0]
    R1#
    *Mar  1 01:39:09.331: NAT: s=1.1.12.2, d=1.1.12.1->10.0.0.2 [0]
    *Mar  1 01:39:09.347: NAT: s=10.0.0.2->1.1.12.1, d=1.1.12.2 [0]
    *Mar  1 01:39:09.371: NAT: s=1.1.12.2, d=1.1.12.1->10.0.0.2 [1]
    *Mar  1 01:39:09.379: NAT: s=1.1.12.2, d=1.1.12.1->10.0.0.2 [2]
    *Mar  1 01:39:09.387: NAT: s=1.1.12.2, d=1.1.12.1->10.0.0.2 [3]
    *Mar  1 01:39:09.407: NAT: s=10.0.0.2->1.1.12.1, d=1.1.12.2 [1]
    *Mar  1
    *Mar  1 01:39:50.635: NAT: expiring 1.1.12.1 (10.0.0.1) tcp 23 (23)
    R1#
    从上面的信息可以看出,这次被转成了10.0.0.2
    R2#telnet 1.1.12.1
    Trying 1.1.12.1 ... Open

    User Access Verification
    Password:
    成功,提示我输入密码.
    2.如果使用扩展ACL,那么应该将内部全局地址指定为ACL中的目标地址:
    看配置范例:
    我们将ACL改成access-list 122 permit ip host 1.1.12.1 any
    然后重新调用 R1(config)#ip nat inside destination list 112 pool PL
    这个时候,故意将1.1.12.1作为ACL中源地址,目标地址任意,看这个时候能否发生转换
    R1#show ip nat trans
    R1#
    注意看,没有NAT条目,说明没有发生转换.
    R2#telnet 1.1.12.1
    Trying 1.1.12.1 ... Open
    Password required, but none set
    [Connection to 1.1.12.1 closed by foreign host]
    R2的信息则返回说需要密码,但未被设置,很明显,R2试图直接TELNET R1了,而不是通过R1的转换TELNET r3

    3.将扩展ACL的目标地址改成内部全局地址,看是什么结果:
    将ACL改成R1(config)#access-list 112 permit ip any host 1.1.12.1
    2509rj#1
    [Resuming connection 1 to r1 ... ]
    *Mar  1 01:51:46.763: NAT: s=1.1.12.2, d=1.1.12.1->10.0.0.1 [0]
    R1(config)#
    *Mar  1 01:51:48.763: NAT: s=1.1.12.2, d=1.1.12.1->10.0.0.1 [0]
    R1(config)#
    *Mar  1 01:51:52.763: NAT: s=1.1.12.2, d=1.1.12.1->10.0.0.1 [0]
    R1(config)#
    *Mar  1 01:52:00.763: NAT: s=1.1.12.2, d=1.1.12.1->10.0.0.1 [0]
    R1(config)#
    调试信息显示发生了转换.

    总结:
    1.测试的时候不要用PING,因为这个NAT的负载均衡只对TCP协议,所以用TELNET测试.
    2.需要确保路由器之间能正常进行选路,否则可能会发生,看到转换了却无法TELNET进去.
    3.内部全局地址也可以分配到环回地址,只要符ACL的就可以引发转换.


     

  • 相关阅读:
    Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test (default-test)
    maven打包报错:Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.5:test
    关于log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.lib.MutableMetricsFactory).的问题
    maven-source 1.3 中不支持注释请使用 -source 5 或更高版本以启用注释
    <Android基础>(二) Activity Part 1
    <Android基础>(一)
    数制
    第二次实验报告:使用Packet Tracer分析应用层协议
    在Windows Server 2003中搭建DNS服务器
    第一次作业:使用Packet Tracer分析HTTP包
  • 原文地址:https://www.cnblogs.com/cyrusxx/p/12562845.html
Copyright © 2011-2022 走看看