igmp_query

定期的にIGMP General Queryを送信ツールのページです。
IGMPv2/IGMPv3スヌーピング機能付のL2-SWをサーバと端末間に使用した際、動的にIGMPスヌーピンを行うためにサーバでIGMP General Queryを定期的に送信するツールを作成しました。これにより対応する端末がリスナーリポートを送信することになり、L2-SWでIGMPスヌーピンが実行されます。

コマンド仕様

  • コマンド形式
igmp_query [-v] [-h] [-d] [-2] [-f log_facility] [-r <n>] [-t <sec>] [-x <msec>] <interface>
オプション機能
-vバージョンを表示します。
-hヘルプを表示します。
-dデーモンとして動作します。(セッションのデタッチ)
-2IGMPバージョンを2にします。(デフォルトはバージョン3)
-f <log_facility>Syslog出力のファシリティを設定します。(デフォルト:user)
-r <n>Robustnessを指定します。(デフォルト:2)
-t <sec>Query Packetの送信周期を指定します。(125 sec)
-x <msec>最大応答遅延(デフォルト:10,000 ms)

参照規格

規格番号タイトル記事
1RFC 791Internet Protocol
2RFC 1112Host Extensions for IP Multicasting
3RFC 2236Internet Group Management Protocol, Version 2
4RFC 3376Internet Group Management Protocol, Version 3
5RFC 4604Using Internet Group Management Protocol Version 3 (IGMPv3)
and Multicast Listener Discovery Protocol Version 2 (MLDv2)
for Source-Specific Multicast
6RFC 2113IP Router Alert Option

IGMP General Query Packet Format

IGMPv2

Offset3130292827262524232221201918171615141312111009080706050403020100
00Version(4)=4IHL(4)=6Type of Service(8)=0x00Total Length(16)=32
01Identification(16)Flag(3)=0Fragment Offset(13)=0x0000
02Time to Live(8)=0x01Protocol(8)=2Header Checksum(16)
03Source Address(32)
04Destination Address(32)=224.0.0.1
05Options(32) = Router Alert = 0x94040000
06Type of Packet(8)
=0x11(Membership Query)
Max resp. code(8)Checksum(16)
07Multicast Address(32)

※General Queryでは

  • Destination Address = 224.0.0.1
  • Source Address = (自局IPアドレス)

IGMPv3

Offset3130292827262524232221201918171615141312111009080706050403020100
00Version(4)=4IHL(4)=6Type of Service(8)=0x00Total Length(16)=36+4*N
01Identification(16)Flag(3)=0Fragment Offset(13)=0x0000
02Time to Live(8)=0x01Protocol(8)=2Header Checksum(16)
03Source Address(32)
04Destination Address(32)=224.0.0.1
05Options(32) = Router Alert = 0x94040000
06Type of Packet(8)
=0x11(Membership Query)
Max resp. code(8)Checksum(16)
07Multicast Address(32)
08Reserved(4)=0SQRV(3)QQIC(8)Number of Sources (16)(N)
09Source Address(32)[1]
..
..
08+NSource Address(32)[N]

※General Queryでは

  • Destination Address = 224.0.0.1
  • Source Address = (自局IPアドレス)
  • Number of Sources = 0

MAX Response Code

  • 0.1sec単位の応答遅延時間を指定しますが、128以上の値を指定する際は浮動小数点フォーマットになります。
  • 128を超える場合は以下のようにコーディングされます。
    01234567
    Max Response Code"1"expmant
  • 従って、最大応答遅延時間(res sec)は
    if( code < 128 )
    {
    res = code / 10;
    }
    else
    {
    exp  = (code & 0x70) >> 4;
    mant = code & 0x0f;
    res = (mant | 0x10) << (exp + 3);
    res =/ 10;
    }

S(Suppress Router-Side Processing)

  • S Flag="1"の場合、マルチキャストルータは通常のタイマー処理を停止します。
    IGMP General Queryの場合は”0”

QRV(Querier's Robustness Variable)

  • ロバストネスを指定します。パケットロスの補償として、メッセージの送信回数を指定します。
    通常は"2"が指定されます。

QQIC(Querier's Query Interval Code)

  • Querier側の送信間隔が指定されます。(単位:sec)

Eathernet Frame Format

Offset76543210Remarks
000xAA0xAA
010xAA0xAA
020xAA0xAA
030xAA0xAA
040xAA0xAA
050xAA0xAA
060xAA0xAA
070xAB0xAB
08Dist MAC(0)0x01
09Dist MAC(1)0x00
10Dist MAC(2)0x5e
11Dist MAC(3)0x00
12Dist MAC(4)0x00
13Dist MAC(5)0x01
14Src MAC(0)
15Src MAC(1)
16Src MAC(2)
17Src MAC(3)
18Src MAC(4)
19Src MAC(5)
20Type(0)0x08
21Type(1)0x00
22Payload(0)
23Payload(1)
......
22+NPayload(N)
23+NFCSX

GeneralQuery?では

  • Dist Mac = 01:00:5e:00:00:01
  • Type = 0x0800(IPv4)

添付ファイル: filemld_query-1.0.1-1.i386.rpm 463件 [詳細]

トップ   編集 編集(GUI) 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-07-24 (金) 09:39:53 (3202d)