内容

概要

前提条件

要件

使用するコンポーネント

背景説明

新しいインターフェイス機能

IP Pim冗長性

VRRPの役割

PIMの役割

実装の詳細

PIMをVRRPグループにバインドする

インターフェイス上の複数のVRRPグループの追跡

設定

ネットワーク図

PIM冗長性機能の有効化

LHRの設定

確認

VRRSデータベース情報の確認

インターフェイス情報の確認

トラブルシュート

関連情報

概要

このドキュメントでは、Virtual Router Redundancy Protocol-aware（VRRP対応）Protocol Independent Multicast(PIM)を使用するようにルータを設定する方法について説明します。

前提条件

要件

マルチキャストおよびVRRP機能に関する知識があることが推奨されます。

使用するコンポーネント

このドキュメントの内容は、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期（デフォルト）設定の状態から起動しています。対象のネットワークが実稼働中である場合には、どのようなコマンドについても、その潜在的な影響について確実に理解しておく必要があります。

背景説明

VRRP対応PIMはVRRPバージョン3.10リリース(15.3(3)S)でサポートされています。PIMには固有の冗長機能がなく、VRRPなどのファーストホップ冗長プロトコル(FHRP)とは完全に独立しています。その結果、IPマルチキャストトラフィックは、必ずしもVRRPによって選出されたルータによって転送されるとは限りません。

仮想ルータグループ(VRG)を有効にして、冗長ネットワークで一貫性のあるIPマルチキャスト転送を提供する必要があります。PIMの冗長性を使用すると、仮想ルータ冗長サービス(VRRS)が利用され、代表ルータ(DR)の選出とPIM参加/プルーニングの処理は、ルータのVRRP状態に基づいて決定されます。PIM non-DR join機能を有効にすると、非DR(NonDR)がマルチキャストルート(mroute)状態を作成し、トラフィックをプルし、トラフィックは転送しないようにできます。VRRPフェールオーバーが発生すると、VRRPグループによって選出された新しいマスタールータ(MR)がファーストホップルータ(FHR)またはラストホップルータ(LHR)DRの役割を引き継ぎ、トラフィックの転送を開始します。

新しいインターフェイス機能

シスコでは、ip pim non-dr-join CLIコマンドを使用して有効にする新しい機能を導入しました。この新しい機能は、VRRP対応のPIM機能とは独立して動作し、VRRPに加えてBidirectional Forwarding Detection(BFD)などの他の機能にも役立ちます。このCLI機能を有効にすると、NonDRは次の例外を除き、Internet Group Management Protocol(IGMP)の加入と機能をDRと同様に処理できます。

- NonDRはインターフェイスを発信インターフェイスリスト(OIL)に保持しますが、トラフィックが転送されないように、Fフラグ(マルチキャストルーティング情報ベース(MRIB)の転送フラグ)は設定しません。NonDRがDRになると、Fフラグが設定され、トラフィックの転送が開始されます。

注：このロジックは、VRRPグループの状態とは完全に独立して動作します。

- ip pim non-dr-joinとip pim redundancy <tag> vrrp dr-priority <value>の両方の機能がインターフェイスで有効になっている場合、トラフィックはVRRPの状態に関係なくすべての非DRでもプルされます。PIMは、VRRP状態に基づいてインターフェイスのFフラグを設定またはクリアします。これにより、VRRPスイッチオーバー時のコンバージェンス時間を短縮できます。

IP Pim冗長性

このドキュメントで説明する設定では、新しいインターフェイスCLI機能を使用して、タグ（48文字の文字列）を介してPIMをVRRSセッションにバインドします。

ip pim redundancy

[vrrp ] dr-priority

ipv6 pim redundancy

[vrrp ] dr-priority

PIMはVRRSクライアントとして登録され、VRRPイベント通知をリッスンします。マルチアクセスセグメントでVRRP MRをPIM DRとして指定するには、物理IPアドレスから送信されるHelloメッセージでPIM DRプライオリティを大きくします。

VRRP対応のPIMトラッキングがインターフェイスで有効になると、ip pim non-dr-join機能が同じインターフェイスで有効になっているかどうかに応じて、異なる動作が観察される場合があります。

- ip pim non-dr-join機能が有効な場合、NonDRはIGMPレポートを処理し、通常どおりmroute状態を作成します。デフォルトのNonDR動作とは異なり、NonDRはmrouteエントリの発信インターフェイスリストにインターフェイスを追加し、PIM Join/Pruneの決定をアップストリームに送信し、DRと同様にトラフィックをプルします。ただし、非DRはMRIBのインターフェイスにFフラグを設定しないため、トラフィックはインターフェイスから転送されません。代わりに、MRIBの発信インターフェイスリスト(OIL)のインターフェイスに新しいbフラグ(ブロック)が設定されます。これは、このインターフェイス（VRRPバックアップ状態の場合）で転送がブロックされていることを示します。 これにより、スイッチオーバー時のコンバージェンス時間を帯域幅のコストで短縮できます。

- ip pim non-dr-join機能が有効でない場合、PIM DRとして機能するのはMRだけで、PIM Join/Pruneの決定は処理されますが、すべてのバックアップルータがIGMP Join要求とPIM Join/Prune要求を無視します。スイッチオーバー時に、新しいMRは仮想IPアドレスを持つPIM Helloメッセージを送信します。その後、ホストまたはダウンストリームボックスがトリガーされてJoin要求が再送信されるため、新しいMRはこれらの要求を処理し、マルチキャストトラフィックをプルします。これにより、他のアプローチよりもコンバージェンス時間が遅くなりますが、システムの観点から見ると、帯域幅の経済性が高くなります。

対象のアプリケーションのセットアップはLast/First hopのシナリオだけなので、PIMはインターフェイスごとに1つのVRRPグループだけを追跡できます。1つのインターフェイスを複数のVRRPグループを追跡するように設定することはできません。これにより、1つのインターフェイスが1つのVRRPグループのマスター状態で、別のVRRPグループのバックアップ状態になる状況が生じます。

VRRPフェールオーバー時に、新しいMRになったルータが新しいDRとして選出されます。

- ip pim non-dr-join機能が有効な場合、PIMはすべてのmrouteエントリを走査し、bフラグをクリアして、インターフェイスにFフラグを設定します（現在はVRRPグループのMRであるため）。 前のMRはFフラグをクリアし、バックアップ状態に入った場合はインターフェイスにbフラグを設定します。

- ip pim non-dr-join機能が有効でない場合、Hot Standby Router Protocol-aware（HSRP対応）PIMロジックに従って、新しいMRはPIM Helloメッセージを新しいGenIDとともに送信し、ダウンストリームボックスにPIM Join要求ををを再送信します（または次定期的にホストに送信待待待待を待待待しますIGMPレポート）を使用して、mroute状態を再作成し、新しいDR経由でトラフィックをプルします。

- これで、トラフィックは新しいMR（およびPIM DR）を介してLANに転送され、フェールオーバー時にダウンストリームルータでまったく操作が必要なくなります。

VRRPの役割

VRRPは、IPv4/IPv6アドレスで表される仮想ルータの役割を、LAN上のVRRPルータ(RFC5798)のいずれかに動的に割り当てる選出プロトコルを指定します。 仮想ルータに関連付けられたアドレスを制御するVRRPルータはマスターと呼ばれ、仮想メディアアクセスコントロール(MAC)アドレスに送信されるパケットを転送します。

この新しい機能が実装されると、VRRPはVRRP MRを選出するために使用されます。VRRP MRは、VRRPグループの仮想IP(VIP)宛てのすべてのトラフィックのルーティングと転送を実行します。 これにより、次の3つの目標が達成されます。

- すべてのVRRPサーバの状態の変更と更新についてVRRSに通知します。

- これにより、すべてのPIM Join/Prune要求がVRRPグループVIPに到達できるようになり、ダウンストリームルータ側での変更と設定が最小限に抑えられます（VIPを知る必要があります）。

- これにより、PIM DRがVRRP MRと同じゲートウェイで動作し、mroute状態を維持できます。マルチキャストトラフィックはVRRP MRを介して転送され、PIMはVRRPの冗長性を活用して、重複するトラフィックを回避し、フェールオーバーを有効にすることができます。

PIMの役割

PIMはVRRSクライアントとして機能し、VRRSサーバ(VRRP)からの状態変更およびアップデート通知をリッスンします。

- VRRP状態に基づいてPIM DRプライオリティを自動的に調整します。

- VRRPフェールオーバー時に、トラッキング対象VRRPグループの状態変更通知をVRRSから受信します。応答として、PIMはインターフェイスフラグを管理し、トラフィックがVRRP MRを介して転送されることを保証します。

mrouteの状態とトラフィックはMasterルータとBackupルータの両方で使用できるため、スイッチオーバー時間は、主に冗長性インフラストラクチャ（VRRPとVRRS）と設定スケール（mrouteエントリの数など）によって決まります。 状態変更が通知されると、PIMはMRIBおよびマルチキャスト転送情報ベース(MFIB)に対して、VRRP MRを介してトラフィックを転送するように即時に通知します。

実装の詳細

このセクションでは、このドキュメントで説明する設定に関する重要な注意事項をいくつか示します。

PIMをVRRPグループにバインドする

PIM CLIコマンドは、インターフェイスでPIM冗長性を有効にし、VRRSサーバグループ（VRRPグループ）にバインドするために導入されました。

ip pim redundancy

[vrrp ] dr-priority

ipv6 pim redundancy

[vrrp ] dr-priority

インターフェイスに設定すると、PIMはクライアントとしてVRRSに登録され、VRRSデータベースによって割り当てられたクライアントIDを取得します。また、VRRSは、<tag>によって識別されるグループのすべてのイベントに関する通知をPIMに送信するように要求します。

注：VRRSサーバとクライアントは、タグと呼ばれる名前（48文字の文字列）でバインドされます。VRRSは、登録およびコールバックメカニズムを介して動作します。VRRSにリダンダンシーレジスタを実装するクライアント（PIMなど）。

CLIに次のいずれかのコマンドを入力して、NonDR Join機能を有効にします。

ip pim non-dr-join

ipv6 pim non-dr-join

インターフェイス上の複数のVRRPグループの追跡

ターゲットアプリケーションのシナリオはファーストホップまたは最終ホップの設定のみであるため、最も一般的な設定は、LAN上のすべてのLHRインターフェイスが同じVRRPグループを追跡することです。したがって、VRRSがインターフェイスごとに複数のタグを追跡できる場合でも、PIMはインターフェイスごとに1つのVRRPグループのみを追跡できます。

注：デフォルトでは、この機能は無効になっています。

設定

ネットワーク図

PIM冗長性機能の有効化

注：PIM冗長性を有効にするために使用できるCLIコマンドは1つだけです。PIMおよびHSRPでは、現在のshowコマンドとdebugコマンドを使用できます。

PIM冗長機能を有効にし、各VRRPグループのPIM DRプライオリティを指定するには、次のいずれかのコマンドをCLIに入力します。

[no] ip pim redundancy

[hsrp | vrrp] dr-priority

[no] ipv6 pim redundancy

[hsrp | vrrp] dr-priority

PIM DR機能（非DRでの転送を除く）を有効にするには、CLIに次のいずれかのコマンドを入力します。

[no] ip pim non-dr-join

[no] ipv6 pim non-dr-join

LHRの設定

LHR DRには次の設定を使用します。

interface Ethernet0/0

ip address 10.10.10.1 255.255.255.0

ip pim redundancy VRRP vrrp dr-priority 150

ip pim non-dr-join

ip pim sparse-mode

vrrp 1 address-family ipv4

vrrs leader VRRP

priority 120

track 1 decrement 30

address 10.10.10.5 primary

exit-vrrp   !   track 1 interface Ethernet0/1 line-protocol

LHR NonDRには次の設定を使用します。

interface Ethernet0/0

ip address 10.10.10.2 255.255.255.0

ip pim redundancy VRRP vrrp dr-priority 150

ip pim non-dr-join

ip pim sparse-mode

vrrp 1 address-family ipv4

address 10.10.10.5 primary

exit-vrrp

show vrrp briefコマンドを入力し、LHRの設定を表示します。

LHR-DR#show vrrp brief

Interface         Grp A-F Pri Time Own Pre State   Master addr/Group addr

Et0/0               1 IPv4 120     0 N   Y MASTER 10.10.10.1(local) 10.10.10.5

LHR-DR#

LHR-NonDR#show vrrp brief

Interface         Grp A-F Pri Time Own Pre State   Master addr/Group addr

Et0/0               1 IPv4 100 3609 N   Y BACKUP 10.10.10.1 10.10.10.5

LHR-NonDR#

確認

設定が適切に機能することを検証するためにこの項で説明されている情報を活用してください。

VRRSデータベース情報の確認

CLIにshow vrrs server VRRPコマンドを入力し、前の設定に従ってVRRSデータベースが入力されていることを確認します。

LHR-DR#show vrrs server VRRP

Server Name: vrrpEthernet0/0v41

Address Family: IPv4

Interface: Ethernet0/0

State: ACTIVE

vMAC: 0000.5E00.0101

vIP Address: 10.10.10.5

Tags Connected:

Tag Name VRRP

LHR-DR#

LHR-NonDR#show vrrs server VRRP

Server Name: vrrpEthernet0/0v41

Address Family: IPv4

Interface: Ethernet0/0

State: BACKUP

vMAC: 0000.5E00.0101

vIP Address: 10.10.10.5

Tags Connected:

LHR-NonDR#

インターフェイス情報の確認

次のコマンドのいずれかを入力して、非dr-join機能用にインターフェイスが正しくプログラムされていること、およびNonDRがブロックされたフラグでツリーが構築されていることを確認します。

LHR-DR#show ip pim int e0/0 det | i Non|DR

PIM DR: 10.10.10.1 (this system)

PIM Non-DR-Join: TRUE

LHR-NonDR#show ip pim int e0/0 det | i Non|DR

PIM DR: 10.10.10.1

PIM Non-DR-Join: TRUE

LHR-NonDR#

LHR-NonDR CLIにshow ip mroute sparseコマンドを入力し、新しい[Blocked]フィールドを表示します。

LHR-NonDR#show ip mroute sparse

(*, 239.1.1.1), 01:26:15/stopped, RP 192.168.1.254, flags: SJC

Incoming interface: Ethernet0/1, RPF nbr 192.168.2.2

Outgoing interface list:

Ethernet0/0, Forward/Sparse, 00:00:16/00:02:43 Blocked

(192.168.7.2, 239.1.1.1), 00:11:56/00:02:50, flags: T

Incoming interface: Ethernet0/1, RPF nbr 192.168.2.2

Outgoing interface list:

Ethernet0/0, Forward/Sparse, 00:00:16/00:02:43 Blocked

LHR-NonDRのCLIにshow mrib routeコマンドを入力して、MRIBルートにFフラグが設定されていないことを確認します。

LHR-NonDR#show ip mrib route 239.1.1.1 | b \(

(*,239.1.1.1) RPF nbr: 192.168.2.2 Flags: C

Ethernet0/1 Flags: A NS

(192.168.7.2,239.1.1.1) RPF nbr: 192.168.2.2 Flags:

Ethernet0/1 Flags: A

必要に応じて、MRIBルートのLHR-DRにFフラグが設定されています。

LHR-DR#show ip mrib route 239.1.1.1 | b \(

(*,239.1.1.1) RPF nbr: 192.168.3.2 Flags: C

Ethernet0/0 Flags: F NS

Ethernet0/1 Flags: A NS

(192.168.7.2,239.1.1.1) RPF nbr: 192.168.3.2 Flags:

Ethernet0/1 Flags: A

Ethernet0/0 Flags: F NS

conf tコマンドをLHR-DRのCLIに入力して、Ethernet0/1シャットダウンによるVRRP状態変更をトリガーします。

LHR-DR#conf t

Enter configuration commands, one per line. End with CNTL/Z.

LHR-DR(config)#int e0/1

LHR-DR(config-if)#shutdown

LHR-DR(config-if)#end

LHR-NonDRからの出力を確認すると、VRRPステータスが変更され（VRRSに通知されます）、PIMがVRRSから通知を受け取り、それに応じてDRロールが変更されていることがわかります。

LHR-NonDR#show ip pim int e0/0 det | i DR

PIM DR: 10.10.10.2 (this system)

PIM Non-DR-Join: TRUE

LHR-NonDR#

LHR-NonDR# show vrrp brief

Interface         Grp A-F Pri Time Own Pre State   Master addr/Group addr

Et0/0               1 IPv4 100     0 N   Y MASTER 10.10.10.2(local) 10.10.10.5

LHR-NonDR# show vrrs server VRRP

Server Name: vrrpEthernet0/0v41

Address Family: IPv4

Interface: Ethernet0/0

State: ACTIVE

vMAC: 0000.5E00.0101

vIP Address: 10.10.10.5

Tags Connected:

予想どおり、Fフラグが設定され、NonDRは新しいマルチキャストツリーを構築しなくてもマルチキャストトラフィックの転送を開始します。

LHR-NonDR# show ip mrib route 239.1.1.1 | b \(

(*,239.1.1.1) RPF nbr: 192.168.2.2 Flags: C

Ethernet0/0 Flags: F NS

Ethernet0/1 Flags: A NS

(192.168.7.2,239.1.1.1) RPF nbr: 192.168.2.2 Flags:

Ethernet0/0 Flags: F NS

Ethernet0/1 Flags: A

トラブルシュート

前のセクションのトランザクションで2つのパケットが失われました。送信元ルータで次のことを確認できます。

Source#ping 239.1.1.1 rep 1000

Type escape sequence to abort.

Sending 1000, 100-byte ICMP Echos to 239.1.1.1, timeout is 2 seconds:

Reply to request 0 from 10.10.10.3, 2 ms

Reply to request 1 from 10.10.10.3, 2 ms

Reply to request 2 from 10.10.10.3, 1 ms..

Reply to request 5 from 10.10.10.3, 1 ms

ハイアベイラビリティ(HA)マルチキャスト設計で実行される展開では、NonDRにスタンバイツリー形成が必要で、non-dr-join機能の利点があります。この機能はマルチキャストトラフィックをプルしますが、DRとして選出されるまで転送しません。

関連情報

- VRRPv3プロトコルサポート

- テクニカル サポートとドキュメント – Cisco Systems