2026年6月6日
2026年6月6日
グローバルIPとマルチキャストの違い|「範囲」と「届け方」という別の軸で整理する
グローバルIPとマルチキャストは、同じ土俵で比べる言葉ではありません。グローバルIPは「そのアドレスがどこまで通用するか(範囲)」を表し、マルチキャストは「1対多で届ける方式(届け方)」を表します。この記事では2つの軸を分けて整理し、サーバー運用でマルチキャストが関わる場面(冗長化ソフト、IPv6の近隣探索、ファイアウォール設定)と、その確認方法までを説明します。
まず結論:2つは別の軸の言葉
IPアドレスの分類には、大きく2つの軸があります。
- 範囲(スコープ)の軸:グローバル/プライベート/リンクローカルなど。インターネット全体で一意か、組織内だけか、同じセグメント内だけか、という区別です。
- 届け方(通信形態)の軸:ユニキャスト(1対1)、ブロードキャスト(1対全員)、マルチキャスト(1対グループ)、エニーキャスト(1対最寄りの1台)。
「グローバルIP」と一般に呼ばれているものは、正確には「グローバルなユニキャストアドレス」です。Webサーバーに割り当てて、世界中のクライアントと1対1で通信するためのアドレスですね。一方のマルチキャストは届け方の分類なので、範囲の軸でもう一度分類できます。同じセグメント内だけで使うマルチキャスト、組織内だけで使うマルチキャスト、理屈の上ではインターネット規模のマルチキャストもあります。
つまり「グローバルIPかマルチキャストか」と二択で考えると混乱します。「グローバルなユニキャスト」と「さまざまな範囲のマルチキャスト」を比べている、と捉えると整理しやすくなります。
アドレスの範囲で見分ける
IPv4とIPv6では、アドレスの先頭部分でマルチキャストかどうかが決まっています。代表的な範囲は次のとおりです(割り当ての詳細は IANA の登録簿が一次情報です)。
| 種類 | IPv4 | IPv6 |
|---|---|---|
| グローバルユニキャスト | プライベート・予約範囲を除く大部分 | 2000::/3 |
| プライベート/組織内ユニキャスト | 10.0.0.0/8、172.16.0.0/12、192.168.0.0/16 | fc00::/7(ULA) |
| マルチキャスト全体 | 224.0.0.0/4(224〜239) | ff00::/8 |
IPv4のマルチキャストの中にも、さらに範囲の区別があります。
- 224.0.0.0/24:同じセグメント内の制御用。ルーターを越えて転送されません。VRRP(224.0.0.18)や mDNS(224.0.0.251)などがここを使います。
- 232.0.0.0/8:送信元を指定して受信する SSM(Source-Specific Multicast)用。
- 239.0.0.0/8:組織内で自由に使える範囲(管理スコープ)。プライベートIPのマルチキャスト版と考えると分かりやすい範囲です。
IPv6はもっと明快で、ff の次の桁の後半4ビットがスコープを表します。ff02:: で始まればリンクローカル(同じセグメント内)、ff05:: ならサイトローカル、ff0e:: ならグローバルスコープです。
仕組みの違い:割り当てるアドレスか、参加するグループか
グローバルユニキャストのアドレスは、特定のホストのネットワークインターフェースに割り当てます。送信元にも宛先にもなり、そのアドレス宛てのパケットはその1台に届きます。
マルチキャストのアドレスは、ホストに「割り当てる」ものではなく、受信側が「参加する」グループの番号です。受信したいホストは IPv4 なら IGMP、IPv6 なら MLD でグループへの参加をネットワークに伝え、ルーターやスイッチ(IGMP Snooping 対応のもの)は参加者がいる方向にだけパケットを流します。マルチキャストアドレスはあくまで宛先として使うもので、送信元アドレスには使いません。送信元は通常のユニキャストアドレスです。
ここで実務上の大事な点があります。インターネットを越えたマルチキャストは、一般にはほぼ使えません。 理屈の上ではグローバルスコープのマルチキャストが定義されていますが、通信事業者をまたいでマルチキャスト経路を交換する運用は限られています。動画配信のような1対多の配信も、実際にはCDNによるユニキャストで実現されているのが普通です。
IPv6ではブロードキャストの代わりにマルチキャストを使う
IPv4にはブロードキャスト(192.168.1.255 のような全員宛て)がありますが、IPv6にはブロードキャストがありません。その役割をマルチキャストが担います。
- ff02::1:同じリンク上の全ノード宛て
- ff02::2:同じリンク上の全ルーター宛て
- ff02::1:ffXX:XXXX:要請ノードマルチキャスト。近隣探索(NDP)で、IPv4の ARP に相当するアドレス解決に使います
このため、IPv6 を有効にしたサーバーで ICMPv6 やマルチキャストをファイアウォールで一律に遮断すると、近隣探索やルーター通知が届かず、IPv6 の通信が不安定になったり、アドレスが自動設定されなかったりします。IPv6 では ICMPv6 の必要な種類を許可することが前提です。
サーバー運用でマルチキャストが関わる場面
WordPress を載せたWebサーバーの運用で、マルチキャストを意識する機会は多くありません。ただ、次の場面では関係してきます。
冗長化ソフト(keepalived の VRRP など)
keepalived は既定では VRRP の広告を 224.0.0.18 宛てのマルチキャストで送ります。オンプレミスや同じL2セグメント内では問題なく動きますが、多くのクラウドの仮想ネットワークはマルチキャストを通さないか、制限付きでしか扱いません。その場合は keepalived の設定で unicast_peer を使い、相手ノードのユニキャストアドレスへ直接送る構成にします。クラウド側のマルチキャスト対応状況はサービスごとに異なり変わることもあるため、利用中の事業者のドキュメントで確認してください。対応状況は事業者によって差があります(2026年10月現在)。
ローカルネットワークの名前解決(mDNS)
社内LANや自宅のNASなどで使われる .local の名前解決(mDNS)は 224.0.0.251(IPv6 は ff02::fb)を使います。公開サーバーでは不要なことが多く、受信を許可しない設定が一般的です。
ファイアウォールのルール
iptables や nftables で「宛先がマルチキャストのパケット」を扱うルールを書くときは、宛先アドレスの範囲(224.0.0.0/4、ff00::/8)で指定します。IPv4 のマルチキャストを止めても Web の公開には影響しませんが、IPv6 で同じことをすると前述の近隣探索に影響するため、IPv4 と IPv6 で同じ方針を機械的に当てはめないことが大切です。
自分のサーバーで確認する方法
Linux では、インターフェースが参加しているマルチキャストグループを次のコマンドで確認できます。
# 参加中のマルチキャストグループ
ip maddr show
# IPv4 / IPv6 のアドレスとスコープ(scope global / scope link)
ip -4 addr show
ip -6 addr show
# 実際に流れているマルチキャストを観察(Ctrl+C で終了)
sudo tcpdump -n -i eth0 'ip multicast or ip6 multicast'
ip -6 addr show の出力では、2000::/3 の範囲のアドレスに scope global、fe80:: で始まるアドレスに scope link と表示されます。グローバルIPが付いているかどうかは、この scope global の有無で判断できます。インターフェース名(eth0 など)は環境に合わせて読み替えてください。
アドレスがどの種類に当たるかを手早く判定したい場合は、Python 標準の ipaddress モジュールが便利です。
import ipaddress
for a in ["203.0.113.10", "192.168.1.10", "224.0.0.18", "239.1.1.1", "2001:db8::1", "ff02::1"]:
ip = ipaddress.ip_address(a)
print(a, "multicast" if ip.is_multicast else "unicast", "private" if ip.is_private else "")
なお 203.0.113.0/24 や 2001:db8::/32 はドキュメント用に予約された範囲なので、ipaddress では private 扱いになることがあります。判定結果を本番の許可リストなどに使う場合は、Python のバージョンによる挙動の違いも含めて、実際の値で確かめてから使ってください。
よくある誤解
- 「マルチキャストアドレスをサーバーに付ければ一斉配信できる」:付けるものではなく参加するものです。配信側はユニキャストの送信元から、グループのアドレス宛てに送ります。
- 「グローバルIPがあればマルチキャストでインターネット配信できる」:経路上のネットワークがマルチキャストを転送しない限り届きません。インターネット向けの1対多はCDNやユニキャストで設計するのが現実的です。
- 「IPv6 でもマルチキャストは止めて安全」:IPv6 ではアドレス解決やルーター探索に使うため、止めると通信自体に支障が出ます。
まとめ
- グローバルIPは「範囲」、マルチキャストは「届け方」の分類で、軸が違います。
- 一般に言うグローバルIPは「グローバルなユニキャストアドレス」で、1台のホストに割り当てて1対1で通信します。
- マルチキャストは受信側がグループに参加する方式で、IPv4 は 224.0.0.0/4、IPv6 は ff00::/8。範囲(スコープ)でさらに分かれます。
- インターネットを越えたマルチキャストは一般には使えず、クラウドでも制限があることが多いため、keepalived などは unicast_peer の検討が必要です。
- IPv6 ではマルチキャストが近隣探索に使われるので、ファイアウォールで一律に遮断しないようにします。