问题
带有身份验证和多个WSA的WCCP是否会导致环路(限制客户端访问需要ACL)?
症状
当使用WCCP、身份验证和至少两个WSA时,客户端在尝试访问透明身份验证服务器URL时将被重定向。这在客户端上显示为严重延迟或超时。
解决方案
当身份验证与WCCP一起使用时,WSA必须首先将客户端重定向到自身,然后才能执行身份验证。这是必要步骤,因为不能对同一目标执行两次身份验证。
发生的问题是当客户端向WSA发出新请求时,WCCP路由器会通过WCCP池重定向此请求。此请求可以通过其他WSA重新代理,这将导致此第二WSA尝试从第一个WSA获取对象。
为了防止此类意外行为,需要在WCCP路由器上创建ACL。ACL应类似于以下内容:
ACL行 |
目的 |
access-list 105 deny ip host <WSA 1> any |
请勿重定向源自WSA 1的流量 |
access-list 105 deny ip host <WSA 2> any |
请勿重定向源自WSA 2的流量 |
access-list 105 deny ip host any <WSA 2> |
请勿重定向任何直接转到WSA 1的客户端(身份验证) |
access-list 105 deny ip host any <WSA 1> |
请勿将任何客户端重定向到WSA 2(身份验证) |
这将防止客户端因代理身份验证请求被重定向到WSA。
您还可以使用组列表限制接受哪些WSA作为Web缓存:
ACL行 |
目的 |
access-list 15 permit <WSA 1> |
允许此IP包含在指定的WCCP服务ID中 |
access-list 15 permit <WSA 2> |
允许此IP包含在指定的WCCP服务ID中 |
使用这些ACL实施WCCP的语法是:
ip wccp <service ID> redirect-list 105
ip wccp <service ID> redirect-list 105 group-list 15
注意:您需要为拥有的每个WSA添加规则。在上述场景中,只有两个WSA。