*[[igmp_query>mld_query]] [#ae7cb331] > >定期的にIGMP General Queryを送信ツールのページです。~ IGMPv2/IGMPv3スヌーピング機能付のL2-SWをサーバと端末間に使用した際、動的にIGMPスヌーピンを行うためにサーバでIGMP General Queryを定期的に送信するツールを作成しました。これにより対応する端末がリスナーリポートを送信することになり、L2-SWでIGMPスヌーピンが実行されます。 < **コマンド仕様 [#ge2ffe0f] -コマンド形式 > >> igmp_query [-v] [-h] [-d] [-2] [-f log_facility] [-r <n>] [-t <sec>] [-x <msec>] <interface> >>> |~オプション|~機能|h |-v|バージョンを表示します。| |-h|ヘルプを表示します。| |-d|デーモンとして動作します。(セッションのデタッチ)| |-2|IGMPバージョンを2にします。(デフォルトはバージョン3)| |-f <log_facility>|Syslog出力のファシリティを設定します。(デフォルト:user)| |-r <n>|Robustnessを指定します。(デフォルト:2)| |-t <sec>|Query Packetの送信周期を指定します。(125 sec)| |-x <msec>|最大応答遅延(デフォルト:10,000 ms)| <<< << < **参照規格 [#zb2ed6a7] > |CENTER: |CENTER:規格番号|CENTER:タイトル|CENTER:記事|h |1|RFC 791|Internet Protocol| | |2|RFC 1112|Host Extensions for IP Multicasting| | |3|RFC 2236|Internet Group Management Protocol, Version 2| | |4|RFC 3376|Internet Group Management Protocol, Version 3| | |5|RFC 4604|Using Internet Group Management Protocol Version 3 (IGMPv3) &br; and Multicast Listener Discovery Protocol Version 2 (MLDv2) &br; for Source-Specific Multicast| | |5|RFC 4604|Using Internet Group Management Protocol Version 3 (IGMPv3) &br;and Multicast Listener Discovery Protocol Version 2 (MLDv2) &br;for Source-Specific Multicast| | |6|RFC 2113|IP Router Alert Option| | < **IGMP General Query Packet Format [#o0fc4d8c] ***IGMPv2 [#m6db47d7] > |CENTER:~Offset|~31|~30|~29|~28|~27|~26|~25|~24|~23|~22|~21|~20|~19|~18|~17|~16|~15|~14|~13|~12|~11|~10|~09|~08|~07|~06|~05|~04|~03|~02|~01|~00| |CENTER:~00|>|>|>|CENTER:Version(4)=4|>|>|>|CENTER:IHL(4)=6|>|>|>|>|>|>|>|CENTER:Type of Service(8)=0x00|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|CENTER:Total Length(16)=32| |CENTER:~01|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|CENTER:Identification(16)|>|>|CENTER:Flag(3)=0|>|>|>|>|>|>|>|>|>|>|>|>|CENTER:Fragment Offset(13)=0x0000| |CENTER:~02|>|>|>|>|>|>|>|CENTER:Time to Live(8)=0x01|>|>|>|>|>|>|>|CENTER:Protocol(8)=2|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|CENTER:Header Checksum(16)| |~03|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|CENTER:Source Address(32)| |~04|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|CENTER:Destination Address(32)=224.0.0.1| |~05|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|CENTER:Options(32) = Router Alert = 0x94040000| |~06|>|>|>|>|>|>|>|CENTER:Type of Packet(8)&br;=0x11(Membership Query)|>|>|>|>|>|>|>|CENTER:Max resp. code(8)|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|CENTER:Checksum(16)| |~07|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|CENTER:Multicast Address(32)| < ※General Queryでは -Destination Address = 224.0.0.1 -Source Address = (自局IPアドレス) -Source Address = (自局IPアドレス) ***IGMPv3 [#v736cdb9] > |CENTER:~Offset|~31|~30|~29|~28|~27|~26|~25|~24|~23|~22|~21|~20|~19|~18|~17|~16|~15|~14|~13|~12|~11|~10|~09|~08|~07|~06|~05|~04|~03|~02|~01|~00| |CENTER:~00|>|>|>|CENTER:Version(4)=4|>|>|>|CENTER:IHL(4)=6|>|>|>|>|>|>|>|CENTER:Type of Service(8)=0x00|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|CENTER:Total Length(16)=36| |CENTER:~00|>|>|>|CENTER:Version(4)=4|>|>|>|CENTER:IHL(4)=6|>|>|>|>|>|>|>|CENTER:Type of Service(8)=0x00|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|CENTER:Total Length(16)=36+4*N| |CENTER:~01|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|CENTER:Identification(16)|>|>|CENTER:Flag(3)=0|>|>|>|>|>|>|>|>|>|>|>|>|CENTER:Fragment Offset(13)=0x0000| |CENTER:~02|>|>|>|>|>|>|>|CENTER:Time to Live(8)=0x01|>|>|>|>|>|>|>|CENTER:Protocol(8)=2|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|CENTER:Header Checksum(16)| |~03|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|CENTER:Source Address(32)| |~04|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|CENTER:Destination Address(32)=224.0.0.1| |~05|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|CENTER:Options(32) = Router Alert = 0x94040000| |~06|>|>|>|>|>|>|>|CENTER:Type of Packet(8)&br;=0x11(Membership Query)|>|>|>|>|>|>|>|CENTER:Max resp. code(8)|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|CENTER:Checksum(16)| |~07|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|CENTER:Multicast Address(32)| |~08|>|>|>|CENTER:Reserved(4)=0|CENTER:S|>|>|CENTER:QRV(3)|>|>|>|>|>|>|>|CENTER:QQIC(8)|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|CENTER:Number of Sources (16)(N)| |~09|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|CENTER:Source Address(32)[1]| |~..|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|CENTER: | |~..|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|CENTER: | |~08+N|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|CENTER:Source Address(32)[N]| < ※General Queryでは > -Destination Address = 224.0.0.1 -Source Address = (自局IPアドレス) -Number of Sources = 0 -Source Address = (自局IPアドレス) -Number of Sources = 0 < ***MAX Response Code [#hba27e01] -0.1sec単位の応答遅延時間を指定しますが、128以上の値を指定する際は浮動小数点フォーマットになります。 -128を超える場合は以下のようにコーディングされます。 > |~ |~0|~1|~2|~3|~4|~5|~6|~7| |~Max Response Code|CENTER:"1"|>|>|CENTER:exp|>|>|>|CENTER:mant| < > -従って、最大応答遅延時間(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) [#q8241a2a] -S Flag="1"の場合、マルチキャストルータは通常のタイマー処理を停止します。~ IGMP General Queryの場合は”0” ***QRV(Querier's Robustness Variable) [#ra908f69] -ロバストネスを指定します。パケットロスの補償として、メッセージの送信回数を指定します。~ 通常は"2"が指定されます。 ***QQIC(Querier's Query Interval Code) [#bfaafbdf] -Querier側の送信間隔が指定されます。(単位:sec) **Eathernet Frame Format [#z2267711] > |CENTER:Offset|CENTER:7|CENTER:6|CENTER:5|CENTER:4|CENTER:3|CENTER:2|CENTER:1|CENTER:0|CENTER:Remarks|h |~00|>|>|>|>|>|>|>|CENTER:0xAA|CENTER:0xAA| |~01|>|>|>|>|>|>|>|CENTER:0xAA|CENTER:0xAA| |~02|>|>|>|>|>|>|>|CENTER:0xAA|CENTER:0xAA| |~03|>|>|>|>|>|>|>|CENTER:0xAA|CENTER:0xAA| |~04|>|>|>|>|>|>|>|CENTER:0xAA|CENTER:0xAA| |~05|>|>|>|>|>|>|>|CENTER:0xAA|CENTER:0xAA| |~06|>|>|>|>|>|>|>|CENTER:0xAA|CENTER:0xAA| |~07|>|>|>|>|>|>|>|CENTER:0xAB|CENTER:0xAB| |~08|>|>|>|>|>|>|>|CENTER:Dist MAC(0)|CENTER:0x01| |~09|>|>|>|>|>|>|>|CENTER:Dist MAC(1)|CENTER:0x00| |~10|>|>|>|>|>|>|>|CENTER:Dist MAC(2)|CENTER:0x5e| |~11|>|>|>|>|>|>|>|CENTER:Dist MAC(3)|CENTER:0x00| |~12|>|>|>|>|>|>|>|CENTER:Dist MAC(4)|CENTER:0x00| |~13|>|>|>|>|>|>|>|CENTER:Dist MAC(5)|CENTER:0x01| |~14|>|>|>|>|>|>|>|CENTER:Src MAC(0)|CENTER: | |~15|>|>|>|>|>|>|>|CENTER:Src MAC(1)|CENTER: | |~16|>|>|>|>|>|>|>|CENTER:Src MAC(2)|CENTER: | |~17|>|>|>|>|>|>|>|CENTER:Src MAC(3)|CENTER: | |~18|>|>|>|>|>|>|>|CENTER:Src MAC(4)|CENTER: | |~19|>|>|>|>|>|>|>|CENTER:Src MAC(5)|CENTER: | |~20|>|>|>|>|>|>|>|CENTER:Type(0)|CENTER:0x08| |~21|>|>|>|>|>|>|>|CENTER:Type(1)|CENTER:0x00| |~22|>|>|>|>|>|>|>|CENTER:Payload(0)|CENTER: | |~23|>|>|>|>|>|>|>|CENTER:Payload(1)|CENTER: | |~ |>|>|>|>|>|>|>|CENTER:......|CENTER: | |~22+N|>|>|>|>|>|>|>|CENTER:Payload(N)|CENTER: | |~23+N|>|>|>|CENTER:FCS|>|>|>|CENTER:X|CENTER: | < ※GeneralQueryでは > -Dist Mac = 01:00:5e:00:00:01 -Type = 0x0800(IPv4) -Type = 0x0800(IPv4) <