この記事は、NetBSD Advent Calendar 2024の3日目の記事です。
qemuで使うブリッジネットワークを用意したい
qemuで仮想マシンを使ってみるときには、qemuのユーザーネットワークが手軽ですが、ホスト側からアクセスしようとすると、自由度が低く面倒です。
そうなると、tap(4)とbridge(4)を使って、ホストと同じネットワークに接続したくなります。
私が通常使っているラップトップPCには、内蔵のEthernetデバイスはありません。
そして、過去にcdce(4)でしか認識されず、ure(4)としては認識されないUSB-Ethernetアダプターを使っていたのもあって、
以下のように/boot.cfg
に設定しています。
これにより、滑てのure(4)なデバイスがcdce(4)なデバイスとして認識されます。
# cat /boot.cfg (snip) userconf=disable ure* (snip)
ところが、cdce(4)として認識されているUSB-Ethernetデバイスをブリッジネットワークに参加させようとすると、 どうやっても通信ができないようでした。 もしかしたら、私のラップトップPCのxhciのせいかもしれませんが…。
ブリッジネットワークを設定する
The NetBSD guideのConfiguring bridged networking on a NetBSD host に記載のように、以下のようにすれば、ブリッジネットワークを設定できるはずです。 私は、以下のようにcdce(4)で設定してみました。
# ifconfig tap0 create # ifconfig tap0 descr "NetBSD VM" up # ifconfig bridge0 create # ifconfig bridge0 descr "LAN VM bridge" up # brconfig bridge0 add tap0 add cdce0
これで、qemuの仮想マシンを起動させても、そこで動かしているNetBSDから外のホストと同じネットワークにはアクセスできませんでした。 その時、以下のようにカーネルをエラーを出していました。
cdce0: watchdog timeout cdce0: usb error on tx: IOERROR cdce0: watchdog timeout cdce0: usb error on tx: IOERROR cdce0: watchdog timeout cdce0: usb error on tx: IOERROR
とりあえずure(4)として使えばブリッジネットワークは構築できますが、同じ状態の人がいたら、参考になればと思います。
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。