VirtualBoxで静的IPアドレスを使用してNATおよびホストオンリーネットワークをセットアップする方法


22

VirtualBoxでゲストのセットを設定して、各ゲストがインターネットにアクセスできるだけでなく、相互およびホストから見えるようにします。また、ゲストに静的IPアドレスが必要です。

これまで私が従った手順は次のとおりです。

  1. このセットアップで使用するホストオンリーネットワークのDHCPサーバー機能をオフにします。
  2. ホストに割り当てられたIPアドレスを192.168.56.254に変更します
  3. 2枚のネットワークインターフェイスカード(NIC)を備えたゲストマシンを作成する
  4. NATを使用するように最初のNICを構成する
  5. ホットオンリーネットワークを使用するように2番目のNICを構成する
  6. OS(Ubuntu Server 13.10)をそれぞれにインストールします
  7. OSを更新する
  8. / etc / network / interfacesを編集して、次のようにネットワークを構成します
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

auto eth1
iface eth1 inet static
address 192.168.56.1
netmask 255.255.255.0
network 192.168.56.0
broadcast 192.168.56.255
gateway 192.168.56.254
dns-search cloudspace.local
dns-nameservers 8.8.8.8 8.8.4.4
  1. ファイルを保存する
  2. リブート

ゲストが再度起動すると、ホストオンリーネットワークは正常に機能しています。マシンのホスト/ゲストとゲスト/ゲストのペアは相互にpingを実行できますが、インターネットはapt-get障害として機能していません。

その後、service networking restartコマンドを発行すると、ネットワークは正常に機能し始めます。

私は何を間違えていますか?

NICが/etc/network/interfacesファイルに表示される順序を切り替えてみました。また、2つのNIC間でNAT /ホストオンリーネットワークを交換しました。何も機能しませんでした。

ホストはWindows 8.1で、ゲストはUbuntu Server 13.10です。Mac OS Xでも同じことを試みましたが、結果は似ています。

私はこれで助けていただければ幸いです。

更新:

診断に役立つように、以下の以下のコマンドからの出力を含めました。

  • cat / etc / network / interfaces
  • ifconfig -a
  • ルート-n
$ cat /etc/network/interfaces
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

auto eth1
iface eth1 inet static
address 192.168.56.1
netmask 255.255.255.0
network 192.168.56.0
broadcast 192.168.56.255
gateway 192.168.56.254

$ ifconfig -a
eth0      Link encap:Ethernet  HWaddr 08:00:27:75:47:64
          inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe75:4764/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1180 (1.1 KB)  TX bytes:1332 (1.3 KB)

eth1      Link encap:Ethernet  HWaddr 08:00:27:93:98:d8
          inet addr:192.168.56.1  Bcast:192.168.56.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe93:98d8/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:140 errors:0 dropped:0 overruns:0 frame:0
          TX packets:225 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:14418 (14.4 KB)  TX bytes:27378 (27.3 KB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:16 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1184 (1.1 KB)  TX bytes:1184 (1.1 KB)

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.56.254  0.0.0.0         UG    0      0        0 eth1
10.0.2.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.56.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1

アップデート2:

を実行するsudo service networking restartと、からの出力は次のようにroute -nなります。

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.0.2.2        0.0.0.0         UG    0      0        0 eth0
10.0.2.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.56.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1

それでは、ブート時にこの構成をどのように確認しますか?

回答:


16

外部アドレス(使用しているGoogle DNSサーバーなど)、現在のネットワーク設定、ルーティングテーブルをpingしようとしたときに得られた結果を投稿すると、問題のトラブルシューティングが容易になります。

/sbin/ifconfig -a
/sbin/route -n

これを知ることなく、これは暗闇の中で少しのショットですが、私の推測では、a)eth0でDHCPアドレスを取得していない、またはb)eth1のゲートウェイ設定が割り当てられたデフォルトルートDHCPを台無しにしていると推測します。

eth0のDHCPアドレスを取得していない場合は、おそらくVirtualBoxでの構成の誤りです(アダプターを逆方向に取得しているなど)。

いずれにしても、eth1にDHCPによって割り当てられるため、eth1に特別に割り当てられたゲートウェイまたはDNS設定は必要ありません。したがって、ゲートウェイ、dns-search、およびdns-nameservers行を構成から削除します。仮想マシンは、同じネットワーク上にあり、VirtualBoxが正しく設定されている場合、ゲートウェイ設定なしで通信できます。

編集:再起動後にeth1にゲートウェイがないことを確認するには、eth1ブロックから次のように行を削除します。

auto eth1
iface eth1 inet static
address 192.168.56.1
netmask 255.255.255.0

完了したら、interfacesファイルにゲートウェイ行はありません。


あなたが提案したように診断を追加しました。正しい答えは(b)、つまり、ゲートウェイ設定eth1が割り当てられたデフォルトルートDHCPを台無しにしていると思います。これに対する解決策はありますか?
ウマルファルークカワジャ14

1
回答を編集して、eth1ブロックがinterfacesファイルでどのように表示されるかを示しました。ネットワークやブロードキャスト回線は必要ありません。また、ゲートウェイ回線は必要ありません。これら3つを削除します。
jkt123 14

3

@ jkt123の回答と@Umarの質問と同じですが、より短いこのソリューションを思いつきました。フィードバックをお願いします!

virtualboxで、NATとホストオンリーネットワークの両方を有効にします。(ところで:それは私のwin7ホストで動作します。Linuxホストでそれを行う方法がわかりません)。

ホスト上- 「ホストオンリー」インターフェースのIPを見つけます

ipconfig /all     # for windows host
ifconfig -a       # for linux host

ゲストで、/ etc / network / interfacesを編集します。トリックは eth1(ホストのみ)がeth0(インターネット/ dhcp)の前に来る順序逆にすることでした。理由はわかりません。

auto lo                        # keep the original loopback settings
iface lo ...                   # yeah, i don't remember, just keep it.

# ----> Ok, this is my addition <-----
auto eth1                      
allow-hotplug eth1             # i think hotplug it helps. not sure.
iface eth1 inet static
address 192.168.56.100         # arbitrary IP address between 2 and 254

auto eth0                      # This is the original content
iface eth0 inet dhcp           #  of this file, now at the end.

リブート。


0

まず、DHCPを使用したネットワークNATとを使用したホストオンリーネットワークの両方を有効にしましたstatic ip add 192.168.40.41

次に、このコマンドを使用しました:

nano cat /etc/network/interfaces

私はこの結果を得ました:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

auto eth1
iface eth1 inet static
address 192.168.41.4
netmask 255.255.255.0

再起動する前に、次のコマンドを入力しました。

sudo service networking restart

その後、再起動しました。

VM VirtualBoxにロードした後、両方のネットワークが機能しています。インターネットに接続でき192.168.40.41、Webブラウザー経由で接続できます。

これがnanoエディターを取得するのに役立つことを願っています:

sudo apt-get update
sudo apt-get install nano

次にnano、ターミナルを入力して起動します。


0

異なるNICに割り当てられた複数のデフォルトゲートウェイがあります。一般に、「デフォルト」は事前に選択されたオプションを意味します。この場合、指定されたデフォルトゲートウェイが両方のNICに定義されている場合、事前に選択されたオプションではありません。また、これにより、非同期ルーティングなどの通信の問題も発生します。両方のインターフェイスのメトリックがどのように0に設定されているかはわかりませんが、両方のNICにゲートウェイがあることが原因である可能性があります。これに関するMicrosoftの記事はここにあり、メトリック機能には、優先順位を設定するための決定方法を提供するいくつかの要素があります。(リンク:https : //support.microsoft.com/en-us/help/299540/an-explanation-of-the-automatic-metric-feature-for-ipv4-routes

回答済みの応答で@ jkt123に同意すると、割り当てる必要があるデフォルトゲートウェイは1つだけです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.