2005年09月20日

IPマルチキャスト編その1 マルチキャストって何?

どうも再び登場、Kyoです。

連休の最後は、マルチキャストとともにすごしました。
・・・さびしい連休だ・・・(号泣
そんなKyoさんに励ましのお便りをだそう!・・・まあメールアドレス非公開なんですけど。(死
御用の方は遠慮なくコメントのところに書いちゃってください。
(この日記では、エントリーに関係ない内容のコメントでも全然OKということになってます!)

さて。
マルチキャストです。CCNPのときもCCIE Writtenでも正答率100%だったマルチキャスト!
が、本人は使ったこともなくよくわかってない・・・あるいみ因縁です。
みなさんは使ったことがあるでしょうか?
ないよーっていう人。あなたはうそつきです。(笑

と、いうぐらいわれわれの生活に浸透しているのです。マルチキャストは・・・

で、マルチキャストは何ぞやということをまとめますと、
・1対nの通信(グループをあて先としている)
・クラスDのアドレスを使用する(クラスレスのご時勢なのに・・)
・送信パケットが1つなので、帯域が節約できる
・送信パケットが1つなので、送信ホストの負荷が低減
・TCPのエンドツーエンドモデルとは異なる。よってUDPでのみ使用可能
・デフォルトではルータを超えて送出されない。マルチキャストルーティングが必要

ちょっとはしょりすぎてるので詳しくはこちらなんかを参考にしてみてください。

マルチキャストは主にビデオ会議やストリーミングで利用されます。
しかしCCIEではそういったことは問われないでしょう。(CCDPでは聞かれたけど・・)
たとえば、HSRPやRIPv2が動いているルータでうっかりアクセスリストをかけちゃったりするとこれらのプロトコルがうまく動作しなくなります。

interface fastethernet 0/0
ip address 192.168.1.254 255.255.255.0
standby 1 ip 192.168.1.252
standby 1 priority 110
ip access-group 101 in
!

router rip
version 2
network 192.168.1.0


access-list 101 permit tcp any host 192.168.1.1 eq www
access-list 101 permit tcp any host 192.168.1.1 eq 443
access-list 101 permit icmp any any echo-reply
access-list 101 deny ip any any

こんな設定を入れようものならRIPもHSRPも動作しない悲惨な状態になります。
マルチキャストが受信できなくなるからですね。
たとえば
access-list 101 permit udp any 224.0.0.0 0.0.0.255
こんなのはどうでしょうか。
224.0.0.0/24は「リンクローカルマルチキャストアドレス」と呼ばれています。リンクローカルというのはIPv6でも触れましたが、そのネットワーク内だけで有効(隣接ネットワークに影響しない)です。
以下のように予約されています。

224.0.0.1 全ホスト
224.0.0.2 全ルータ
224.0.0.3
224.0.0.4 DVMRP
224.0.0.5 OSPF
224.0.0.6 OSPF-DR
224.0.0.7 STルータ
224.0.0.8 STホスト
224.0.0.9 RIPv2
224.0.0.10 IGRP
224.0.0.11 Mobile
224.0.0.12 DHCP Server Agent
224.0.0.13 PIMルータ
224.0.0.14 RSVP
224.0.0.15 CBT
224.0.0.16 SBM
224.0.0.17 SBMS
224.0.0.18 VRRP
224.0.0.19~ 未割り当て

また、224.0.1.0/24も予約されています。さらに239.0.0.0/8も管理用として予約されています。
自由に使えるアドレスはそれ以外のアドレスということになります。

マルチキャストの場合、MACアドレスは「マルチキャスト用MACアドレス」になります。
「01:00:5E:00:00:00」とマルチキャストIPアドレスの下位23ビットの論理和がそれです。
マルチキャストIPアドレスは32ビット中、28ビットが同じですから28-23=5。よって、2^5=32個のIPアドレスが競合します。
まあ、そういうものなのでしょうね・・・。

さて、1対nの通信が同じネットワーク内だけで行われる・・・ではさびしいですね。
というかあまり役に立ちませんね(笑
ちゃんとルータを経由して複数のホストに送信する必要があります。
これがマルチキャストルーティングです。

・ソースツリー

マルチキャストルーティングではツリーというものを形成し、ツリーに沿ってパケットを伝達していきます。
送信側を「ソース」受信側(たち)を「レシーバ」といいますが、ソースから各レシーバに対する最短パスのツリー(SPTという)を形成します。

mcast01.jpg

・共有ツリー。

ソースツリーだとソースの数だけツリーがある(?)ので場合によっては大量のツリーを管理しなくてはなりません。共有ツリーならば複数のソースがツリーを共有するのでメモリへの負担は軽減します。ただし、最適の経路を通るとはかぎりません。

mcast02.jpg

で、これらのツリーを形成するには「マルチキャストルーティングプロトコル」を利用します。
主なカテゴリと代表的なプロトコルとして
・Denseモード・・・稠密(ちゅうみつ) DVMRPやPIM-DM
・Sparseモード・・・希薄(きはく) PIM-SMやCBT
・Linkstate・・・MOSPF

があげられます。
これらを使って、ツリーを形成しパケットを複製してそれぞれのレシーバにパケットを送ります。
一般的にはDenseモードはソースツリーを形成し、Sparseモードは共有ツリーを形成します。

Denseモードとは稠密なという意味のとおりホストが密集している場合(たとえばLAN)に主に用います。
Flood and Pruneという動作によってツリーを形成します。つまり、とりあえず複製してどかどかパケットを送る・・・処理するホストがない場合、ルータがPrune(除外)、メッセージを送ります。これを連続して行うと関連するホストだけを巻き込むツリーができます。

Sparseモードは逆の考え方で、必要なルータだけを巻き込みます。明示的にJoin(参加)メッセージを送り、マルチキャストツリーに参加を表明します。これによって余計なパケットを流さずにツリーを形成できますが、設定が複雑になります。おもにホストがまばらに存在する場合に使用します。

リンクステートはソースツリーを用いますが、Denseモードと異なりflood and pruneは用いません。グループメンバー(レシーバになる)の場所を識別するリンクステート情報を交換することによってツリーを形成します。


だいぶ駆け足ですが、マルチキャストの概要について学習しました。
次はIGMPについて学習していきます。ここらへんはWrittenExamで重要になってきますね。
試験にでますよー。たぶん。(笑

By kyo @ 08:13 PM | CCIE R&S | コメント (0) | トラックバック (0)

コメント

コメントを書く







名前、アドレスを登録しますか?




トラックバック

このエントリーのトラックバックURL:
http://www.n-study.com/mt/mt-tb.cgi/803