正如我在这里所问,并在 这里重复,似乎NAT发夹是我正在寻找允许内部服务器回环通过ASA访问外部IP(不使用DNS Doctoring)的答案。 但是,这些post中提供的说明,在这里, http://www.cisco.com/en/US/products/ps6120/products_configuration_example09186a00807968d1.shtml#solution2似乎并不涵盖IOS 8.3+上的NAT Hairpinning(我是运行9.1)9.1甚至没有静态命令(本身)了。
我如何在IOS 8.3+(特别是思科ASA 5505上的9.1(2))NAT发夹。
谢谢!
这是我发布到思科的支持网站…也许附加信息使我的情况更清楚
我似乎无法得到nat hairpinning的工作…互联网上的大多数说明指出如何使用8.3之前的可用命令做到这一点。
我已经尝试了以下内容:
same-security-traffic permit intra-interface asa-box(config-network-object)# object network my-inside-address-obj asa-box(config-network-object)# nat (inside,inside) static my-outside-address-obj
哪个没用
然后我补充说:
access-list hairpin_allow extended permit tcp object Internal_NAT_Range object External_NAT_Range
同
access-group hairpin_allow in interface inside
这也没有工作(试图在这里显示适当的dilligence …)。
然后我试着:
nat (inside,inside) source static Internal_NAT_Range Internal_NAT_Range destination static External_NAT_Range External_NAT_Range
还是不行。
最后,我执行了这些步骤(如下所示):“9.为了避免由于内部发生的路由不对称而造成数据包丢失,我们需要ASA绕过对特定stream量进行状态检查,为此,我们需要configuration以下内容:
ASA(config)#access-list tcp_bypass扩展许可证tcp对象Internal_NAT_Range对象External_NAT_Range!—configuration访问列表来指定需要旁路检查以提高性能的TCP通信。
!—configuration类映射并为!—类映射指定匹配参数以匹配感兴趣的stream量。
ASA(config-cmap)#match access-list tcp_bypass(config-cmap)#description“绕过有状态防火墙的TCPstream量”ASA(config)#class-map tcp_bypass ASA
!—configuration策略映射并在该策略映射中为类映射指定类映射!
ASA(config-cmap)#policy-map tcp_bypass_policy ASA(config-pmap)#class tcp_bypass
!—使用set connection advanced-options tcp-state-bypass!—命令启用TCP状态旁路function。
ASA(config-pmap -c)#set connection advanced-options tcp-state-bypass
!—使用服务策略policymap_name [global | interface intf]!—命令在全局configuration模式下,以在所有接口或目标接口上全局激活策略映射!
ASA(config-pmap -c)#service-policy tcp_bypass_policy里面“
再次,没有…
我的configuration(干净/以上任何之前)如下…
... object network External_NAT_Range range xx56.3 xx59.255 object network Internal_NAT_Range range 172.17.56.3 172.17.59.255 object network InternalIPs subnet 172.17.56.0 255.255.248.0 object network VpnIPs subnet 172.17.63.0 255.255.255.0 object network InternalIPs_OutOnly range 172.17.60.1 172.17.62.254 ... nat (inside,outside) source static InternalIPs InternalIPs destination static VpnIPs VpnIPs no-proxy-arp route-lookup description Un-Nats VPN IPs nat (inside,outside) source dynamic InternalIPs_OutOnly interface description Allows remaining interior network to access the Internet ! object network Internal_NAT_Range nat (inside,outside) static External_NAT_Range net-to-net access-group outside_access_in in interface outside route outside 0.0.0.0 0.0.0.0 xx56.1 1 ...
我只是想能够访问一个外部资源,比如来自内部IP的http://xx56.5 ,比如172.17.56.8
我试图使用DNS修复。 configuration简单得多,而且工作,但是当PTR请求来自互联网,DNS Doctoring似乎也翻译出站响应,以反映我的内部IP,这显然是相当错误的…
从您的任何帮助思科专业人士将不胜感激!
谢谢!
作为一个过时的前PIX / ASApipe理员,我当然发现这是不可抗拒的。 我没有装置(但是运行6.3的老式的PIX 506E)试用它,所以这是完全蹩脚的。 但是,这是我在9.1的在线文档中发现的,并通过一些随机的谷歌search。 参考链接在post的底部提供。 所以,手指交叉…
假设所有其他的configuration是正确的,如路由,访问列表等,你仍然需要使用该命令
same-security-traffic permit intra-interface
以便从内部客户端到外部映射地址的stream量被允许重新转换为内部服务器地址,即使其“发夹”。
要将内部地址iiii映射到外部地址xxxx,您将在8.3之前使用该命令
static (inside,inside) xxxx iiii
为了允许内部主机使用从dns获得的外部地址到内部服务器。 这不同于常规的“un-hairpinned”语法
static (inside,outside) xxxx iiii
而且自然也会存在,以允许外部客户使用公共IP调用服务器。
在8.3及以后的版本中,这个语法已经被重写,并且相应的发送端口映射指令给ASA看起来像这样:
asa-box(config)# object network my-outside-address-obj asa-box(config-network-object)# host xxxx asa-box(config-network-object)# object network my-inside-address-obj asa-box(config-network-object)# host iiii asa-box(config-network-object)# nat (inside,inside) static my-outside-address-obj
这也可以通过定期的“非发夹式”指导来补充。
这似乎是我能find的唯一真正的区别,但是对于它在实践中是如何工作的,当然是非常好奇的。
我在这里find了端口地址转换的9.1命令语法(即对应于旧的静态命令): http : //www.cisco.com/en/US/docs/security/asa/asa91/configuration/firewall/nat_objects.html #wp1106703
我发现了一个绝对优秀的发夹编程语法的历史指南,展示了相同的示例devise,因为它将在这里通过不同的版本进行configuration: http : //nat0.net/cisco-asa-hairpinning/
祝你好运!