思科 – 你如何在IOS 8.3中使用NAT发夹

当我问 here并重复 here时,看起来NAT Hairpinning是我正在寻找的答案,允许内部服务器通过ASA环回来访问外部IP(不使用DNS Doctoring).但是,这些帖子中提供的说明,这里,http://www.cisco.com/en/US/products/ps6120/products_configuration_example09186a00807968d1.shtml#solution2似乎没有涵盖IOS 8.3上的NAT发夹(我正在运行9.1)9.1甚至没有静态命令(单独使用).

如何在IOS 8.3中使用NAT发夹(特别是Cisco ASA 5505上的9.1(2)).

谢谢!

更新:

这是我发布到思科支持网站的内容……也许附加信息使我的情况更加清晰

我似乎无法让nat发夹工作……互联网上的大多数说明都指出了如何使用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

这也没有用(试图在这里显示尽职调查……).

然后我尝试了:

nat (inside,inside) source static Internal_NAT_Range Internal_NAT_Range destination static External_NAT_Range External_NAT_Range

还是不行.

最后,我执行了这些步骤(见here):
“9.为了避免由于内部发生的路由的非对称性导致的数据包丢失,我们需要ASA绕过对此特定流量的状态检查.为此,我们需要配置以下内容

ASA(config)#access-list tcp_bypass扩展许可tcp对象Internal_NAT_Range对象External_NAT_Range
!—配置访问列表以指定TCP流量
!—需要通过检查来提高性能.

!—配置类映射并为其指定匹配参数
!—类地图匹配有趣的流量.

ASA(config)#class-map tcp_bypass
ASA(config-cmap)#description“绕过状态防火墙的TCP流量”
ASA(config-cmap)#match access-list tcp_bypass

!—配置策略映射并指定类映射
!—这个类映射的策略映射.

ASA(config-cmap)#policy-map tcp_bypass_policy
ASA(config-pmap)#class tcp_bypass

!—使用set connection advanced-options tcp-state-bypass
!—命令以启用TCP状态旁路功能.

ASA(config-pmap-c)#set connection advanced-options tcp-state-bypass

!—使用service-policy policymap_name [global | interface intf]
!—命令在全局配置模式下激活策略映射
!—全局在所有接口或目标接口上.

ASA(config-pmap-c)#service-policy tcp_bypass_policy inside“

再说一遍……

我的配置(清洁/之前的任何一个)如下…

...
object network External_NAT_Range
 range x.x.56.3 x.x.59.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 x.x.56.1 1
...

我只是希望能够从内部IP(例如172.17.56.8)访问外部资源,例如http://x.x.56.5

我试图使用DNS篡改.配置更简单,更有效,但是当PTR请求来自互联网时,DNS Doctoring似乎也转换了出站响应以反映我的内部IP,这显然是非常错误的……

您的任何帮助思科专业人士将不胜感激!

谢谢!

解决方法

作为一个过时的前PIX / ASA管理员我当然发现这不可抗拒.我没有设备(但是运行6.3的旧PIX 506E)试用它,所以它完全是蹩脚的.但这是我在9.1的在线文档中以及通过一些随机谷歌搜索发现的内容.帖子底部提供了参考链接.所以手指交叉……

假设所有其他配置都是正确的,例如路由,访问列表等,您仍然需要使用该命令

same-security-traffic permit intra-interface

为了使来自内部客户端的流量到外部映射的地址允许重新转换为内部服务器地址,即使其“发夹”.

要将内部地址i.i.i.i端口映射到外部地址x.x.x.x,您将在8.3之前使用该命令

static (inside,inside) x.x.x.x i.i.i.i

为了使用从dns获得的外部地址允许内部主机的nat发夹到内部服务器.这与常规的“un-hairpinned”语法不同

static (inside,outside) x.x.x.x i.i.i.i

并且自然也会出现以允许外部客户端使用公共IP调用服务器.

在版本8.3及更高版本中,此语法已被重写,并且ASA的相应发夹端口映射指令将如下所示:

asa-Box(config)# object network my-outside-address-obj
asa-Box(config-network-object)# host x.x.x.x
asa-Box(config-network-object)# object network my-inside-address-obj
asa-Box(config-network-object)# host i.i.i.i
asa-Box(config-network-object)# nat (inside,inside) static my-outside-address-obj

这也可以通过常规的“非发夹”指令来补充.

这似乎是我能找到的唯一真正的区别,但我当然非常好奇它在实践中是如何运作的.

在这里找到了用于端口地址转换的9.1命令语法(即对应于旧的静态命令):
http://www.cisco.com/en/US/docs/security/asa/asa91/configuration/firewall/nat_objects.html#wp1106703

我发现了一个非常出色的发夹语法历史指南,显示了相同的示例设计,因为它将在不同版本中配置:
http://nat0.net/cisco-asa-hairpinning/

祝你好运!

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...