このドキュメントでは、Nexus 7000 で Intelligent Traffic Director(ITD)をトラブルシューティングして確認する基本的な手順について説明します。 このドキュメントでは、ITD に関連する概念を説明するために、サーバのロードバランシングの導入を使用します。
ITD に関する詳細については、以下の参考資料を参照してください。
ITD について十分に理解しておくことをお勧めします。
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づくものです。
本書の情報は、特定のラボ環境にあるデバイスに基づいて作成されたものです。 このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。 稼働中のネットワークで作業を行う場合、コマンドの影響について十分に理解したうえで作業してください。
ITD は、ITD ノードとして設定されている多数のデバイスの間で、特定のレイヤ 3 インターフェイスで入力するトラフィックのロード バランスに使用されます。
このドキュメントの情報は、次のトポロジに基づくものです。 このシナリオで意図している望ましい影響は、VLAN 40 の Web サーバにアドレス指定されている VLAN 10 のホストからのトラフィックが、サーバ 100 とサーバ 101 の間でロード バランシングが行われている状態です。
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
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 を設定する仮想デバイス コンテキスト(VDC)で有効にする必要があります。
N7k-1(config-itd)# show run | i feature
feature pbr
feature sla sender
feature sla responder
feature 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 | Internet Control Message Protocol(ICMP)エコー要求を送信し、応答を待機します。 サーバが応答を返すと、ITD はそのサーバに [passed] のマークを付けます。 |
dns | ドメイン ネーム サーバ(DNS)に要求を送信し、設定済みのドメインをサーバに渡します。 サーバがそのドメインの設定済みの IP アドレスを使用して応答した場合、ITD はそのアドレスに [up] のマークを付けます。 |
udp | サーバに UDP パケットを送信し、サーバから ICMP Port Unreachable メッセージが返された場合にだけ、サーバに [failed] のマークを付けます。 |
tcp | TCP の 3 方向ハンドシェイクを開始して、サーバから応答が送信されるまで待機します。 ハンドシェイクが成功すると、ITD はセッションを終了するために FIN を送信します。 応答が無効な場合、または応答がない場合、ITD はそのサーバに [failed] のマークを付けます。 |
一般的に、DNS、UDP、および TCP プローブは、ノード サーバ上で実行される特定のサービスの可用性を評価するために使用されます。
プローブの設定では、次のパラメータも定義できます。
たとえば、次の設定を考えてみます(これは、probe icmp を設定するときのデフォルト設定です)。
このように設定すると、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
この手順では ITD サービス、つまりロード バランスを行うトラフィックとその方法が定義されます。
N7k-1(config)# itd TAC-ITD-service
以前設定したデバイス グループを参照します。
N7k-1(config-itd)# device-group TAC-device-group
このインターフェイスで入力するトラフィックは、ITD によってロード バランシングが行われます。 入力インターフェイスは、レイヤ 3 インターフェイス(物理インターフェイス、PortChannel、またはスイッチ仮想インターフェイス(SVI))にする必要があります。
N7k-1(config-itd)# ingress interface vlan 20
レイヤ 3 インターフェイスは、ITD の 1 つのインスタンスの入力インターフェイスとしてのみ割り当てることができます。
ITD の仮想 IP アドレス(VIP)は、ホストおよびノードとは違うサブネット上に存在している必要があります。
N7k-1(config-itd)# virtual ip 192.168.30.1 255.255.255.255 advertise enable
ITD VIP は、本質的には Nexus 7000 の側から見るとダミー インターフェイスです。たとえば、スイッチが VIP にアドレス指定された ping 要求に応答しません。 自動的に作成されて 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 がノード障害に反応しないようにフェールオーバー動作を定義する必要があります。
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
サーバが ITD VIP にアドレス指定されたトラフィックに対応するために、サーバ上のループバック インターフェイスで IP エイリアスとして設定する必要があります。 サーバは VIP の宛先アドレスの要求を受け入れ、ITD VIP アドレスからの応答を取得します。
Windows で Microsoft ループバック アダプタをインストールする方法
ロード バランス メソッドにより、トラフィックを分割するバケット数を定義できます。 バケットの設定は任意です。 デフォルトでは、バケットの数は設定されたノードの数に等しいです。 バケットの数を設定する場合は、値を 2 の累乗(2、4、8、16、32 など)にする必要があります。 設定は次のようになります。
N7k-2(config-itd)# load-balance method src ip buckets 16
デフォルトでは、バケットはラウンド ロビン パターンでのアクティブ ノードに割り当てられています。 ただし、多くのバケットを持つ特定のノードを評価することができます。これは実際には、1 つ以上のデバイスを優先するようトラフィックを評価します。 評価はデバイス グループの設定で割り当てます。 このコンフィギュレーション サーバ 101 は、サーバ 100 の 2 倍の量のトラフィックを受信します。
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
ノードが失敗したら、プローブが検出して [Probe Fail] 状態にします。 デフォルトでは、ITD は失敗したノードにトラフィックを転送し続けます。 ITD がトラフィックを失敗したノードから他の場所へ移動するようにするには、次のように設定する必要があります。
itd TEST
failaction node reassign
ノードが到達不能になると、どうなりますか。
シナリオ 1: プローブが設定済み、スタンバイ ノードが設定済み: トラフィックは最初に利用できるスタンバイ ノードに転送されます。
シナリオ 2: プローブが設定済み、スタンバイ ノードの設定なし: トラフィックは再び割り当てられず、ルーティングされます。
シナリオ 3: プローブの設定なし: ITD は失敗を検出できず、トラフィックは利用できないノードに引き続き転送されます。
ここでは、基本的な ITD の設定と運用を確認する方法について説明します。
ITD のステータスを表示するには、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 を設定するときに動的に作成されます。
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
インターネット プロトコルのサービス レベル契約(IPSLA)オブジェクトは、ITD が設定されるときに動的に作成されます。 これらのオブジェクトは、ITD のルート マップで参照されます。
現在のところ、この設定に関する特定のトラブルシューティング情報はありません。