你如何在IOS 8.3+ NAT发夹

正如我在这里所问,并在 这里重复,似乎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/

祝你好运!