扩展 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 或 AC6L。启用日志记录后,还必须重新应用它们。应用扩展 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 acl 命令、扩展 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 配置扩展的 ACL6sACL6s,请执行以下操作:

导航到系统 > 网络 > ACL,然后在扩展 ACL6 选项卡上添加新的扩展 ACL6 或编辑现有的扩展 ACL6。若要启用或禁用现有扩展 ACL6,请选择它,然后从操作列表中选择启用禁用

要使用 GUI 应用扩展 ACL,请执行以下操作:

导航到“系统”>“网络”>“ACL”,然后在“扩展 ACL”选项卡上,在“ 作”列表中单击“应用”。

要通过使用 GUI 应用扩展的 ACL6sACL6s:

导航到系统 > 网络 > ACL,然后在扩展 ACL6 选项卡上,在操作列表中单击应用

要使用 GUI 重新编号扩展 ACL 的优先级:

导航到“系统”>“网络”>“ACL”,然后在“扩展 ACL”选项卡上,在“ 作”列表中单击“重 新编号优先级”。

要使用 GUI 重新编号扩展的 ACL6sACL6s 的优先级:

导航到系统 > 网络 > 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 (ENABLED | DISABLED)] [-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 日志记录:

  1. 导航到“系统”>“网络”>“ACL”,然后在“扩展 ACL”选项卡上打开扩展 ACL。
  2. 设置以下参数:
    • 日志状态— 启用或禁用与扩展 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 日志记录,请执行以下操作:

  1. 导航到系统 > 网络 > ACL,然后单击扩展 ACL6 选项卡。
  2. 在添加或修改现有扩展 ACL6 规则时设置以下参数。
    • 日志状态— 启用或禁用与扩展 ACL6 规则相关的事件的日志记录。日志消息存储在配置的系统日志或审核日志服务器中。
    • 日志速率限制— 每秒要生成的最大日志消息数。如果设置此参数,则必须启用日 志状态 参数。

示例:

> set acl6 ACL6-1 -logstate ENABLED -ratelimit 120
Done

> apply acls6
Done

显示扩展 ACL 和扩展 ACL6 统计信息

可以显示扩展 ACL 和 ACL6 的统计信息。

下表列出了与扩展 ACL 和 AC6L 相关联的统计信息及其描述。

统计数据 说明
允许 ACL 点击 与处理模式设置为“允许”的 ACL 匹配的数据包。Citrix ADC 处理这些数据包。
NAT ACL 命中 匹配 NAT ACL 的数据包,导致 NAT 会话。
拒绝 ACL 命中 丢弃的数据包,因为它们与处理模式设置为“拒绝”的 ACL 匹配。
桥接 ACL 命中 匹配网桥 ACL 的数据包,该数据包在透明模式下会绕过服务处理。
ACL 命中 匹配 ACL 的数据包。
ACL 未命令 不匹配任何 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 规则的有状态参数:

  1. 导航到“系统”>“网络”>“ACL”,并在“扩展 ACL”选项卡上。
  2. 在添加或修改现有 ACL 规则时启用 态参数。
    > add acl ACL-1 allow -srciP 1.1.1.1 -stateful Yes

    Done

    > apply acls6

    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 规则的有状态参数:

  1. 导航到系统 > 网络 > ACL,并在扩展 ACL6 选项卡上。
  2. 在添加或修改现有 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