本文档介绍如何配置TCP状态旁路功能,该功能允许出站和入站流量通过单独的Cisco ASA 5500系列自适应安全设备(ASA)。
Cisco ASA必须至少安装基本许可证,才能继续执行本文档中描述的配置。
本文档中的信息基于运行软件版本9.x的Cisco ASA 5500系列。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。
有关文档约定的更多信息,请参考 Cisco 技术提示约定。
本节概述TCP状态绕行功能和相关支持信息。
默认情况下,通过ASA的所有流量都通过自适应安全算法进行检查,并根据安全策略允许或丢弃。为了最大限度地提高防火墙性能,ASA检查每个数据包的状态(例如,它检查它是新连接还是已建立连接),并将其分配给会话管理路径(新连接同步(SYN)数据包)、快速路径(已建立连接)或控制平面路径(高级检查)。
匹配快速路径中当前连接的TCP数据包可以通过ASA,而无需重新检查安全策略的每个方面。此功能可最大限度地提高性能。但是,在快速路径(使用SYN数据包)中建立会话所使用的方法和在快速路径(如TCP序列号)中发生的检查可能会阻碍非对称路由解决方案;连接的出站和入站流量必须通过同一ASA。
例如,新连接将转到ASA 1。SYN数据包将通过会话管理路径,并且连接的条目将添加到快速路径表中。如果此连接上的后续数据包通过ASA 1,则数据包与快速路径中的条目匹配并通过。如果后续数据包转到ASA 2,且没有SYN数据包通过会话管理路径,则快速路径中没有用于连接的条目,并且数据包将被丢弃。
如果在上游路由器上配置了非对称路由,并且流量在两个ASA之间交替,则可以为特定流量配置TCP状态绕行功能。TCP状态绕行功能改变会话在快速路径中建立的方式并禁用快速路径检查。此功能处理TCP流量的方式与处理UDP连接的方式相同:当与指定网络匹配的非SYN数据包进入ASA,且没有快速路径条目时,该数据包将通过会话管理路径以在快速路径中建立连接。进入快速路径后,流量会绕过快速路径检查。
此映像提供非对称路由示例,其中出站流量通过与入站流量不同的ASA:
本节介绍TCP状态旁路功能的支持信息。
使用TCP状态旁路功能时,不支持以下功能:
本节介绍如何在两种不同场景中配置ASA 5500系列的TCP状态旁路功能。
这是用于第一个场景的拓扑:
要配置TCP状态旁路功能,请完成以下步骤:
ASA(config)#class-map tcp_bypass
ASA(config)#class-map tcp_bypass
ASA(config-cmap)#match access-list tcp_bypass
ASA(config-cmap)#policy-map tcp_bypass_policy
ASA(config-cmap)#policy-map tcp_bypass_policy
ASA(config-pmap)#class tcp_bypass
ASA(config-cmap)#policy-map tcp_bypass_policy
ASA(config-pmap)#class tcp_bypass
ASA(config-pmap-c)#set connection advanced-options tcp-state-bypass
ASA(config-pmap-c)#service-policy tcp_bypass_policy outside
以下是ASA1上TCP状态绕行功能的示例配置:
!--- Configure the access list to specify the TCP traffic
!--- that needs to by-pass inspection to improve the performance.
ASA1(config)#access-list tcp_bypass extended permit tcp 10.1.1.0 255.255.255.0
172.16.1.0 255.255.255.0
!--- Configure the class map and specify the match parameter for the
!--- class map to match the interesting traffic.
ASA1(config)#class-map tcp_bypass
ASA1(config-cmap)#description "TCP traffic that bypasses stateful firewall"
ASA1(config-cmap)#match access-list tcp_bypass
!--- Configure the policy map and specify the class map
!--- inside this policy map for the class map.
ASA1(config-cmap)#policy-map tcp_bypass_policy
ASA1(config-pmap)#class tcp_bypass
!--- Use the set connection advanced-options tcp-state-bypass
!--- command in order to enable TCP state bypass feature.
ASA1(config-pmap-c)#set connection advanced-options tcp-state-bypass
!--- Use the service-policy policymap_name [ global | interface intf ]
!--- command in global configuration mode in order to activate a policy map
!--- globally on all interfaces or on a targeted interface.
ASA1(config-pmap-c)#service-policy tcp_bypass_policy outside
!--- NAT configuration
ASA1(config)#object network obj-10.1.1.0
ASA1(config-network-object)#subnet 10.1.1.0 255.255.255.0
ASA1(config-network-object)#nat(inside,outside) static 192.168.1.0
以下是ASA2上TCP状态旁路功能的配置示例:
!--- Configure the access list to specify the TCP traffic
!--- that needs to by-pass inspection to improve the performance.
ASA2(config)#access-list tcp_bypass extended permit tcp 172.16.1.0 255.255.255.0
10.1.1.0 255.255.255.0
!--- Configure the class map and specify the match parameter for the
!--- class map to match the interesting traffic.
ASA2(config)#class-map tcp_bypass
ASA2(config-cmap)#description "TCP traffic that bypasses stateful firewall"
ASA2(config-cmap)#match access-list tcp_bypass
!--- Configure the policy map and specify the class map
!--- inside this policy map for the class map.
ASA2(config-cmap)#policy-map tcp_bypass_policy
ASA2(config-pmap)#class tcp_bypass
!--- Use the set connection advanced-options tcp-state-bypass
!--- command in order to enable TCP state bypass feature.
ASA2(config-pmap-c)#set connection advanced-options tcp-state-bypass
!--- Use the service-policy policymap_name [ global | interface intf ]
!--- command in global configuration mode in order to activate a policy map
!--- globally on all interfaces or on a targeted interface.
ASA2(config-pmap-c)#service-policy tcp_bypass_policy outside
!--- NAT configuration
ASA2(config)#object network obj-10.1.1.0
ASA2(config-network-object)#subnet 10.1.1.0 255.255.255.0
ASA1(config-network-object)#nat(inside,outside) static 192.168.1.0
本节介绍如何在ASA上为使用非对称路由的场景配置TCP状态绕行功能,在这种情况下,流量会从同一接口(u-turning)进入和离开ASA。
以下是本场景中使用的拓扑:
要配置TCP状态旁路功能,请完成以下步骤:
ASA(config)#access-list tcp_bypass extended permit tcp 192.168.2.0 255.255.255.0
192.168.1.0 255.255.255.0
ASA(config)#class-map tcp_bypass
ASA(config)#class-map tcp_bypass
ASA(config-cmap)#match access-list tcp_bypass
ASA(config-cmap)#policy-map tcp_bypass_policy
ASA(config-cmap)#policy-map tcp_bypass_policy
ASA(config-pmap)#class tcp_bypass
ASA(config-cmap)#policy-map tcp_bypass_policy
ASA(config-pmap)#class tcp_bypass
ASA(config-pmap-c)#set connection advanced-options tcp-state-bypass
ASA(config-pmap-c)#service-policy tcp_bypass_policy inside
ASA(config)#same-security-traffic permit intra-interface
以下是ASA上TCP状态绕行功能的示例配置:
!--- Configure the access list to specify the TCP traffic
!--- that needs to bypass inspection to improve the performance.
ASA(config)#access-list tcp_bypass extended permit tcp 192.168.2.0 255.255.255.0
192.168.1.0 255.255.255.0
!--- Configure the class map and specify the match parameter for the
!--- class map to match the interesting traffic.
ASA(config)#class-map tcp_bypass
ASA(config-cmap)#description "TCP traffic that bypasses stateful firewall"
ASA(config-cmap)#match access-list tcp_bypass
!--- Configure the policy map and specify the class map
!--- inside this policy map for the class map.
ASA(config-cmap)#policy-map tcp_bypass_policy
ASA(config-pmap)#class tcp_bypass
!--- Use the set connection advanced-options tcp-state-bypass
!--- command in order to enable TCP state bypass feature.
ASA(config-pmap-c)#set connection advanced-options tcp-state-bypass
!--- Use the service-policy policymap_name [ global | interface intf ]
!--- command in global configuration mode in order to activate a policy map
!--- globally on all interfaces or on a targeted interface.
ASA(config-pmap-c)#service-policy tcp_bypass_policy inside
!--- Permit same security level traffic on the ASA to support U-turning
ASA(config)#same-security-traffic permit intra-interface
输入 show conn 命令,以查看活动TCP和UDP连接的数量以及各种类型连接的相关信息。要显示指定连接类型的连接状态,请输入 show conn 命令的IPv6模式。
下面是示例输出:
ASA(config)show conn
1 in use, 3 most used
TCP tcp 10.1.1.1:49525 tcp 172.16.1.1:21, idle 0:01:10, bytes 230, flags b
此功能没有特定的故障排除信息。有关一般连接故障排除信息,请参阅以下文档:
ASA在启用TCP状态绕行功能后显示以下错误消息:
%PIX|ASA-4-313004:Denied ICMP type=icmp_type, from source_address oninterface
interface_name to dest_address:no matching session
由于状态ICMP功能添加的安全检查,ASA会丢弃Internet控制消息协议(ICMP)数据包。这些通常是ICMP回应应答,没有在ASA上已传递的有效回应请求,或ICMP错误消息,与ASA中当前建立的任何TCP、UDP或ICMP会话无关。
ASA显示此日志,即使TCP状态绕行功能已启用,因为无法禁用此功能(即,检查连接表中第3类的ICMP返回条目)。但是,TCP状态旁路功能工作正常。
输入此命令以防止出现以下消息:
hostname(config)#no logging message 313004
版本 | 发布日期 | 备注 |
---|---|---|
1.0 |
15-Jun-2015 |
初始版本 |