ADC

IPv4 流量的基于策略的路由 (PBR)

配置 PBR 涉及以下任务:

  • 创建 PBR。
  • 应用 PBR。
  • (可选)禁用或启用 PBR。
  • (可选)重新编号 PBR 的优先级。

创建或修改 PBR

您不能使用相同的参数创建两个 PBR。如果您尝试创建副本,则会出现一条错误消息。

您可以配置 PBR 的优先级。优先级(整数值)定义了 NetScaler 设备评估 PBR 的顺序。当您在不指定优先级的情况下创建 PBR 时,NetScaler 会自动分配一个 10 的倍数的优先级。

如果数据包与 PBR 定义的条件相匹配,则 NetScaler 会执行操作。如果数据包与 PBR 定义的条件不匹配,NetScaler 会将该数据包与优先级第二高的 PBR 进行比较。

您可以将 PBR 配置为将选定的数据包发送到已绑定多个下一跳的链路负载平衡虚拟服务器,而不是将所选数据包发送到下一跳路由器。如果下一跳链路出现故障,此配置可以提供备份。

请看下面的例子。在 NetScaler 上配置了两个 PBR,即 p1 和 p2,并自动分配优先级 20 和 30。您需要添加第三个 PBR p3,以便在第一个 PBR p1 之后立即进行评估。新的 PBR p3 的优先级必须介于 20 到 30 之间。在这种情况下,您可以将优先级指定为 25。

CLI 过程

要使用 CLI 创建 PBR,请执行以下操作:

在命令提示符下,键入:

  • add ns pbr <name> <action> [-srcIP [\<operator>] <srcIPVal>] [-srcPort [\<operator>] <srcPortVal>] [-destIP [\<operator>] <destIPVal>] [-destPort [\<operator>] <destPortVal>] [-nextHop \<nextHopVal>] [-srcMac \<mac_addr>] [-protocol \<protocol> |-protocolNumber \<positive_integer>] [-vlan \<positive_integer>] [-interface \<interface_name>] [-priority \<positive_integer>] [-msr ( ENABLED | DISABLED ) [-monitor \<string>]] [-state ( ENABLED | DISABLED )]
  • show ns pbr

示例:

> add ns pbr pbr1  allow -srcip 10.102.37.252 -destip 10.10.10.2 -nexthop 10.102.29.77
 Done
<!--NeedCopy-->

要使用 CLI 修改 PBR 的优先级,请执行以下操作:

在命令提示符下,键入以下命令以修改优先级并验证配置:

  • set ns pbr <name> [-action ( ALLOW | DENY )] [-srcIP [\<operator>] <srcIPVal>] [-srcPort [\<operator>] <srcPortVal>] [-destIP [\<operator>] <destIPVal>] [-destPort [\<operator>] <destPortVal>] [-nextHop \<nextHopVal>] [-srcMac \<mac_addr>] [-protocol \<protocol> | -protocolNumber \<positive_integer>] [-vlan \<positive_integer>] [-interface \<interface_name>] [-priority \<positive_integer>] [-msr ( ENABLED | DISABLED ) [-monitor \<string>]] [-state ( ENABLED | DISABLED )]
  • show ns pbr [\<name>]

示例:

> set ns pbr pbr1 -priority 23
 Done
<!--NeedCopy-->

要使用 CLI 删除一个或所有 PBR,请执行以下操作:

在命令提示符下,键入以下命令之一:

  • rm ns pbr <name>
  • 清除 ns pbrs

示例:

> rm ns pbr pbr1
 Done

> clear ns PBRs
 Done
<!--NeedCopy-->

GUI 程序

要使用 GUI 创建 PBR,请执行以下操作:

导航到“系统”>“网络”>“PBR”,在 PBR 选项卡上,添加新的 PBR 或编辑现有 PBR。

要使用 GUI 删除一个或所有 PBR,请执行以下操作:

导航到系统 > 网络 > PBR,在 PBR 选项卡上,删除 PBR。

应用 PBR

必须应用 PBR 才能将其激活。以下过程会重新应用所有尚未禁用的 PBR。PBR 构成内存树(查找表)。例如,如果您创建 10 个 PBR(p1-p10),然后创建另一个 PBR (p11) 并将其应用,则所有 PBR(p1-p11)都将重新应用并创建新的查找表。如果会话有与之相关的 DENY PBR,则会话将被销毁。

每次修改任何 PBR 后,都必须应用此程序。例如,禁用 PBR 后必须遵循此步骤。

注意: 在 NetScaler 设备上创建的 PBR 只有在应用后才能运行。

要使用 CLI 应用 PBR,请执行以下操作:

在命令提示符下,键入:

应用 ns PBR

要使用 GUI 应用 PBR,请执行以下操作:

  1. 导航到“系统”>“网络”>“PBR”。
  2. 在 PBR 选项卡上,选择 PBR,在“操作”列表中选择“应用”。

启用或禁用 PBR

默认情况下,PBR 处于启用状态。这意味着在应用 PBR 时,NetScaler 设备会自动将传入的数据包与配置的 PBR 进行比较。如果查找表中不需要 PBR,但需要将其保留在配置中,则在应用 PBR 之前必须将其禁用。应用 PBR 后,NetScaler 不会将传入的数据包与禁用的 PBR 进行比较。

要使用 CLI 启用或禁用 PBR,请执行以下操作:

在命令提示符下,键入以下命令之一:

  • 启用 ns pbr <name>
  • 禁用 ns pbr <name>

示例:

> enable ns PBR pbr1
 Done
> show ns PBR pbr1
1)      Name: pbr1
        Action: ALLOW                          Hits: 0
        srcIP = 10.102.37.252
        destIP = 10.10.10.2
        srcMac:                                Protocol:
        Vlan:                                  Interface:
        Active Status: ENABLED                 Applied Status: APPLIED
        Priority: 10
        NextHop: 10.102.29.77

 Done

> disable ns PBR pbr1
Warning: PBR modified, use 'apply pbrs' to commit this operation

> apply pbrs
 Done

> show ns PBR pbr1
1)      Name: pbr1
        Action: ALLOW                          Hits: 0
        srcIP = 10.102.37.252
        destIP = 10.10.10.2
        srcMac:                                Protocol:
        Vlan:                                  Interface:
        Active Status: DISABLED                Applied Status: NOTAPPLIED
        Priority: 10
        NextHop: 10.102.29.77
Done
<!--NeedCopy-->

要使用 GUI 启用或禁用 PBR,请执行以下操作:

  1. 导航到“系统”>“网络”>“PBR”。
  2. 在 PBR 选项卡上,选择 PBR,在操作列表中选择启用或禁用。

对 PBR 进行重新编号

您可以自动对 PBR 进行重新编号,将其优先级设置为 10 的倍数。

要使用 CLI 对 PBR 进行重新编号,请执行以下操作:

在命令提示符下,键入:

  • 对 ns pbrs 进行重新编号

要使用 GUI 对 PBR 进行重新编号,请执行以下操作:

导航到“系统”>“网络”>“PBR”,在 PBR 选项卡的“操作”列表中,选择“重新编号优先级”。

用例-具有多跳的 PBR

假设在 NetScaler 设备 NS1 上配置了两个 PBR,即 PBR1 和 PBR2。PBR1 将源 IP 地址为 10.102.29.30 的所有传出数据包路由到下一跳路由器 R1。PBR2 将源 IP 地址为 10.102.29.90 的所有传出数据包路由到下一跳路由器 R2。R3 是连接到 NS1 的另一台下一跳路由器。

如果路由器 R1 出现故障,则与 PBR1 匹配的所有传出数据包都将被丢弃。为避免这种情况,可以在创建或修改 PBR 时在 next hop 字段中指定链路负载平衡 (LLB) 虚拟服务器。多个下一跳作为服务绑定到 LLB 虚拟服务器(例如 R1、R2 和 R3)。现在,如果 R1 出现故障,则根据 LLB 虚拟服务器上配置的 LB 方法确定,与 PBR1 匹配的所有数据包都将路由到 R2 或 R3。

在以下情况下,如果您尝试创建以 LLB 虚拟服务器作为下一跳的 PBR,则 NetScaler 设备会引发错误:

  • 使用相同的 LLB 虚拟服务器添加另一个 PBR。
  • 指定不存在的 LLB 虚拟服务器。
  • 指定绑定服务不是下一跳的 LLB 虚拟服务器。
  • 指定 LB 方法未设置为以下任一项的 LLB 虚拟服务器:
    • ROUNDROBIN
    • DESTINATIONIPHASH
    • SOURCEIPHASH
    • SRCIPDESTIPHASH
    • LEASTPACKETS
    • LEASTBANDWIDTH
    • LTRM
    • CALLIDHASH
    • CUSTOM LOAD
  • 指定 LB 持久性类型未设置为以下任一类型的 LLB 虚拟服务器:
    • DESTIP
    • 源码/IP
    • SRCDSTIP

下表列出了在 NetScaler 设备上配置的实体的名称和值:

实体类型 名称 IP 地址
链接负载平衡虚拟服务器 LLB1 不适用
服务(下一步) Router1 1.1.1.254
  Router2 2.2.2.254
  Router3 3.3.3.254
PBR PBR1 不适用
  PBR2 不适用

表 1. 创建实体的示例值

要实现上述配置,您需要:

  1. 创建代表下一跳路由器 R1、R2 和 R3 的服务 Router1、R2 和 Ruter3。
  2. 创建链路负载平衡虚拟服务器 LLB1 并将服务 Router1、Router2 和 Router3 绑定到该服务器。
  3. 创建 PBR PBR1 和 PBR2,将下一跳字段分别设置为 LLB1 和 2.2.2.254(路由器 R2 的 IP 地址)。

要使用 CLI 创建服务,请执行以下操作:

在命令提示符下,键入:

  • add service <name> <IP> <serviceType> <port>
  • show service <name>

示例:

> add service Router1 1.1.1.254 ANY *
 Done
> add service Router2 2.2.2.254 ANY *
 Done
> add service Router3 3.3.3.254 ANY *
 Done
<!--NeedCopy-->

要使用 GUI 创建服务,请执行以下操作:

导航到 流量管理 > 负载平衡 > 服务,然后创建服务。

要使用 CLI 创建链路负载平衡虚拟服务器并绑定服务,请执行以下操作:

在命令提示符下,键入:

  • add lb vserver <name> <serviceType>
  • bind lb vserver < name> <serviceName>
  • show lb vserver < name>

示例:

> add lb vserver LLB1 ANY
 Done
> bind lb vserver LLB1 Router1 Router2 Router3
 Done
<!--NeedCopy-->

要使用 GUI 创建链路负载平衡虚拟服务器并绑定服务,请执行以下操作:

  1. 导航到流量管理 > 负载平衡 > 虚拟服务器,然后创建用于链路负载平衡的虚拟服务器。在“协议”字段中指定 ANY。 注意:确保未选中“可 直接寻址”。
  2. 在“服务”选项卡下的“活动”列中,选中要绑定到虚拟服务器的服务对应的复选框。

要使用 CLI 创建 PBR,请执行以下操作:

在命令提示符下,键入:

  • add ns pbr <name> <action> [-srcIP [\<operator>] <srcIPVal>] [-nextHop \<nextHopVal>]
  • show ns pbr

示例:

> add pbr PBR1 ALLOW -srcIP 10.102.29.30 -nextHop LLB1
 Done
> add pbr PBR2 ALLOW -srcIP 10.102.29.90 -nextHop 2.2.2.254
 Done
<!--NeedCopy-->

要使用 GUI 创建 PBR,请执行以下操作:

导航到系统 > 网络 > PBR,在 PBR 选项卡上,添加新的 PBR。

IPv4 流量的基于策略的路由 (PBR)