|
IGMPv2
IGMPv1と互換性のあるIGMPv2には、新たな機能として以下の4つが追加されることになりました。
@ クエリア選択の概念
A クエリインターバル最大応答時間
B リーブグループメッセージの定義
C グループスペシフィッククエリの定義

| フィールド |
値 |
| タイプ ( Type ) |
0x11 ( メンバーシップ クエリ ) |
| 0x12 (バージョン 1 メンバーシップ レポート) |
| 0x16 (バージョン 2 メンバーシップ レポート) |
| 0x17 (リーブグループ ) |
| 最大応答時間( MaxResp.Time) |
10 ( デフォルト値の10秒。メンバーシップクエリでのみ意味を持つ
) |
| 0 (その他の全てのメッセージ ) |
| チェックサム ( Checksum ) |
0 (パケットの完全性を確認するために使用
) |
| グループアドレス ( Group Address ) |
0. ( メンバーシップクエリの場合 ) |
| マルチキャストグループアドレス ( メンバーシップレポートの場合
) |
それでは、IGMPv2 の動作について IGMPv1
との違いがよく分かるように解説していきます。
マルチキャストグループへの参加
IGMPv1と同じ動作をしますが、ここでは
224.10.200.1
を IGMPで通知する様子を詳細に見ていきましょう。
※ マルチキャストグループへの参加については、IGMPv1とv2は同じ動作をするので、以下の説明は v1 にも該当します。

メンバーシップレポートを受信したルータは、F0/1の先に
224.10.200.1 のマルチキャストグループが存在する
ことが分かり、マルチキャストパケットを転送するようになります。ルータは
192.168.0.4 のホストが通知した事
ではなく、192.168.0.0/24 のサブネットの誰かが通知してくれた事を、マルチキャストルーティングテーブルに
( = show ip mroute ) に反映させます。つまり、224.10.200.1 宛てのパケットを要求しているホストが、一台
でも存在すれば、ルータのマルチキャストルーティングテーブルにそのサブネットが追加されるのです。つまり、
ルータ側から見ればマルチキャストグループへの参加はホストではなくインターフェースと認識しているのです。
一方で、以下は、マルチキャストグループ
224.10.200.1 が 3日22時間もの間 Fa0/1
でアクティブ状態であり、
残り、1分10秒以内にメンバーシップレポートが受信されない場合、マルチキャストグループ
224.10.200.1 が
ルータのデータベースから削除されることを表示しています。また、マルチキャストグループ
224.10.200.1 を
最後にレポートしてくれたのが 192.168.0.4
であることも分かります。show ip igmp group で確認できます。
|
R1>show ip igmp group
IGMP Connected Group Membership
Group Address Interface Uptime Expires Last Reporter
224.10.200.1 FastEthernet0/1 3d22h 00:01:10 192.168.0.4
|
マルチキャストグループの維持
IGMPv1と同様、全てのホスト(224.0.0.1)に定期的(60秒ごと)に、メンバーシップクエリをマルチキャストします。

IGMPv1と異なる点の1つ目は、クエリア ( クエリを送信するルータ ) 選択の概念が存在することです。
例えば、1つの LAN に複数のルータが存在するとしましょう。初期状態では、マルチキャストが有効にされて
いるインターフェースで自分自身がクエリアであると認識していることから、クエリを送信し始めます。その後、
自分よりも小さな IPアドレスを持つルータのクエリを検出した場合、クエリアとしての動作を止めます。つまり、
より小さな IP アドレスを持つルータがクエリアになります。IGMPv1で、1つのLANに複数のルータが存在する
場合、クエリアの概念がないことから、複数のルータがクエリを送信し続けることになります。これらの結果は
show ip igmp [ interface type ] により確認することが出来ます。

IGMPv1と異なる点の2つ目は、クエリインターバルの最大応答時間が追加されたことです。
IGMPv1ではグループのメンバー( ホスト
)
がクエリア ( ルータ ) からクエリを受け取ってから、メンバーが
その応答として10秒( デフォルト ) で、レポートメッセージが送信する必要があったのですが、IGMPv2では、
その応答時間を変更できるようになりました。その最大応答時間は、クエリーメッセージに示されています。
マルチキャストグループからの離脱
IGMPv1と異なる点の3つ目は、リーブグループメッセージの定義が追加されたことです。
IGMPv1では、ホストはルータに何も通知することなく、マルチキャストグループから脱退していましたが、
IGMPv2では、ホストがマルチキャストグループから離脱する際に、リーブグループメッセージを全ての
ルータ ( 224.0.0.2 ) に対して送信するようになりました。これにより、マルチキャストグループから離脱
するホストが、そのグループの最後のメンバーであった時、そのマルチキャストグループに対する離脱
遅延も短くなることから、ルータからの意味のないマルチキャストパケットの転送時間も短くなります。
IGMPv1と異なる点の4つ目は、グループスペシフィッククエリの定義が追加されたことです。
この定義が追加されたことで、ルータが全てのマルチキャストグループではなく、ただ1つのグループに
対してだけメンバーシップクエリを送信できるようになりました。これにより特定のグループのメンバーが
残っていないかどうか、全てのマルチキャストグループに問い合わせ(クエリ)する必要がなくなりました。
下図は、192.168.0.254 のルータが、192.168.0.4
のホストからのグループリーブメッセージを受け取り、
そのメッセージに応答して、224.10.200.1
へのグループスペシフィックメッセージを送信している所です。

上図では、ルータがリーブグループメッセージを受け取ったものの、グループスペシフィッククエリで確認
した所、224.10.200.1 のマルチキャストグループにメンバー
( 192.168.0.3/24 ) が存在していることを
確認できたので、ルータは 192.168.0.0/24
のセグメントに対しマルチキャストトラフィックを転送し続けます。
今後、192.168.0.3 もリーブグループメッセージを送信し、マルチキャストグループから離脱することになり、
224.10.200.1 のメンバーがいなくなれば、持続タイマーが切れた後に
192.168.0.0/24 のサブネットは、
マルチキャストルーティングテーブル
( =
show ip mroute ) からも削除 ( pruning
) されることになります。
※ あるセグメント上でIGMPv1とIGMPv2のReceiverが混在しているときは、CiscoルータのそのI/FはIGMPv1として動作します。
※ Resource : IPマルチキャストネットワーク開発ガイド Vol
1 BCMSN認定テキスト 第二版 マスタリングTCP/IP マルチキャスト編
|