扩展的 ACL 和扩展的 ACL6
扩展 ACL 和扩展 ACL6 提供了简单 ACL 不可用的参数和操作。您可以根据源 IP 地址、源端口、操作和协议等参数筛选数据。您可以指定允许数据包、拒绝数据包或桥接数据包的任务。
扩展 ACL 和 ACL6 可以在创建之后进行修改,您可以重新编号它们的优先级以指定评估它们的顺序。
注意: 如果同时配置简单 ACL 和扩展 ACL,则简单 ACL 优先于扩展 ACL。
可以对扩展 ACL 和 ACL6 执行以下操作:修改、应用、禁用、启用、删除和重新编号(优先级)。您可以显示扩展 ACL 和 ACL6 来验证它们的配置,还可以显示它们的统计信息。
您可以将 Citrix ADC 配置为记录与扩展 ACL 匹配的数据包的详细信息。
应用扩展 ACL 和扩展 ACL6: 与简单 ACL 和 ACL6 不同,在 Citrix ADC 上创建的扩展 ACL 和 ACL6 在应用之前不起作用。此外,如果您对扩展 ACL 或 ACL6 进行任何更改,例如禁用 ACL、更改优先级或删除 ACL,则必须重新应用扩展 ACL 或 ACL。启用日志记录后,必须重新应用它们。应用扩展 ACL 或 ACL6 的过程将重新应用所有它们。例如,如果您应用了扩展 ACL 规则 1 到 10,然后创建并应用规则 11,则重新应用前 10 个规则。
如果会话具有与其相关的拒绝 ACL,则在应用 ACL 时,该会话将终止。
默认情况下,扩展 ACL 和 ACL6 处于启用状态。应用这些数据包后,Citrix ADC 开始将传入的数据包与它们进行比较。但是,如果禁用它们,在重新启用它们之前才会使用它们,即使它们被重新应用也是如此。
重新编号扩展 ACL 和扩展 ACL6 的优先级: 优先级编号决定扩展 ACL 或 ACL6 与数据包匹配的顺序。优先级较低的 ACL 具有较高的优先级。它在优先级较高(优先级较低)的 ACL 之前进行评估,而与数据包匹配的第一个 ACL 决定了应用于数据包的操作。
当您创建扩展 ACL 或 ACL6 时,Citrix ADC 会自动为其分配一个优先级编号,该优先级号是 10 的倍数,除非您另有指定。例如,如果两个扩展 ACL 的优先级分别为 20 和 30,并且您希望第三个 ACL 在这些数字之间有一个值,则可以为其分配值 25。如果以后要保留 ACL 的评估顺序,但将其编号恢复为 10 的倍数,则可以使用重新编号过程。
配置扩展 ACL 和扩展 ACL6
在 Citrix ADC 上配置扩展 ACL 或 ACL6 包括以下任务。
- 创建扩展 ACL 或 ACL6。创建扩展 ACL 或 ACL6 以允许、拒绝或桥接数据包。您可以指定 IP 地址或 IP 地址范围,以与数据包的源或目标 IP 地址匹配。您可以指定与传入数据包协议匹配的协议的协议。
- (可选) 修改扩展 ACL 或 ACL6。您可以修改之前创建的扩展 ACL 或 ACL6。或者,如果你想暂时停止使用它,你可以禁用它,然后再重新启用它。
- 应用扩展 ACL 或 ACL6。创建、修改、禁用或重新启用或删除扩展 ACL 或 ACL6 后,必须应用扩展 ACL 或 ACL6 来激活它们。
- (可选) 重新编号扩展 ACL 或 ACL6 的优先级。如果您配置了 ACL 的优先级不是 10 的倍数,并希望将编号恢复为 10 的倍数,请使用重新编号过程。
CLI 过程
要使用 CLI 创建扩展 ACL,请执行以下操作:
在命令提示符下,键入:
-
**add ns acl** <aclname> <aclaction> [-**srcIP** [<operator>] <srcIPVal>] [-**srcPort** [<operator>] <srcPortVal>] [-**destIP** [<operator>] <destIPVal>] [-**destPort** [<operator>] <destPortVal>] [-**TTL** <positive_integer>] [-**srcMac** <mac_addr>] [(-**protocol** <protocol> [-established]) | -**protocolNumber** <positive_integer>] [-**vlan** <positive_integer>] [-**interface** <interface_name>] [-**icmpType** <positive_integer> [-**icmpCode** <positive_integer>]] [-**priority** <positive_integer>] [-**state** ( ENABLED | DISABLED )] [-**logstate** ( ENABLED | DISABLED ) [-**ratelimit** <positive_integer>]]
-
show ns acl [<aclName>]
要使用 CLI 创建扩展 ACL6,请执行以下操作:
在命令提示符下,键入:
-
**add ns acl6** <acl6name> <acl6action> [-**srcIPv6** [<operator>] <srcIPv6Val>] [-**srcPort** [<operator>] <srcPortVal>] [-**destIPv6** [<operator>] <destIPv6Val>] [-**destPort** [<operator>] <destPortVal>] [-**TTL** <positive_integer>] [-**srcMac** <mac_addr>] [(-**protocol** <protocol> [-established]) | -**protocolNumber** <positive_integer>] [-**vlan** <positive_integer>] [-**interface** <interface_name>] [-**icmpType** <positive_integer> [-**icmpCode** <positive_integer>]] [-**priority** <positive_integer>] [-**state** ( ENABLED | DISABLED )]
-
show ns acl6 [<aclName>]
要使用 CLI 修改扩展 ACL,请执行以下操作:
要修改扩展 ACL,请键入 set ns ACL 命令、扩展 ACL 的名称、要更改的参数及其新值。
要使用 CLI 修改扩展的 ACL6,请执行以下操作:
要修改扩展 ACL6,请键入 set ns acl6 命令、扩展 ACL6 的名称以及要更改的参数及其新值。
要使用 CLI 禁用或启用扩展 ACL,请执行以下操作:
在命令提示符下,键入以下命令之一:
- disable ns acl <aclname>
- enable ns acl <aclname>
要使用 CLI 禁用或启用扩展 ACL6,请执行以下操作:
在命令提示符下,键入以下命令之一:
- disable ns acl6 <aclname>
- enable ns acl6 <aclname>
要使用 CLI 应用扩展 ACL,请执行以下操作:
在命令提示符下,键入:
- apply ns acls
要使用 CLI 应用扩展 ACL6,请执行以下操作:
在命令提示符下,键入:
- apply ns acls6
要使用 CLI 重新编号扩展 ACL 的优先级,请执行以下操作:
在命令提示符下,键入:
- renumber ns acls
要使用 CLI 重新编号扩展 ACL6 的优先级,请执行以下操作:
在命令提示符下,键入:
- renumber ns acls6
GUI 程序
要使用 GUI 配置扩展 ACL,请执行以下操作:
- 导航到 “ 系统 ” > “ 网络 ” > “ ACL ”,然后在 “ 扩展 ACL ” 选项卡上添加新的扩展 ACL 或编辑现有扩展 ACL。要启用或禁用现有扩展 ACL,请选择它,然后从 “ 操作 ” 列表中选择 “ 启 用” 或 “ 禁用 ”。
要使用 GUI 配置扩展 ACL6,请执行以下操作:
- 导航到 “ 系统 ” > “ 网络 ” > “ ACL ”,然后在 “ 扩展 ACL6 ” 选项卡上添加新的扩展 ACL6 或编辑现有的扩展 ACL6。要启用或禁用现有的扩展 ACL6,请选择它,然后从 操作 列表中选择 启用或禁用 。
要使用 GUI 应用扩展 ACL,请执行以下操作:
- 导航到 “ 系统 ” > “ 网络 ” > “ ACL ”,然后在 “ 扩展 ACL ” 选项卡的 “ 操作 ” 列表中单击 “ 应用”。
要使用 GUI 应用扩展 ACL6,请执行以下操作:
- 导航到系统 > 网络 > ACL,然后在扩展 ACL6 选项卡的操作列表中单击应用。
要使用 GUI 重新编号扩展 ACL 的优先级,请执行以下操作:
- 导航到 “ 系统 ” > “ 网络 ” > “ ACL ”,然后在 “ 扩展 ACL ” 选项卡的 “ 操作 ” 列表中,单击 “ 重新编号优先级”。
要使用 GUI 重新编号扩展 ACL6 的优先级,请执行以下操作:
- 导航到系统 > 网络 > ACL,然后在扩展 ACL6 选项卡的操作列表中,单击重新编号优先级。
示例配置
下表显示了通过命令行界面配置扩展 ACL 规则的示例: ACL 示例配置。
记录扩展 ACL
您可以将 Citrix ADC 配置为记录与扩展 ACL 匹配的数据包的详细信息。
除了 ACL 名称之外,记录的详细信息还包括特定于数据包的信息,例如源和目标 IP 地址。信息存储在 syslog 文件或文件中,具体取决于启用的全局日志记录 (syslog or nslog
) 的类型。 nslog
必须同时在全局级别和 ACL 级别启用日志记录。全局设置优先。
为了优化日志记录,当来自同一流的多个数据包与一个 ACL 匹配时,只记录第一个数据包的详细信息,对于属于同一流的每个数据包,计数器都会增加。流程被定义为一组对源 IP 地址、目标 IP 地址、源端口、目标端口和协议参数具有相同值的数据包。为避免日志消息泛滥,Citrix ADC 执行内部速率限制,以便不会重复记录属于同一流的数据包。在任何给定时间可以记录的不同流量的总数限制为 10,000 个。
注意: 启用日志记录后,必须应用 ACL。
CLI 过程
要使用 CLI 配置扩展 ACL 日志记录:
在命令提示符下,键入以下命令以配置日志记录并验证配置:
- **set ns acl** <aclName> [-**logState** (ENABLED | DISABLED)] [-**rateLimit** <positive_integer>]
- apply acls
- show ns acl [<aclName>]
GUI 程序
要使用 GUI 配置扩展 ACL 日志记录:
- 导航到 系统 > 网络 > ACL ,然后在 扩展 ACL 选项卡上打开扩展 ACL。
- 设置以下参数:
-
日志状态— 启用或禁用与扩展 ACL 规则相关的事件的日志记录。日志消息存储在配置的
syslog or auditlog
服务器中。 - 日志速率限制— 每秒要生成的最大日志消息数。如果设置此参数,则必须启用日志状态参数。
-
日志状态— 启用或禁用与扩展 ACL 规则相关的事件的日志记录。日志消息存储在配置的
示例配置
> set ns acl restrict -logstate ENABLED -ratelimit 120
Warning: ACL modified, apply ACLs to activate change
> apply ns acls
Done
<!--NeedCopy-->
记录扩展的 ACL6
您可以将 Citrix ADC 设备配置为记录与扩展 ACL6 规则匹配的数据包的详细信息。除了 ACL6 名称之外,记录的详细信息还包括特定于数据包的信息,例如源和目标 IP 地址。信息存储在系统日志或 nslog
文件中,具体取决于您在 Citrix ADC 设备中配置的日志记录 (syslog or nslog
) 类型。
为了优化日志记录,当同一流中的多个数据包与 ACL6 匹配时,仅记录第一个数据包的详细信息。对于属于同一流的其他每个数据包,计数器都会增加。流程被定义为一组对以下参数具有相同值的数据包:
- 源 IP
- 目标 IP
- 源端口
- 目的端口
- 协议(TCP 或 UDP)
如果传入的数据包不是来自同一个流,则会创建一个新的流。 在任何给定时间可以记录的不同流量的总数限制为 10,000 个。
CLI 过程
要使用 CLI 为扩展 ACl6 规则配置日志记录,请执行以下操作:
-
要在添加扩展 ACL6 规则时配置日志记录,请在命令提示符下键入:
- **add acl6** <acl6Name> <acl6action> [-**logState** (ENABLED | DISABLED)] [-**rateLimit** <positive_integer>]
- apply acls6
- show acl6 [<acl6Name>]
-
要为现有扩展 ACL6 规则配置日志记录,请在命令提示符下键入:
- **set acl6** <acl6Name> [-**logState** (ENABLED | DISABLED)] [-**rateLimit** <positive_integer>]
- show acl6 [<acl6Name>]
- apply acls6
GUI 程序
要使用 GUI 配置扩展 ACL6 日志记录,请执行以下操作:
- 导航到系统 > 网络 > ACL,然后单击扩展 ACL6 选项卡。
- 在添加或修改现有扩展 ACL6 规则时设置以下参数。
-
日志状态 — 启用或禁用与扩展 ACL6 规则相关的事件的日志记录。日志消息存储在配置的 syslog 或
auditlog
服务器中。 - 日志速率限制— 每秒要生成的最大日志消息数。如果设置此参数,则必须启用日 志状态 参数。
-
日志状态 — 启用或禁用与扩展 ACL6 规则相关的事件的日志记录。日志消息存储在配置的 syslog 或
示例配置
> set acl6 ACL6-1 -logstate ENABLED -ratelimit 120
Done
> apply acls6
Done
<!--NeedCopy-->
显示扩展 ACL 和扩展 ACL6 统计信息
您可以显示扩展 ACL 和 ACL6 的统计信息。
下表列出了与扩展 ACL 和 ACL6 关联的统计信息及其说明。
统计 | 说明 |
---|---|
允许 ACL 匹配 | 与处理模式设置为“允许”的 ACL 匹配的数据包。Citrix ADC 处理这些数据包。 |
NAT ACL 匹配 | 匹配 NAT ACL 的数据包,导致 NAT 会话。 |
拒绝 ACL 匹配 | 丢弃的数据包,因为它们与处理模式设置为“拒绝”的 ACL 匹配。 |
桥接 ACL 匹配 | 匹配网桥 ACL 的数据包,该数据包在透明模式下会绕过服务处理。 |
ACL 匹配 | 匹配 ACL 的数据包。 |
ACL 错过 | 不匹配任何 ACL 的数据包。 |
ACL 计数 | 用户配置的 ACL 规则总数。 |
有效的 ACL 计数 | 内部配置的有效 ACL 总数。对于具有一系列 IP 地址的扩展 ACL,Citrix ADC 设备会在内部为每个 IP 地址创建一个扩展 ACL。例如,对于具有 1000 个 IPv4 地址(范围或数据集)的扩展 ACL,Citrix ADC 在内部创建了 1000 个扩展 ACL。 |
CLI 过程
要使用 CLI 显示所有扩展 ACL 的统计信息,请执行以下操作:
在命令提示符下,键入:
- stat ns acl
要使用 CLI 显示所有扩展 ACL6 的统计信息,请执行以下操作:
在命令提示符下,键入:
- stat ns acl6
GUI 程序
要使用 GUI 显示扩展 ACL 的统计信息,请执行以下操作:
- 导航到 系统 > 网络 > ACL,在 扩展 ACL 选项卡上,选择扩展 ACL,然后单击统 计信息。
要使用 GUI 显示扩展 ACL6 的统计信息,请执行以下操作:
- 导航到系统 > 网络 > ACL,在扩展 ACL6 选项卡上,选择扩展 ACL,然后单击统计信息。
状态 ACL
有状态 ACL 规则会在请求与规则匹配时创建会话,并允许生成的响应,即使这些响应与 Citrix ADC 设备中的拒绝 ACL 规则匹配也允许生成的响应。有状态 ACL 可以减轻创建更多 ACL 规则/转发会话规则以允许这些特定响应的工作。
有状态 ACL 最好用于具有以下要求的 Citrix ADC 设备的边缘防火墙部署:
- Citrix ADC 设备必须允许来自内部客户端发起的请求以及来自互联网的相关响应。
- 设备必须从 Internet 中丢弃与任何客户端连接无关的数据包。
开始之前的准备工作
在配置有状态 ACL 规则之前,请注意以下几点:
- Citrix ADC 设备支持有状态 ACL 规则和有状态 ACL6 规则。
- 在高可用性设置中,有状态 ACL 规则的会话不会同步到辅助节点。
- 如果 ACL 规则绑定到任何 Citrix ADC NAT 配置,则无法将 ACL 规则配置为有状态。Citrix ADC NAT 配置的一些示例包括:
- RNAT
- 大规模 NAT(大型 NAT44、DS-Lite、大型 NAT64)
- NAT64
- 转发会话
- 如果为此 ACL 规则设置了 TTL 和已建立的参数,则无法将 ACL 规则配置为有状态。
- 无论以下 ACL 操作如何,为有状态 ACL 规则创建的会话将继续存在,直到超时为止:
- 删除 ACL
- 禁用 ACL
- 清除 ACL
- 以下协议不支持有状态 ACL:
- 活动 FTP
- TFTP
配置有状态的 IPv4 ACL 规则
配置有状态 ACL 规则包括启用 ACL 规则的有状态参数。
要使用 CLI 启用 ACL 规则的状态参数,请执行以下操作:
-
要在添加 ACL 规则时启用有状态参数,请在命令提示符下键入:
- add acl <lname> ALLOW -stateful (ENABLED | DISABLED)
- apply acls
- show acl <name>
-
要启用现有 ACL 规则的有状态参数,请在命令提示符下键入:
- set acl <name> -stateful (ENABLED | DISABLED)
- apply acls
- show acl <name>
要使用 GUI 启用 ACL 规则的状态参数,请执行以下操作:
-
导航到 “ 系统 ” > “ 网络 ” > “ ACL ”,然后在 “ 扩展 ACL ” 选项卡上。
-
在添加或修改现有 ACL 规则时启用 状 态参数。
示例配置
> add acl ACL-1 allow -srciP 1.1.1.1 -stateful Yes
Done
> apply acls
Done
> show acl
1) Name: ACL-1
Action: ALLOW Hits: 0
srcIP = 1.1.1.1
destIP
srcMac:
Protocol:
Vlan: Interface:
Active Status: ENABLED Applied Status: NOTAPPLIED
Priority: 10 NAT: NO
TTL:
Log Status: DISABLED
Forward Session: NO
Stateful: YES
<!--NeedCopy-->
配置有状态的 ACL6 规则
配置有状态 ACL6 规则包括启用 ACL6 规则的有状态参数。
要使用 CLI 启用 ACL6 规则的状态参数,请执行以下操作:
-
要在添加 ACL6 规则时启用有状态参数,请在命令提示符下键入:
- add acl6 <name> ALLOW -stateful ( ENABLED | DISABLD )
- apply acls6
- show acl6 <name>
-
要启用现有 ACL6 规则的有状态参数,请在命令提示符下键入:
- set acl6 <name> -stateful ( ENABLED | DISABLED )
- apply acls6
- show acl6 <name>
要使用 GUI 启用 ACL6 规则的状态参数,请执行以下操作:
- 导航到系统 > 网络 > ACL,然后在扩展 ACL6 选项卡上。
- 添加或修改现有 ACL6 规则时启用 状 态参数。
示例配置
> add acl6 ACL6-1 allow -srcipv6 1000::1 –stateful Yes
Done
> apply acls6
Done
> show acl6
1) Name: ACL6-1
Action: ALLOW Hits: 0
srcIPv6 = 1000::1
destIPv6
srcMac:
Protocol:
Vlan: Interface:
Active Status: ENABLED Applied Status: NOTAPPLIED
Priority: 10 NAT: NO
TTL:
Forward Session: NO
Stateful: YES
<!--NeedCopy-->
基于数据集的扩展 ACL
企业中需要许多 ACL。当需要频繁更改时,配置和管理许多 ACL 既困难又麻烦。
Citrix ADC 设备支持扩展 ACL 中的数据集。数据集是 Citrix ADC 设备的现有功能。数据集是一组索引模式的类型:数字(整数)、IPv4 地址或 IPv6 地址。
扩展 ACL 中的数据集支持对于创建需要通用 ACL 参数的多个 ACL 规则非常有用。
在创建 ACL 规则时,您可以指定包含这些常用参数的数据集,而不是指定公共参数。
对数据集所做的任何更改都将自动反映在使用此数据集的 ACL 规则中。包含数据集的 ACL 更易于配置和管理。它们也比传统 ACL 更小且易于阅读。
目前,Citrix ADC 设备仅支持扩展 ACL 的 IPv4 地址类型数据集。
开始之前的准备工作
在配置基于数据集的扩展 ACL 规则之前,请注意以下几点:
- 确保您熟悉 Citrix ADC 设备的数据集功能。有关数据集的详细信息,请参阅 模式集和数据集。
- Citrix ADC 设备仅支持 IPv4 扩展 ACL 的数据集。
- Citrix ADC 设备仅支持扩展 ACL 的 IPv4 类型数据集。
- Citrix ADC 设备支持基于数据集的扩展 ACL,适用于所有设置:独立设置、高可用性和群集。
-
对于具有一系列 IP 地址的扩展 ACL,Citrix ADC 设备会在内部为每个 IP 地址创建一个扩展 ACL。例如,对于具有 1000 个 IPv4 地址绑定到数据集的基于 IPv4 数据集的扩展 ACL,Citrix ADC 设备在内部创建了 1000 个扩展 ACL。
-
Citrix ADC 设备最多支持 10K 个扩展 ACL。对于具有绑定到数据集的 IP 地址范围的基于 IPv4 数据集的扩展 ACL,一旦扩展 ACL 的总数达到最大限制,Citrix ADC 设备将停止创建内部 ACL。
-
以下计数器作为扩展 ACL 统计信息的一部分:
- ACL 计数。用户配置的 ACL 规则总数。
- 有效的 ACL 计数。Citrix ADC 设备在内部配置的有效 ACL 规则总数。
有关详细信息,请参阅显示扩展 ACL 和扩展的 ACL6 统计信息。
-
- Citrix ADC 设备不支持
set
和unset
操作将数据集与扩展 ACL 的参数关联/解除关联。您只能在add
操作期间将 ACL 参数设置为数据集。
配置基于数据集的扩展 ACL
配置基于数据集的扩展 ACL 规则包括以下任务:
-
添加数据集。数据集是一组索引模式的类型:数字(整数)、IPv4 地址或 IPv6 地址。在此任务中,您将创建一种类型的数据集,例如 IPv4 类型的数据集。
-
将值绑定到数据集。为数据集指定值或值范围。指定的值的类型必须与数据集类型相同。例如,您可以为 IPv4 类型的数据集指定 IPv4 地址或 IPv4 地址范围。
-
向数据集添加扩展 ACL 并将 ACL 参数设置为数据集。添加扩展 ACL 并为数据集设置所需的 ACL 参数。此设置将导致参数设置为数据集中指定的值。
-
应用扩展 ACL。应用 ACL 激活任何新的或修改的扩展 ACL。
要使用 CLI 添加策略数据集,请执行以下操作:
在命令提示符下,键入:
- 添加策略数据集 <name><type>
- show policy dataset
要使用 CLI 将模式绑定到数据集,请执行以下操作:
在命令提示符下,键入:
- bind policy dataset <name> <value> [-endRange <string>]
- show policy dataset
要使用 CLI 添加扩展 ACL 并将 ACL 参数设置为数据集,请执行以下操作:
在命令提示符下,键入:
- add ns acl <aclname> <aclaction> [-srcIP [<operator>] <srcIPVal>] [-srcPort [<operator>] <srcPortVal>] [-destIP [<operator>] <destIPVal>] [-destPort [<operator>] <destPortVal>] …
- 显示 ACL
要使用 CLI 应用扩展 ACL,请执行以下操作:
在命令提示符下,键入:
- apply acls
示例配置
在以下基于数据集的扩展 ACL 的示例配置中,创建了 IPv4 数据集 DATASET-ACL-1。两个 IPv4 地址:192.0.2.30 和 192.0.2.60,以及两个 IPv4 地址范围:(198.51.100.15-45) 和 (203.0.113.60-90) 绑定到 DATASET-ACL-1。然后将 DATASET-ACL-1 指定给扩展 ACL ACL-1 的 srcIP 和 destIP 参数。
add policy dataset DATASET-ACL-1 IPV4
bind dataset DATASET-ACL-1 192.0.2.30
bind dataset DATASET-ACL-1 192.0.2.60
bind dataset DATASET-ACL-1 198.51.100.15 -endrange 198.51.100.45
bind dataset DATASET-ACL-1 203.0.113.60 -endrange 203.0.113.90
add ns acl ACL-1 ALLOW -srcIP DATASET-ACL-1 -destIP DATASET-ACL-1
apply acls
<!--NeedCopy-->