新規作成  編集  差分  v6活用研究会's Wiki  ページ一覧  検索  更新履歴  編集履歴  RSS  ログイン

IPv6なマルチキャストを試してみる

JGNIIを使っていろいろ実践している方から「IPv6のマルチキャストはとっても使いやすい」というお話をうかがったので,ちょっと試してみようかな…と,まぁ,そんな感じです。

なお、本文中でのアドレスはIPv6ドキュメント用アドレス (2001:DB8::/32)に置き換えており、実際に私たちが実施したものとは異なりますが、その点はご了承ください。

流れ

  • 環境準備
  • まずはダイナミックルーティング
  • IPv6マルチキャスト実践

環境準備

これまでと違いルータなど機器が少し必要になります。 まずはこの準備から。

  • ルータ用PC1(hosta)
    • CompaqEvoD510MT
    • FreeBSD 5.4
      • BIOSのDMA転送を無効にしてインストール
    • PCIによりNICを増設
      • fxp0(オンボード), fxp1(増設インタフェース)
  • ルータ用PC2(hostb)
    • CompaqEvoD320ST/CT
    • FreeBSD 5.4
    • PCIによりNICを増設
      • fxp0(オンボード), fxp1(増設インタフェース)
  • DVTS受信用PC
    • MobilePentiumIII 1.2GHz(Mem 384MB, OS Windows2000) なPCでも十分にDVTSを受けて表示できることを確認
    • CPU使用率は50%弱
    • Windows2000にIPv6を導入する手順にしたがってIPv6化し,http://www.sfc.wide.ad.jp/DVTS/software/win2000/ からWin XP用のDVTSを持ってきてインストールすればIPv6での通信ができることも確認しました。
      • 追記まったく同じハードウェア構成,OSなPCにインストールしてみましたが、うまく動きませんでした。何かライブラリが必要なようです。

まずはダイナミックルーティング

恥ずかしながらIPv6に関してはスタティックなルーティングしか設定したことがありません。ということで最初はダイナミックルーティングを試すことからしたいなぁ,と。 OSPFなどはやらず、RIPngだけですが試してみました。

ネットワーク構成

RIPng.png

設定

hosta

/etc/rc.confに以下を追加

ipv6_enable="YES"              # IPv6を有効に
ipv6_gateway_enable="YES"      # ゲートウェイになる
ipv6_router_enable="YES"       # ルーティングデーモン(デフォルトではroute6d)を起動
ipv6_router_flags="-s"         # スタティックルートをRIPngでアドバタイズ
                               # スプリットホライズンを有効に
rtadvd_enable="YES"            # ルータアドバタイズメントを有効に
rtadvd_interfaces="fxp0 fxp1"  # fxp0,1の両方でルータアドバタイズメントを話す
ipv6_ifconfig_fxp0="2001:d8b:0:101::1/64"
ipv6_ifconfig_fxp1="2001:d8b:0:102::1/64"

hostb

/etc/rc.confに以下を追加

ipv6_enable="YES"              # IPv6を有効に
ipv6_gateway_enable="YES"      # ゲートウェイになる
ipv6_router_enable="YES"       # ルーティングデーモン(デフォルトではroute6d)を起動
ipv6_router_flags="-s"         # スタティックルートをRIPngでアドバタイズ
rtadvd_enable="YES"            # ルータアドバタイズを有効に
rtadvd_interfaces="fxp1"       # fxp1にのみルータアドバタイズメントを話す
ipv6_ifconfig_fxp0="2001:d8b:0:102::2/64"
ipv6_ifconfig_fxp1="2001:d8b:0:103::1/64"

余談(?)

  • スタティックルーティングだけならipv6_gateway_enableをYESにすればルーティングしてくれそうなのに、ipv6_router_enableもYESにしないといけないのが気持悪いと思っていたけど、ipv6_router_flagsを何も指定しなければroute6dが何もしないんでそれほど気持悪くないような気もしてきた。
  • IPv6では同じリンク内に2つ以上のサブネットをつくることも認められているそうなので、リンクとサブネットという言葉の使い方には気をつけなくちゃいけない。
    • いままで書いていた部分は意識していなかったけど…大丈夫かな?

試したこと

  • 両端のネットワーク(ネットワーク1,ネットワーク3)のPCで、お互いに通信できることを確認
    • route6dがとまっていると通信できないことも確認
    • DVTSをIPv6で使えることも確認
  • hostbでfxp0側にRAをしゃべらせてネットワーク2にPCをつないだ場合の挙動をチェック
    • hosta,hostbどちらのプレフィックスをもらっても同じなので問題なし
    • WindowsXPでは両方のルータがdefault routeに設定された
    • FreeBSDだとどうなるかは未確認

やり残したこと

不必要なネットワークにRIPngを話している

hostaでは/etc/rc.confのipv6_router_flagsを

ipv6_router_flags="-s -N fxp0"

hostbでは

ipv6_router_flags="-s -N fxp1"

とすればOKだと思う。

RIPngの観察

  • RIPngのアドバタイズメントパケットの内容
    • リンクローカルRIPルータアドレス(ff02::9)へのパケットの確認
  • アドバタイズのタイミング(30秒ごと)
    • どこかのネットワークでRIPngのrequestパケットがブンブン飛んでるのを見た記憶があるんだけど、RIPngってrequestなしでも時間でちゃんとアドバタイズよね…多分。
  • タイムアウト(180秒?)やそのときメトリックが16(??)に設定される様子
    • さらに120秒後にテーブルから消えるはず

などは見ておきたかった。

RIPng情報

マルチキャスト実践

FreeBSDならportsにあるpim6ddで割と簡単にできそうです。 問題はマルチキャストで使うアプリケーションをどうするかですが, 当面は手近にあるDVTSででもやっていきましょう。

今日(Oct./12/2005)は負けでした

  • 今日は1時間しかなかったし
  • 各ルータでpim6ddを動かしてDVTSからマルチキャストで送り出せばいいと思っていたが、MLD等まったくしゃべっていないようだった。
    • DVTSの使い方が間違っていたように思う
    • win版のDVTSでマルチキャストの送り出しはできないようです(人から聞いた話ですので要確認)
      • (後日談) 送り出し側がMLDをしゃべっていないのはそれで正常だったみたい、受信側がうまく動いていなかったのはwin2000でためしていたからと、ルータのpim6ddがとまっていた疑いアリ。
    • FreeBSDなノート(webサーバとIP6FWに使ったやつ)にDVTSを入れて送り出してみましょう。
      • 受け側はwinでも大丈夫だと思います。(だってメニューにあるんだし)
      • そういえばwinなPCからマルチキャスト送信した(つもりだった)ときにwindowsのファイアウォールがブチブチと文句を言っていましたが、あれは受信しようとしてMLDをしゃべっていたんじゃないかと想像しています。
  • リベンジはOct./24の予定

DenseモードはOK

長くなりそうなので別のページにしました。

メモ

更新日時:2005/11/14 00:51:08
キーワード:
参照:[おかやま国体全国配信実験レポート] [v6活用研究会's Wiki]