web-dev-qa-db-ja.com

Mac OS XでWi-FiからTAPへの接続をブリッジするにはどうすればよいですか? (エミュレーターQEMUの場合)

Wi-Fi接続とエミュレーターの間にブリッジをセットアップしようとしています( [〜#〜] qemu [〜#〜] )。ホストと同じLAN上に、独自のIPアドレスを持つ仮想マシンが必要です。

QEMUではTAP(仮想ネットワークデバイス)を使用する必要があるため、 tuntaposx をインストールして実行し、TAPを使用してQEMUを開くことができます。

qemu-system-arm -kernel zImage.integrator -initrd arm_root.img -m 256 -net nic -net tap,ifname=tap1 -nographic -append "console=ttyAMA0" 

QEMUがTAPインターフェースを開いたら、ブリッジを構成するスクリプトがあります。

sysctl -w net.link.ether.inet.proxyall=1
sysctl -w net.inet.ip.forwarding=1
sysctl -w net.inet.ip.fw.enable=1
ifconfig bridge0 create
ifconfig bridge0 addm en1
ifconfig tap1 0.0.0.0 up
ifconfig bridge0 addm tap1
ifconfig bridge0 up

VMに手動でIPを設定すると、VMからホストにpingできますが、ホストからVMにpingできません。また、ネットワークの他の部分にアクセスできません。 VM-IP overDHCPを設定できないことを含む。

何か案は?

6
penx

Natdデーモンを実行し、そのトラフィックを許可するようにファイアウォールを構成するという2つの重要な手順を忘れています。

natd -interface en0 ipfw add divert natd ip from any to any via en0

en0は私のwifiインターフェース(macbook air)であり、これは魅力のように機能します。提案されたopenvpnソリューションは明らかに複雑です。

非常に具体的にしたい場合は、natdをより複雑な方法で実行することもできます(例:#fancy:natd -alias_address 10.0.0.2 -interface en0 -use_sockets -same_ports -unregistered_only -dynamic -clamp_mss)が、上記は機能します。

プロセス全体の詳細は http://en.blog.guylhem.net/post/88201449689/running-qemu-with-tap0-and-nat-under-osx-10-9-maverick

1
guylhem

-netdev tap、id = xxx、ifname = tap0 -device e1000、netdev = xxx。デバイス固有が必要であり、カーネルがそれをサポートしていることを確認してください。Intele1000はユニバーサルにサポートされている必要があります。 x86 VMを実行しているMacでブリッジの問題を修正しました。インターネットに接続する必要がないため、私の場合は、ホストネットワークで複数のVM)を接続するだけです。だから私はaddmen0をしませんでした。PSはaddmスクリプトを持っていることを忘れないでください、qemu-netdevタップはあなたにこのエラーを警告します。これがあなたの問題を解決することを願っています。

0
Tong Xing