简介
本文描述了一个问题:通过自适应安全设备(ASA)的移动路径连接(使用用户数据报协议(UDP)和IP协议93)可能会中断并继续失败,直到重新加载移动设备,或者移动路径流量被停止并短暂处于非活动状态并重新启动。
先决条件
要求
Cisco 建议您了解以下主题:
- 思科自适应安全设备(ASA)
- 无线局域网控制器(WLC)
使用的组件
本文档不限于特定的软件和硬件版本。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。
规则
有关文档规则的信息,请参阅 Cisco 技术提示规则。
问题
在这种情况下,10.10.1.2的无线LAN控制器(WLC)尝试与10.10.9.3的WLC通信,但通信失败。
此问题可能由以下任一事件触发:
- ASA将重新启动。
- 路由表由管理员或路由协议修改。
- 接口关闭,然后由管理员重新打开。
除移动流量外,任何UDP或非TCP IP协议都可能遇到此问题。
此问题不是Bug,而是网络拓扑和ASA配置的结果。有关此问题的原因和解决方案,请参阅下文。
网络拓扑示例

ASA路由配置:
!
route outside 0.0.0.0 0.0.0.0 192.168.4.3 1
route inside 10.0.0.0 255.0.0.0 192.168.254.1 1
!
same-security-traffic permit intra-interface
!
ASA dmz接口配置:
!
interface Gigabit-Ethernet0/1.10
vlan 10
nameif dmz
security-level 75
ip address 10.10.9.1 255.255.255.240 standby 10.10.9.2
!
问题触发器
当位于10.10.1.2的WLC发送发往位于10.10.9.3的WLC的流量时,会触发问题。这些数据包导致ASA在其连接表中建立连接,将移动流量从错误的ASA接口(内部)发送出去。

此问题是由ASA的目标接口“dmz”在建立连接时处于关闭/关闭状态引起的,这会导致连接建立出不同的非最佳接口。dmz接口可能由于电缆问题、以太网或端口通道协商问题而关闭,或者可能因管理原因关闭。
在出现问题时,移动路径连接可视为ASA的“接口内”,即将数据包从它们到达的同一内部接口路由回:
ASA# show conn address 10.10.1.2
15579 in use, 133142 most used
97 inside 10.10.9.3 inside 10.10.1.2, idle 0:00:00, bytes 32210
UDP inside 10.10.9.3:16666 inside 10.10.1.2:16666, idle 0:00:00, bytes 4338, flags -
97 inside 10.10.9.3 inside 10.10.1.2, idle 0:00:00, bytes 157240
ASA#
位于10.10.1.2的移动终端继续发送发往10.10.9.3的流量,该流量与这些现有连接匹配。即使dmz接口进入up/up状态,源自10.10.1.2的移动流量也会与表中的现有连接匹配(而不是构建到dmz接口的新连接),这会重置ASA上连接的超时,从而延长问题的时间。
总之,这些事件可能会触发问题:
- 位于10.10.1.2的设备向10.10.9.3发送协议97或UDP数据包。
- ASA在内部接口上接收数据包,但dmz接口关闭,这会导致路由表中缺少通往目的网络的更具体路由。由于ASA上启用same-security permit intra-interface命令,因此它遵循为10.0.0.0/8网络配置的静态路由,通过内部接口返回,在连接表中建立连接,然后将数据包从内部接口发送回内部网络。
- 在某个时候,dmz接口可能会重新打开,路由会重新添加到表中;但是,由于协议97流量的连接已在步骤#2中建立,因此后续数据包将与连接匹配,并且路由表被覆盖,并且流量不会到达dmz上的服务器。
解决方案
解决方案 1
解决此问题的一个可能解决方案是从ASA中删除same-security permit intra-interface命令。此解决方案可防止从接收原始数据包的同一接口重新建立u-turn连接,这样,当接口打开时,就可以建立正确的连接。但是,根据ASA的路由表,此解决方案可能不起作用(根据路由表,流量可能路由到目标之外的其他接口),并且ASA上的其他连接可能需要same-security permit intra-interface命令。
解决方案 2
对于此特定实例,通过启用超时浮动连接功能成功缓解了问题。默认情况下未启用此功能,在ASA的新接口(dmz接口启用时)向路由表添加到某个终端的更首选路由后一分钟,ASA将断开这些连接。然后,当下一个数据包到达ASA时,使用更首选的接口(dmz,而不是10.10.9.3主机的内部接口)立即重建连接。
ASA(config)# timeout floating-conn 0:01:00

当问题得到缓解时,ASA连接表中会构建正确的连接,并自动恢复连接:
ASA# show conn address 10.10.1.2
15329 in use, 133142 most used
97 dmz 10.10.9.3 inside10.10.1.2, idle 0:00:00, bytes 3175742510
UDP dmz 10.10.9.3:16666 inside 10.10.1.2:16666, idle 0:00:00, bytes 40651338, flags -
97 dmz 10.10.9.3 inside10.10.1.2, idle 0:00:00, bytes 1593457240
ASA#
相关信息