[BitVisor-devel:23] Re: BitVisorのPRO1000によるデバッグメッセージの出力について
Hideki EIRAKU
hdk @ igel.co.jp
2011年 9月 5日 (月) 18:08:21 JST
イーゲル 榮樂です。
From: Shougo Matsushita <shougo @ softlab.cs.tsukuba.ac.jp>
Subject: [BitVisor-devel:22] BitVisorのPRO1000によるデバッグメッセージの出力について
Date: Mon, 5 Sep 2011 16:43:34 +0900
> 筑波大学 ソフトウェア研究室の松下正吾です。
> 以下が現在の状態です。
> defconfigは
> config.vmm.tty_pro1000 = 1,
> config.vmm.tty_pro1000_mac_addressにMacアドレスを代入しています。
> Macアドレスについては、
> $ ifconfig
> からHWaddrにより分かるものを代入しています。
> 例えば、FF:80:FF:55:FF:FF
> という表示なら、
>
> tty_pro1000_mac_address = {
> 0xFF, 0x80, 0xFF, 0x55, 0xFF, 0xFF,
> },
> としています。
> もしかすると、この指定方法は間違っていて、バイトを転置しないといけないのかもしれません。
MAC アドレスのバイト列を並べ替える必要はありません。
> BitVisorの起動には、login-simpleを使用しています。
> そのため、boot/login-simple/bitvisor.confを修正しています。
> 修正した設定は、
> vmm.tty_pro1000=1
> vmm.tty_pro1000_mac_address=Macアドレス
> vmm.driver.vpn.PRO100=1
> vmm.driver.vpn.PRO1000=1
> です。
vmm.driver.vpn.PRO100 はログ出力機能と関係がありません。
> 受信用のプログラムは、drivers/vpn/PRO1000.cに書いてあるPerlプログラムをそのまま使用しました。
>
> BitVisorを起動して確認してみたところ、Perlプログラムで受信ができませんでした。
> シリアルポートには出力されます。
>
> デバッグメッセージにより、tty_pro1000が初期化されていることは確認しました。
> pro1000のput_char関数も呼ばれています。
> BitVisorがネットワークデバイスを占有しているため、ホストOSからネットワークに接続することはできないことも確認をしました。
vmm.driver.vpn.PRO1000 と vmm.tty_pro1000 を同時に 1 にした場合、
vmm.driver.concealPRO1000 を 1 にしない限りネットワークデバイスは隠蔽さ
れません。この場合、ネットワークへのログ出力は、ゲスト OS によりネット
ワークデバイスが初期化された後で開始されます。
ゲスト OS のネットワーク接続は、VPN の設定に依存します。サンプルの
bitvisor.conf.tmpl に含まれている設定のままであれば、ゲスト OS には
DHCP で 192.168.100.1 という IPv4 アドレスが割り振られます。VPN を使い
たくない場合は、vpn.mode を L2Trans に設定しておきます。いずれにしても、
ゲスト OS 側でネットワーク接続を確立 (link up) するまで、ログは出力され
ません。
vmm.driver.concealPRO1000 を 1 にするか、vmm.driver.vpn.PRO1000 を 0 に
すると、ネットワークデバイスが隠蔽され、BitVisor が起動時に初期化を行い、
起動時からログ出力が行われます。ただし、現在リリースされている
BitVisor の初期化コードには問題があるため、このモードで正常に動作するの
はデスクトップ用の一部モデルに限られています。
> シリアルポートの出力を見たところ、VPN Logが大量に流れています。VPN自体は有効になっているようです。
ログがうまく受信できない場合は、送信側と受信側の PC を直結状態にして、
受信側でネットワークのパケットキャプチャーをしてみると良いです。この場
合は、VPN を確立しようとするためのパケットと、ログのパケットの両方が流
れているはずです。そのようなパケットが届かない場合は、送信側に問題があ
ると考えられます。
パケットが届いているようであれば、受信側の問題が考えられます。パケット
は UDP/IP で、送信元 IPv4 アドレス:ポートが 0.0.0.0:10、送信先 IPv4 ア
ドレス:ポートが 224.0.0.1:10101 になっています。iptables やその他のしく
みでフィルタリングされていないか確認します。
バージョン 1.0.1 までは送信元 IPv4 アドレスを 10.10.10.10 としていたた
めに、ネットワークが異なる一部の環境で正常に受信できないという問題があ
りました。このため、バージョン 1.1 で、0.0.0.0 に変更されています。
--
Hideki EIRAKU <hdk @ igel.co.jp>
BitVisor-devel メーリングリストの案内