ASA的twice-nat将互联网访问的源地址转换为内网接口地址测试

简介:

一.测试拓扑

wKioL1Xztm_z5aokAAEJC0duUpE278.jpg


二.测试思路

  1. 不考虑网络拓扑的合理性,只是考虑网络是否可通

  2. 外网访问内部服务器在防火墙上映射的公网地址不通是因为R1的默认路由指向的不是防火墙,出现了非对称路由问题,导致TCP连接来回路径不一致而会话失败

  3. 如果把外网访问内部服务器的源地址转换为防火墙内网接口地址,则不会出现非对称路由问题


三.基本配置

  1. 路由器Server:

    interface FastEthernet0/0
         ip address 192.168.1.8 255.255.255.0
         no shut
    ip route 0.0.0.0 0.0.0.0 192.168.1.1

  2. 路由器R1:

    interface Ethernet0/0
         ip address 192.168.2.1 255.255.255.0
         no shut!         
    interface Ethernet0/1
         ip address 192.168.3.1 255.255.255.0
         no shut
    interface Ethernet0/2
         ip address 192.168.1.1 255.255.255.0
         no shut!
    ip route 0.0.0.0 0.0.0.0 192.168.3.254

  3. 路由器R2:

    interface Ethernet0/0
     ip address 202.100.2.1 255.255.255.0
         ip nat outside
         no shut

    interface Ethernet0/1
         ip address 192.168.3.254 255.255.255.0
         ip nat inside
         no shut
    ip route 0.0.0.0 0.0.0.0 202.100.2.2
    ip route 192.168.0.0 255.255.0.0 192.168.3.1


    ip nat inside source list PAT interface Ethernet0/0 overload
    ip access-list extended PAT
     permit ip 192.168.0.0 0.0.255.255 any

  4. 防火墙ASA842:

    interface GigabitEthernet0
         nameif Outside
         security-level 0
         ip address 202.100.1.1 255.255.255.0 
    interface GigabitEthernet1
         nameif Inside
         security-level 100
         ip address 192.168.2.254 255.255.255.0 

    route Outside 0.0.0.0 0.0.0.0 202.100.1.2 1
    route Inside 192.168.0.0 255.255.0.0 192.168.2.1 1

  5. 路由器Internet:

    interface Loopback0
         ip address 61.1.1.1 255.255.255.0
    interface FastEthernet0/0
         ip address 202.100.1.2 255.255.255.0
         no shut
    interface FastEthernet0/1
         ip address 202.100.2.2 255.255.255.0
         no shut


四.防火墙twice-nat相关配置

  1. 定义内网服务器对象:

    object network ServerReal
         host 192.168.1.8

  2. 定义内网服务器映射后的公网IP对象:

    object network ServerMap

    host 202.100.1.8

  3. 配置twice-nat:

    转换前-----源地址:any 目标地址:内网服务器映射后的公网IP

    转换后-----源地址:防火墙inside口地址 目标地址:内网服务器实际

    IP nat (Outside,Inside) source dynamic any interface destination static ServerMap ServerReal

  4. 定义防火墙外网口策略:

    access-list Outside extended permit ip any object ServerReal

    ---注意这些是服务器的实际地址,而不是映射后的地址

  5. 应用防火墙外网口策略:

    access-group Outside in interface Outside

  6. 测试:


    Internet#telnet 202.100.1.8
    Trying 202.100.1.8 ... Open


    User Access Verification

    Password: 
    Server>show user
    % Ambiguous command:  "show user"
    Server>show users
        Line       User       Host(s)              Idle       Location
       0 con 0                idle                 00:05:42   
    *  2 vty 0                idle                 00:00:00 192.168.2.254

      Interface    User               Mode         Idle     Peer Address

    Server>q

    [Connection to 202.100.1.8 closed by foreign host]
    Internet#

    -----从公网来的防火墙已经作了源地址转换

    Server#ping 61.1.1.1

    Type escape sequence to abort.
    Sending 5, 100-byte ICMP Echos to 61.1.1.1, timeout is 2 seconds:
    !!!!!
    Success rate is 100 percent (5/5), round-trip min/avg/max = 44/80/144 ms

    Server#

    Internet#debug ip icmp 
    ICMP packet debugging is on
    Internet#
    *Aug 22 13:02:57.787: ICMP: echo reply sent, src 61.1.1.1, dst 202.100.2.1
    *Aug 22 13:02:57.967: ICMP: echo reply sent, src 61.1.1.1, dst 202.100.2.1
    *Aug 22 13:02:58.067: ICMP: echo reply sent, src 61.1.1.1, dst 202.100.2.1
    *Aug 22 13:02:58.123: ICMP: echo reply sent, src 61.1.1.1, dst 202.100.2.1
    *Aug 22 13:02:58.127: ICMP: echo reply sent, src 61.1.1.1, dst 202.100.2.1
    Internet#

    ------Server可以正常从R2路由器PAT上公网

五.后记

  1. 多个内网地址,多个公网地址,都是一对一映射情况

    可以按上面格式配置多个映射,并且都是映射到防火墙内网口地址

    object network ServerMap

         host 202.100.1.8

    object network ServerReal
         host 192.168.1.8

    object network R1Map
         host 202.100.1.18

    object network R1Real
         host 192.168.1.1


    nat (Outside,Inside) source dynamic any interface destination static ServerMap ServerReal

    nat (Outside,Inside) source dynamic any interface destination static R1Map R1Real


    access-list Outside extended permit tcp any object ServerReal eq telnet 
    access-list Outside extended permit tcp any object R1Real eq telnet 
    access-group Outside in interface Outside

  2. 多个内网地址,一个公网地址(比如接口地址),都是端口映射情况

    object network ServerReal
         host 192.168.1.8
    object network R1Real
         host 192.168.1.1


    object service telnet
         service tcp destination eq telnet 
    object service ServerMapTelnet2321
         service tcp destination eq 2321 
    object service R1MapTelnet2322
         service tcp destination eq 2322


    nat (Outside,Inside) source dynamic any interface destination static interface ServerReal service ServerMapTelnet2321 telnet
    nat (Outside,Inside) source dynamic any interface destination static interface R1Real service R1MapTelnet2322 telnet


    access-list Outside extended permit tcp any object Serverreal eq telnet 
    access-list Outside extended permit tcp any object R1Real eq telnet 
    access-group Outside in interface Outside




本文转自 碧云天 51CTO博客,原文链接:http://blog.51cto.com/333234/1694064,如需转载请自行联系原作者
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
1848 23
|
SQL 安全 测试技术
2025接口测试全攻略:高并发、安全防护与六大工具实战指南
本文探讨高并发稳定性验证、安全防护实战及六大工具(Postman、RunnerGo、Apipost、JMeter、SoapUI、Fiddler)选型指南,助力构建未来接口测试体系。接口测试旨在验证数据传输、参数合法性、错误处理能力及性能安全性,其重要性体现在早期发现问题、保障系统稳定和支撑持续集成。常用方法包括功能、性能、安全性及兼容性测试,典型场景涵盖前后端分离开发、第三方服务集成与数据一致性检查。选择合适的工具需综合考虑需求与团队协作等因素。
2531 24
|
JSON 前端开发 测试技术
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
1423 10
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
|
JSON 前端开发 API
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
1213 5
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
|
SQL 测试技术
除了postman还有什么接口测试工具
最好还是使用国内的接口测试软件,其实国内替换postman的软件有很多,这里我推荐使用yunedit-post这款接口测试工具来代替postman,因为它除了接口测试功能外,在动态参数的支持、后置处理执行sql语句等支持方面做得比较好。而且还有接口分享功能,可以生成接口文档给团队在线浏览。
904 2
|
存储 JSON API
Python测试淘宝店铺所有商品接口的详细指南
本文详细介绍如何使用Python测试淘宝店铺商品接口,涵盖环境搭建、API接入、签名生成、请求发送、数据解析与存储、异常处理等步骤。通过具体代码示例,帮助开发者轻松获取和分析淘宝店铺商品数据,适用于电商运营、市场分析等场景。遵守法规、注意调用频率限制及数据安全,确保应用的稳定性和合法性。
|
负载均衡 安全 网络安全
|
监控 JavaScript 测试技术
postman接口测试工具详解
Postman是一个功能强大且易于使用的API测试工具。通过详细的介绍和实际示例,本文展示了Postman在API测试中的各种应用。无论是简单的请求发送,还是复杂的自动化测试和持续集成,Postman都提供了丰富的功能来满足用户的需求。希望本文能帮助您更好地理解和使用Postman,提高API测试的效率和质量。
1199 11
|
存储 测试技术 数据库
接口测试工具攻略:轻松掌握测试技巧
在互联网快速发展的今天,软件系统的复杂性不断增加,接口测试工具成为确保系统稳定性的关键。它如同“翻译官”,模拟请求、解析响应、验证结果、测试性能并支持自动化测试,确保不同系统间信息传递的准确性和完整性。通过Apifox等工具,设计和执行测试用例更加便捷高效。接口测试是保障系统稳定运行的第一道防线。