针对IPv4流量的策略路由
配置策略路由包括以下任务:
- 创建策略路由。
- 为PBRs申请。
- (可选)禁用/启用策略路由。
- (可选)重新设置策略路由的优先级。
创建/修改策略路由
不能创建两个参数相同的策略路由。如果试图创建副本,则会出现错误消息。
可以配置策略路由的优先级。优先级(一个整数值)定义了Citrix ADC设备计算pbr的顺序。当创建策略路由而不指定优先级时,Citrix ADC自动分配一个优先级,该优先级是10的倍数。
如果数据包匹配策略路由定义的条件,Citrix ADC将执行一个动作。如果报文不符合策略路由定义的条件,Citrix ADC将报文与下一个优先级最高的策略路由进行比较。
配置策略路由时,不需要将选中的报文发送到下一跳路由器,而是发送到已经绑定了多个下一跳的链路负载分担虚拟服务器。此配置可在下一跳链路故障时提供备份。
考虑下面的例子。在Citrix ADC上配置了两个pbr p1和p2,并自动分配优先级20和30。您需要添加第三个策略路由p3,在第一个策略路由p1之后立即进行评估。新策略路由p3的优先级必须在20 ~ 30之间。在本例中,可以将优先级指定为25。
CLI程序
使用CLI命令创建策略路由。
在命令提示符处,输入:
- add ns pbr
[-srcIP [ ] ] [-srcPort [ ] ] [-destIP [ ] < descipval >] [-destPort [ ] ] [-nextHop ] [-srcMac ] [-protocol |-protocolNumber ] [-vlan ] [-interface ] [-priority ] [-msr (ENABLED | DISABLED) [-monitor ]] [-state (ENABLED | DISABLED)] - Show ns策略路由
例子:
> add ns pbr pbr1 allow -srcip 10.102.37.252 -destip 10.10.10.2 -nexthop 10.102.29.77 Done
使用CLI命令修改策略路由的优先级。
在命令提示符下,输入以下命令来修改优先级并验证配置:
- set ns pbr
[-action (ALLOW | DENY)] [-srcIP [ ] ] [-srcPort [ ] ] [-destIP [ ] < descipval >] [-destPort [ ] ] [-nextHop ] [-srcMac ] [-protocol | -protocolNumber ] [-vlan ] [-interface ] [-priority ] [-msr (ENABLED | DISABLED) [-monitor ]] [-state (ENABLED | DISABLED)] - 显示ns策略路由[
]
例子:
> set ns pbr pbr1 -priority 23 Done
使用CLI命令移除单个或全部策略路由。
在命令提示符下,键入以下命令之一:
- Rm ns策略路由<名称>
- 清除ns PBRS
例子:
> rm ns pbr pbr1 Done > clear ns PBRs Done
GUI程序
使用实例创建策略路由。
进入“系统>网络>策略路由”,在“策略路由”页签中添加新的策略路由或编辑已有的策略路由。
使用GUI删除一个或所有的策略路由。
进入“系统>网络>策略路由”,在“策略路由”页签中删除策略路由。
应用策略路由
必须应用策略路由才能激活。以下过程将重新应用尚未禁用的所有pbr。pbr构成了一个内存树(查找表)。例如,如果您创建了10个PBR (p1 - p10),然后创建了另一个PBR (p11)并应用它,那么所有PBR (p1 - p11)都会被新应用,并创建一个新的查找表。如果一个会话与DENY策略路由相关,则该会话将被销毁。
每次修改策略路由后,都必须应用此过程。例如,禁用策略路由后,需要执行此步骤。
注意:在Citrix ADC设备上创建的pbr在应用它们之前是不能工作的。
使用CLI方式应用策略路由。
在命令提示符处,输入:
应用ns pbr
使用实例通过GUI应用策略路由。
- 进入“系统>网络>策略路由”。
- 2 .在“策略路由”页签中选择策略路由,在“动作”列表中选择“应用”。
启用/禁用策略路由
缺省情况下,策略路由功能处于启用状态。这意味着当应用pbr时,Citrix ADC设备会自动将传入的包与配置的pbr进行比较。如果查找表中不需要策略路由,但需要在配置中保留策略路由,则必须在应用策略路由之前禁用策略路由。在应用了pbr后,Citrix ADC不会将传入的数据包与禁用的pbr进行比较。
使用CLI命令启用/禁用策略路由。
在命令提示符下,键入以下命令之一:
- 使能ns策略路由
- 关闭ns策略路由
例子:
>使ns PBR pbr1做>显示ns PBR pbr1 1)名称:pbr1行动:允许点击:0 srcIP = 10.102.37.252 destIP = 10.10.10.2 srcMac:协议:Vlan:接口:活跃状态:启用应用现状:应用优先级:10 NextHop: 10.102.29.77做>禁用ns PBR pbr1警告:PBR修改,使用“应用为pbrs”来提交这个操作>应用为pbrs做>显示ns PBR pbr1 1)名称:pbr1行动:允许点击:0 srcIP = 10.102.37.252 destIP = 10.10.10.2 srcMac:协议:Vlan:接口:活跃的状态:DISABLED Applied Status: NOTAPPLIED Priority: 10 NextHop: 10.102.29.77 Done
启用/禁用策略路由。
- 进入“系统>网络>策略路由”。
- 2 .在“策略路由”页签中,选中策略路由,在“动作”列表中选择“启用”或“禁用”。
重新编号为PBRs
您可以自动对策略路由进行重新编号,将其优先级设置为10的倍数。
使用CLI命令重新编号策略路由。
在命令提示符处,输入:
- 重新编号ns PBRS
使用GUI重新编号pbr:
进入“系统>网络>策略路由”,在“策略路由”页签的“操作”列表中,选择“重编号优先级”。
用例—多跳策略路由
考虑这样一个场景,在Citrix ADC设备NS1上配置了两个pbr PBR1和PBR2。PBR1将源地址为10.102.29.30的所有出方向报文路由到下一跳路由器R1。PBR2将所有出方向的源地址为10.102.29.90的报文路由到下一跳路由器R2。R3是与NS1相连的下一跳路由器。
如果router R1发生故障,所有匹配PBR1的出方向报文都会被丢弃。为了避免这种情况,可以在创建或修改策略路由时在下一跳字段指定LLB (link load balancing)虚拟服务器。多个下一跳以服务的形式绑定到LLB虚拟服务器上(如R1、R2、R3)。现在,如果R1失败,所有匹配PBR1的报文都被路由到R2或R3,这取决于LLB虚拟服务器上配置的LB方法。
在以下情况下,如果您试图创建一个以LLB虚拟服务器作为下一跳的策略路由,Citrix ADC设备将抛出一个错误:
- 使用相同的LLB虚拟服务器添加策略路由。
- 指定不存在的LLB虚拟服务器。
- 指定一个LLB虚拟服务器,其绑定的服务不是下一跳。
- 指定一个LLB虚拟服务器,其LB方法不设置为以下任何一种:
- 设置轮流捡取
- DESTINATIONIPHASH
- SOURCEIPHASH
- SRCIPDESTIPHASH
- LEASTPACKETS
- LEASTBANDWIDTH
- LTRM
- CALLIDHASH
- 自定义加载
- 指定一个LLB虚拟服务器,其LB持久化类型不设置为以下任何一种:
- DESTIP
- SOURCEIP
- SRCDSTIP
下表列出了在Citrix ADC设备上配置的实体的名称和值:
实体类型 | 的名字 | IP地址 |
---|---|---|
链路负载均衡虚拟服务器 | LLB1 | NA |
服务(下一跳) | 位于 | 1.1.1.254 |
Router2 | 2.2.2.254 | |
Router3 | 3.3.3.254 | |
为PBRs | PBR1 | NA |
PBR2 | NA |
表1。创建实体的样例值
要实现上述配置,您需要:
- 创建业务Router1、Router2和Router3,分别代表下一跳路由器R1、R2和R3。
- 创建链路负载均衡虚拟服务器LLB1,并将业务Router1、Router2和Router3绑定在该虚拟服务器上。
- 创建策略路由设备PBR1和PBR2,下一跳字段分别为LLB1和2.2.2.254(路由器R2的IP地址)。
使用CLI命令创建服务。
在命令提示符处,输入:
- add service
- 显示服务
例子:
> 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
使用GUI创建一个服务:
在“流量管理>负载均衡>服务”中创建服务。
使用CLI命令,创建链路负载均衡虚拟服务器,并绑定服务。
在命令提示符处,输入:
- add lb vserver
- bind lb vserver < name>
.使用实例 - 显示lb vserver < name>
例子:
> add lb vserver LLB1 ANY Done > bind lb vserver LLB1 Router1 Router2 Router3 Done
使用实例创建链路负载均衡虚拟服务器,并绑定服务。
- 在“流量管理>负载均衡>虚拟服务器”中,创建用于链路负载均衡的虚拟服务器。指定任何在协议字段。注意:请确保直接寻址没有启用。
- 下服务选项卡,在活跃的列中,选中要绑定到虚拟服务器的服务的复选框。
使用CLI命令创建策略路由。
在命令提示符处,输入:
- add ns pbr
[-srcIP [ ] ] [-nextHop ] - Show ns策略路由
例子:
> 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
使用实例创建策略路由。
进入“系统>网络>策略路由”,在“策略路由”页签中添加新的策略路由。