目录

简介

先决条件

要求

使用的组件

背景信息

使用ITD的流量

配置

步骤 1：配置ITD设备组

探测配置

节点级备用

步骤 2：配置ITD服务

配置ITD服务

定义设备组

配置入口接口

配置ITD虚拟IP地址

定义ITD负载均衡方法

步骤 3：定义故障切换行为

步骤 4：将ITD VIP配置为节点服务器上的环回接口

其他配置选项

为节点分配权重

配置失败

验证

验证ITD服务

检验动态创建的访问列表和路由映射

检验入口接口配置

检验探测配置

故障排除

相关信息

简介

本文档介绍对Nexus 7000上的智能流量导向器(ITD)进行故障排除和验证的基本步骤。本文档使用服务器负载平衡部署来说明与ITD相关的概念。

有关ITD的详细信息，请参阅以下资源：

- 思科智能流量导向器概览

- Cisco Nexus 7000系列NX-OS智能流量导向器命令参考

先决条件

要求

思科建议您了解ITD。

使用的组件

本文档中的信息基于以下软件和硬件版本：

- Cisco Nexus 7000系列交换机

- 思科NX-OS版本6.2(10)

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始（默认）配置。如果您使用的是真实网络，请确保您已经了解所有命令的潜在影响。

背景信息

ITD用于在配置为ITD节点的多台设备之间对传入特定第3层接口的流量进行负载均衡。

- ITD在NX-OS 6.2(8)版及更高版本的Nexus 7000上受支持，在6.2(10)版中具有重要的新功能。

- ITD可独立于硬件组件（线卡类型、机箱类型等）实施。

- ITD不向管理引擎模块CPU添加任何负载。

使用ITD的流量

本文档中的信息基于此拓扑。在此场景中，预期效果是，从VLAN 10中的主机发往VLAN 40中的Web服务器的流量在服务器100和服务器101之间进行负载均衡。

- ITD使用基于策略的路由，以在Nexus 7000上的硬件中实施负载均衡。配置ITD后，会动态创建访问列表和路由映射，以便根据ITD中定义的负载均衡策略转发流量。

- 这些访问列表会创建并应用于ITD配置中配置的入口接口。在这种情况下，根据访问列表掩码定义的最后一个二进制八位数中的有效位，VLAN 20上传入的流量会命中“bucket_1”或“bucket_2”：
N7k-2(config)# show ip access-lists

IP access list TEST_itd_vip_1_bucket_1

10 permit ip 1.1.1.0 255.255.255.127 192.168.30.1/32

IP access list TEST_itd_vip_1_bucket_2

10 permit ip 1.1.1.128 255.255.255.127 192.168.30.1/32

- 然后，路由映射根据传入流量匹配的子句转发流量。此示例显示，命中"bucket_1"的流量被转发到192.168.40.100节点，命中"bucket_2"的流量被转发到192.168.40.101节点。
N7k-1(config)# show route-map TEST_itd_pool

route-map TEST_itd_pool, permit, sequence 0

Description: auto generated route-map for ITD service TEST

Match clauses:

ip address (access-lists): TEST_itd_vip_1_bucket_1

Set clauses:

ip next-hop verify-availability 192.168.40.100 track 2 [ UP ]

route-map TEST_itd_pool, permit, sequence 1

Description: auto generated route-map for ITD service TEST

Match clauses:

ip address (access-lists): TEST_itd_vip_1_bucket_2

Set clauses:

ip next-hop verify-availability 192.168.40.101 track 2 [ UP ]

- ITD不转换IP地址。从Nexus 7000到节点的流量具有192.168.30.1目的地址并保留原始源IP地址。

- 返回流量将单播返回到源地址为ITD VIP 192.168.30.1的原始发送方。

提示：每个入口接口的每个地址系列仅支持一个基于策略的路由(PBR)实例。如果将接口定义为ITD入口接口，则无法在此接口上配置其他PBR实例，因为ITD使用PBR来实施负载均衡算法。

配置

必须在配置ITD的虚拟设备环境(VDC)中启用以下功能：

N7k-1(config-itd)# show run | i feature

feature pbr

feature sla sender

feature sla responder

feature itd

步骤 1：配置ITD设备组

ITD设备组由流量在其间进行负载均衡的节点组成，例如Web服务器、防火墙等。设备组的配置如下：

N7k-1(config)# itd device-group TAC-device-group

N7k-1(config-device-group)# node ip 192.168.40.100

N7k-1(config-device-group)# node ip 192.168.40.101

N7k-1(config-device-group)# probe icmp

探测配置

探测配置允许您定义以下探测类型：

icmp

发送互联网控制消息协议(ICMP)回应请求并侦听响应。如果服务器返回响应，ITD会将服务器标记为已通过。

dns

向域名服务器(DNS)发送请求，该服务器将已配置的域传递到该服务器。如果服务器响应该域的已配置IP地址，ITD会将该地址标记为up。

udp

仅当服务器返回ICMP端口不可达消息时，才会向服务器发送UDP数据包并将服务器标记为失败。

tcp

启动TCP三次握手，并期望服务器发送响应。如果握手成功，ITD会发送FIN以结束会话。如果响应无效或没有响应，ITD会将服务器标记为失败。

通常，DNS、UDP和TCP探测功能用于评估节点服务器上运行的特定服务的可用性。

探测配置还允许您定义以下参数：

- 频率 — ITD每x秒ping节点

- timeout - ITD期望在y秒内从节点收到响应

- retry-down-count — 在节点标记为“探测失败”并执行故障操作之前探测节点的次数

- retry-up-count — 在节点标记为“OK”并重新添加到池之前探测节点的次数

例如，请考虑以下配置(这是配置探测icmp时的默认配置):

1. 每10秒对节点执行ping操作。

2. 等待5秒，使节点回复。

3. 节点3次无法回复后，将节点标记为“探测失败”。

4. 节点一行回复3次后，将节点标记为“OK”。

在此配置下，ITD会对至少35秒（3 x频率+超时）后无法到达的节点做出响应。

节点级备用

节点可以在节点级别或设备组级别配置为备用。节点级备用仅在其关联的活动节点发生故障时接收流量。如果任何活动节点发生故障，设备组级备用会接收流量。

设备级备用配置为：

7k-1(config-device-group)# node ip 192.168.40.100 standby 192.168.40.103

设备组备用配置为：

7k-1(config-device-group)# node ip 192.168.40.106 mode hot-standby

步骤 2：配置ITD服务

在此步骤中，定义ITD服务，即要进行负载均衡的流量及其方式。

配置ITD服务

N7k-1(config)# itd TAC-ITD-service

定义设备组

参考之前配置的设备组：

N7k-1(config-itd)# device-group TAC-device-group

配置入口接口

此接口上传入的流量由ITD进行负载均衡。入口接口必须是第3层接口(物理接口、端口通道或交换虚拟接口(SVI))。

N7k-1(config-itd)# ingress interface vlan 20

每个第3层接口只能分配为ITD的一个实例的入口接口。

警告：ITD入口接口必须是第3层接口。

配置ITD虚拟IP地址

ITD虚拟IP地址(VIP)必须与主机和节点位于不同的子网中：

N7k-1(config-itd)# virtual ip 192.168.30.1 255.255.255.255 advertise enable

从Nexus 7000的角度看，ITD VIP本质上是虚拟接口 — 例如，交换机不响应发往VIP的ping请求。它用于将流量与自动创建并应用到ITD入口接口的路由映射进行匹配。

提示：在为终端节点配置VIP地址之前，您将无法成功ping通ITD VIP。

定义ITD负载均衡方法

load-balance method src ip buckets 2

负载均衡方法允许您定义负载均衡散列机制。这些选项是可用的：

src ip

源 IP

src ip-l4port

源IP和L4端口

dst ip

目的 IP

dst ip-l4port

目的IP和L4端口

提示：ITD服务需要处于关闭状态，以修改ITD服务或设备组配置。

步骤 3：定义故障切换行为

您必须配置故障切换行为，否则ITD不会对节点故障做出反应：

N7k-1(config-itd)# failaction node reassign

要显示ITD相关配置，请输入show run services命令：

N7k-2# show run services

!Command: show running-config services

!Time: Wed Apr 22 00:15:11 2015

version 6.2(10)

feature itd

itd device-group TAC

node ip 192.168.40.100

node ip 192.168.40.101

probe icmp frequency 10 timeout 5 retry-down-count 1 retry-up-count 1

itd TEST

device-group TAC

virtual ip 192.168.30.1 255.255.255.255 advertise enable

ingress interface Vlan20

failaction node reassign

load-balance method src ip buckets 2

no shut

步骤 4：将ITD VIP配置为节点服务器上的环回接口

为使服务器提供发往ITD VIP的流量，必须将其配置为服务器环回接口上的IP别名。服务器接受对VIP目标地址的请求，并从ITD VIP地址获取响应。

在Linux中配置虚拟网络接口

如何在Windows中安装Microsoft环回适配器

注意：只有在直接服务器返回(DSR)时，才需要在服务器上配置IDT VIP。 对于设备负载均衡(如思科自适应安全设备(ASA)负载均衡)，不需要VIP配置。

其他配置选项

为节点分配权重

负载均衡方法还允许您定义将流量拆分到的桶数。桶配置是可选的。默认情况下，桶数等于已配置节点数。如果要配置桶数，该值必须是2（2、4、8、16、32等）的幂。 此配置如下所示：

N7k-2(config-itd)# load-balance method src ip buckets 16

默认情况下，将桶以轮询模式分配给活动节点。但是，您可以对具有更多桶的某些节点进行加权，这实际上会对流量进行加权，以支持一个或多个设备。在设备组配置下分配权重。在此配置中，服务器101接收的流量是服务器100的两倍。

N7k-1(config)# itd device-group TAC-device-group

N7k-1(config-device-group)# node ip 192.168.40.100 weight 33

N7k-1(config-device-group)# node ip 192.168.40.101 weight 66

N7k-1(config-device-group)# probe icmp

您可以使用show itd命令的输出来验证桶分配：

N7k-2(config-itd)# show itd

Name           Probe LB Scheme  Status   Buckets

-------------- ----- ---------- -------- -------

TEST           TCP   src-ip     ACTIVE   16

Device Group                                         VRF-Name

-------------------------------------------------- -------------

TAC

Pool                           Interface    Status Track_id

------------------------------ ------------ ------ ---------

TEST_itd_pool                  Vlan20       UP       3

Virtual IP                              Netmask/Prefix Protocol     Port

------------------------------------------------------ ------------ ----------

192.168.20.1 / 255.255.255.255                         IP           0

Node  IP                  Config-State Weight Status     Track_id  Sla_id

------------------------- ------------ ------ ---------- --------- ---------

1     192.168.40.100      Active       33     OK           1         10001

Bucket List

-----------------------------------------------------------------------

TEST_itd_vip_1_bucket_1

TEST_itd_vip_1_bucket_3

TEST_itd_vip_1_bucket_5

TEST_itd_vip_1_bucket_7

TEST_itd_vip_1_bucket_9

TEST_itd_vip_1_bucket_16

Node  IP                  Config-State Weight Status     Track_id  Sla_id

------------------------- ------------ ------ ---------- --------- ---------

2     192.168.40.101      Active       66     OK           2         10002

Bucket List

-----------------------------------------------------------------------

TEST_itd_vip_1_bucket_2

TEST_itd_vip_1_bucket_4

TEST_itd_vip_1_bucket_6

TEST_itd_vip_1_bucket_8

TEST_itd_vip_1_bucket_10

TEST_itd_vip_1_bucket_11

TEST_itd_vip_1_bucket_12

TEST_itd_vip_1_bucket_13

TEST_itd_vip_1_bucket_14

TEST_itd_vip_1_bucket_15

配置失败

当节点发生故障时，探测功能会检测到该节点并将其置于“探测失败”状态。默认情况下，ITD继续将流量转发到故障节点。要使ITD从故障节点转移流量，必须配置以下项：

itd TEST

failaction node reassign

当节点变得不可达时会发生什么情况：

- 如果配置了故障节点重新分配 — ITD会将不可达节点置于探测失败模式，并将流量路由到设备组中的其他节点。

- 如果未配置故障节点重新分配：
情形 1：探测配置/备用节点配置：流量定向到第一个可用备用节点。

方案 2：已配置探测，未配置备用节点：未重新分配流量，将被路由。

情形 3：未配置探测：ITD无法检测故障，流量继续转发到不可用节点。

- 如果所有节点都无法访问，则会路由流量。

验证

本节介绍如何验证基本ITD配置和操作。

验证ITD服务

要查看ITD的状态，请输入show itd 命令。

- 验证服务是否处于“活动”状态。

- 验证设备池是否处于UP状态。

- 验证节点是否处于“OK”状态。

N7k-2(config-itd)# show itd

Name           Probe LB Scheme  Status   Buckets

-------------- ----- ---------- -------- -------

TEST           TCP   src-ip     ACTIVE   16

Device Group                                         VRF-Name

-------------------------------------------------- -------------

TAC

Pool                           Interface    Status Track_id

------------------------------ ------------ ------ ---------

TEST_itd_pool                  Vlan20       UP       3

Virtual IP                              Netmask/Prefix Protocol     Port

------------------------------------------------------ ------------ ----------

192.168.20.1 / 255.255.255.255                         IP           0

Node  IP                  Config-State Weight Status     Track_id  Sla_id

------------------------- ------------ ------ ---------- --------- ---------

1     192.168.40.100      Active       33     OK           1         10001

Bucket List

-----------------------------------------------------------------------

TEST_itd_vip_1_bucket_1

TEST_itd_vip_1_bucket_3

TEST_itd_vip_1_bucket_5

TEST_itd_vip_1_bucket_7

TEST_itd_vip_1_bucket_9

TEST_itd_vip_1_bucket_16

Node  IP                  Config-State Weight Status     Track_id  Sla_id

------------------------- ------------ ------ ---------- --------- ---------

2     192.168.40.101      Active       66     OK           2         10002

Bucket List

-----------------------------------------------------------------------

TEST_itd_vip_1_bucket_2

TEST_itd_vip_1_bucket_4

TEST_itd_vip_1_bucket_6

TEST_itd_vip_1_bucket_8

TEST_itd_vip_1_bucket_10

TEST_itd_vip_1_bucket_11

TEST_itd_vip_1_bucket_12

TEST_itd_vip_1_bucket_13

TEST_itd_vip_1_bucket_14

TEST_itd_vip_1_bucket_15

检验动态创建的访问列表和路由映射

当您配置ITD时，会动态创建此配置：

- 每个配置的存储桶将有一个访问列表和路由映射条目。

- 创建路由映射和访问列表时，ITD服务名前缀（例如<service name>_itd_vip_1_bucket_1）。

N7k-2(config)# show ip access-lists

IP access list TEST_itd_vip_1_bucket_1

10 permit ip 1.1.1.0 255.255.255.127 192.168.20.1/32

IP access list TEST_itd_vip_1_bucket_2

10 permit ip 1.1.1.128 255.255.255.127 192.168.20.1/32

N7k-2(config)# sho route-map TEST_itd_pool

route-map TEST_itd_pool, permit, sequence 0

Description: auto generated route-map for ITD service TEST

Match clauses:

ip address (access-lists): TEST_itd_vip_1_bucket_1

Set clauses:

ip next-hop verify-availability 192.168.30.2 track 2 [ UP ]

route-map TEST_itd_pool, permit, sequence 1

Description: auto generated route-map for ITD service TEST

Match clauses:

ip address (access-lists): TEST_itd_vip_1_bucket_2

Set clauses:

ip next-hop verify-availability 192.168.30.2 track 2 [ UP ]

检验入口接口配置

验证路由映射已应用到ITD入口接口：

N7k-2(config-itd)# show run int vlan 20

!Command: show running-config interface Vlan20

!Time: Thu Apr 23 00:42:41 2015

version 6.2(10)

interface Vlan20no shutdown

ip address 192.168.20.1/24

ip policy route-map TEST_itd_pool

检验探测配置

验证此命令的输出中已编程探测频率：

N7k-2# show run | i probe

probe icmp frequency 5

N7k-2# show run sla sender

!Command: show running-config sla sender

!Time: Tue Apr 28 18:04:02 2015

version 6.2(10)

feature sla sender

ip sla 10001

icmp-echo 192.168.40.100

frequency 5

ip sla schedule 10001 life forever start-time now

ip sla 10002

icmp-echo 192.168.40.101

frequency 5

ip sla schedule 10002 life forever start-time now

配置ITD时，会动态创建Internet协议服务级别协议(IPSLA)对象。这些对象在ITD路由映射中引用。

故障排除

目前没有针对此配置的故障排除信息。

相关信息

- Cisco Nexus 7000系列NX-OS智能流量导向器命令参考

- Cisco Nexus 7000系列NX-OS智能流量导向器配置指南，版本6.x

- 思科智能流量导向器概览

- 技术支持和文档 - Cisco Systems