web-dev-qa-db-ja.com

ホストオンリーを使用してMacOSXでVirtualboxvmにインターネット接続を共有する方法

1行で:次の可能性があります:AirMac <-Mac OSXブリッジ-> vbox-ホストのみ-> VM

Mac OS Xでは、仮想マシンで VirtualBox を使用しています。今のところ、仮想マシン用に2つのインターフェイスを構成しました。 eth0は、私のVMがインターネットにアクセスするための通常のブリッジです(AirPortが接続されている場合))。eth1はホストのみに設定されているため、Wi-Fi/AirPortがダウンしていないときにホストからVM)にアクセスできます。したがって、基本的にはWi-Fiがある場合はアダプター1のようになります。 、ない場合はアダプタ2。

簡単にするために、構成を1つだけにしたいのですが。ホストのみの構成を維持できると思いました。ホスト(Mac OS X)でインターネット共有に移動し、[AirPortから共有]を選択してvboxnet0(vb仮想インターフェイス)に移動します。 vboxnet0がMacOSX設定のインターフェイスリストに表示されないことを確認するためだけに。

Linuxホストでは、bridge-utilsと呼ばれるものをインストールし、それを使用して2つのインターフェイスをブリッジできることを知っています。 Mac用にそのようなものはありますか?

4
redben

これは実際には非常に簡単に実現できますが、ネットワークとルーティングに関するある程度の技術的知識が必要です。

何らかの形式のNATを使用して、ホストのみのネットワークをネットワークの残りの部分にリンクすることは可能ですが、いわゆる「ダブルNAT」は嫌われます。ダブルNATは、ネットワークアドレス変換がネットワークで2回発生し、ネットワークを介して送信されるパケットに余分なオーバーヘッドが追加される場合です。可能な限り回避する必要があります。

あなたが達成しようとしていることは、NAT何も必要とせずに、非常にうまく行うことができます。

基本的に、理論は、ホストのみのネットワークである別のネットワークを作成し、MacでIP転送をオンにして、空港で静的ルートを設定するというものです。

通常のネットワークが192.168.1.0/24で、空港が192.168.1.1にあり、Macが192.168.1.200にあるとします。これを機能させるには、Macでは静的IPアドレスが必要です。ホストオンリーネットワークにはすでにIP範囲が割り当てられています。議論のために、Macが10.0.0.1で終了し、VM 10.0.0.8に。

だから私たちは達成したい:

Airport <--------------------> Mac <----------------------> VM
192.168.1.1       192.168.1.200 |10.0.0.1             10.0.0.8

MacでIP転送をオンにするのは簡単なことです。 10.5以下を使用している場合は、/ etc/hostconfigファイルを探して、IP転送の行を見つけ(正確に手元にないものを忘れています)、YESに設定します。 OS/Xの他のすべてのバージョン、および実際には10.5以下では、/ etc/sysctl.confを変更して、以下を追加できます。

net.inet.ip.forwarding=1

これが完了したら、(rootとして)次のように入力することで、再起動せずに転送をオンにできます。

sysctl -w net.inet.ip.forwarding=1

これで、ネットワークパケットがメインネットワークからホストオンリーネットワークに到達できるようになりました。しかし、このホストオンリーネットワークについてネットワークの他の部分にどのように伝えるのでしょうか。現時点では、Macだけがそれを知っています。

さて、これも簡単なことです。ネットワーク上のすべてのホストにそのことを伝える必要はありません。すべてのデバイスに共通する1つの呼び出しポイント(デフォルトゲートウェイ)、この場合は空港だけです。

今は空港を利用していないので、どこで設定を変更すればいいのかわかりませんが、施設はどこかにあります。

静的ルートを指定できる設定を探しています。そのように、またはルーティングテーブルまたは同様のものとしてラベル付けされる場合があります。それを見つけたら、Macを介してホストオンリーネットワークのルートを設定する必要があります。これは、Macで静的アドレスを持つことが不可欠な場所です。設定する必要のあるルートは、次の設定のようなものを使用します(上記の例から。番号を実際のIPアドレスとネットワークマスクに置き換えます)。

Network: 10.0.0.0        Network address of the Host Only network
Netmask: 255.255.255.0   Netmask of the Host Only Network
Gateway: 192.168.1.200   IP address of your Mac.

そのルートを設定すると、ホストオンリーネットワーク宛てのトラフィックは最初に空港に送られ、空港は次のように応答します"実際、あなたは私と話したくない、あなたは話したいto 192.168.1.200 "すると、トラフィックはMacにリダイレクトされ、Macはホストオンリーネットワークに転送します。

確認すべき他の唯一のことは、VMで実行されているゲストオペレーティングシステムには、ネットワーク用にデフォルトゲートウェイが設定されていることです。これは、Macのホストオンリーネットワーク(10.0)の端である必要があります。上記の例では.0.1)。

では、これはどのようにしてインターネット上でVMを取得するのでしょうか?非常に単純です。事実上、ネットワークを拡張してホストオンリーネットワークを含め、残りはルーター(Airport)が処理します。 NATを処理し、メインネットワーク用のトラフィックとホストオンリーネットワーク用のトラフィックを認識します。

5
Majenko