扩展 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 或 ACL6。启用日志记录后,还必须重新应用它们。应用扩展 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>]
示例:
> add ns acl restrict DENY -srcport 45-1024 -destIP 192.168.1.1 -protocol TCP
Done
要使用 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>]
示例:
> add ns acl6 rule6 DENY -srcport 45-1024 -destIPv6 2001::45 -protocol TCP
Done
要使用 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 匹配的数据包的详细信息。
注意: 您无法为扩展 ACL6 启用日志记录。
除了 ACL 名称之外,记录的详细信息还包括特定于数据包的信息,例如源和目标 IP 地址。信息存储在 syslog 文件或 nslog 文件中,具体取决于启用的全局日志记录(syslog 或 nslog)的类型。
必须同时在全局级别和 ACL 级别启用日志记录。全局设置优先。有关全局启用日志记录的更多信息,请参阅“.“
为了优化日志记录,当来自同一流的多个数据包匹配一个 ACL 时,只记录第一个数据包的详细信息,并且计数器会为属于同一流的每个数据包递增。流定义为具有相同值的源 IP 地址、目标 IP 地址、源端口、目标端口和协议参数的一组数据包。为避免日志消息泛滥,Citrix ADC 执行内部速率限制,以便不会重复记录属于同一流的数据包。在任何给定时间可以记录的不同流量的总数限制为 10,000。
注意: 启用日志记录后,必须应用 ACL。
CLI 过程
使用 CLI 配置扩展 ACL 日志记录:
在命令提示符下,键入以下命令以配置日志记录并验证配置:
- set ns acl <aclName> [-LogState (已启用 | 禁用)] [-rateLimit <positive_integer>]
- show ns acl [<aclName>]
示例:
> set ns acl restrict -logstate ENABLED -ratelimit 120
Warning: ACL modified, apply ACLs to activate change
GUI 程序
使用 GUI 配置扩展 ACL 日志记录:
- 导航到“系统”>“网络”>“ACL”,然后在扩展 ACL选项卡上打开扩展 ACL。
- 设置以下参数:
- 日志状态— 启用或禁用与扩展 ACL 规则相关的事件的日志记录。日志消息存储在配置的系统日志或审核日志服务器中。
- 日志速率限制— 每秒要生成的最大日志消息数。如果设置此参数,则必须启用“日志状态”参数。
扩展 ACL6 日志记录
您可以将 Citrix ADC 设备配置为记录与扩展 ACL6 规则匹配的数据包的详细信息。除了 ACL6 名称之外,记录的详细信息还包括特定于数据包的信息,例如源和目标 IP 地址。信息存储在系统日志或 nslog 文件中,具体取决于您在 Citrix ADC 设备中配置的日志记录类型(系统日志或 nslog)。
为了优化日志记录,当同一流中的多个数据包与 ACL6 匹配时,仅记录第一个数据包的详细信息。对于属于同一流的每个其他数据包,计数器都会递增。流定义为具有以下参数相同值的一组数据包:
- 源 IP
- 目标 IP
- 源端口
- 目的端口
- 协议 (TCP 或 UDP)
如果传入的数据包不是来自同一流,则会创建一个新的流。在任何给定时间可以记录的不同流量的总数限制为 10,000。
CLI 过程
使用 CLI 为扩展 ACL6 规则配置日志记录:
-
要在添加扩展 ACL6 规则时配置日志记录,请在命令提示符下键入:
- add acl6 <acl6Name> <acl6action> [-logState (ENABLED | DISABLED)] [-rateLimit <positive_integer>]
- show acl6 [<acl6Name>]
- apply acls6
- 要为现有扩展 ACL6 规则配置日志记录,请在命令提示符下键入:
- set acl6 <acl6Name> [-logState (ENABLED | DISABLED)] [-rateLimit <positive_integer>]
- show acl6 [<acl6Name>]
- apply acls6
GUI 程序
要使用 GUI 配置扩展 ACL6 日志记录,请执行以下操作:
- 导航到系统 > 网络 > ACL,然后单击扩展 ACL6 选项卡。
- 在添加或修改现有扩展 ACL6 规则时设置以下参数。
- 日志状态— 启用或禁用与扩展 ACL6 规则相关的事件的日志记录。日志消息存储在配置的系统日志或审核日志服务器中。
- 日志速率限制— 每秒要生成的最大日志消息数。如果设置此参数,则必须启用日志状态参数。
示例:
> set acl6 ACL6-1 -logstate ENABLED -ratelimit 120
Done
> apply acls6
Done
显示扩展 ACL 和扩展 ACL6 统计信息
可以显示扩展 ACL 和 ACL6 的统计信息。
下表列出了与扩展 ACL 和 ACL 相关联的统计信息及其描述。
统计数据 | 说明 |
---|---|
允许 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 的相关响应。
- 设备必须从 Internet 中删除与任何客户端连接无关的数据包。
准备工作
在配置有状态 ACL 规则之前,请注意以下几点:
- Citrix ADC 设备支持有状态 ACL 规则以及有状态 ACL6 规则。
- 在高可用性设置中,有状态 ACL 规则的会话不会同步到辅助节点。
- 如果 ACL 规则绑定到任何 Citrix ADC NAT 配置,则无法将该规则配置为有状态。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>
使用 CLI 启用 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
配置有状态的 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>
使用 CLI 启用 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
基于数据集的扩展 ACL
企业中需要大量 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。例如,对于绑定到数据集的基于 IPv4 数据集且 1000 个 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 添加策略数据集,请执行以下操作:
在命令提示窗口中,键入:
- add policy dataset <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>] …
- show acls
要使用 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