web-dev-qa-db-ja.com

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

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

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

21

外部アドレス(使用している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ファイルにゲートウェイ行はありません。

15
jkt123

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

Virtualboxでは、NATとHost-onlyの両方を有効にするネットワーク。 (ところで:それは私の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.

リブート。

3
Berry Tsakala

まず、両方のネットワークNATでDHCPを有効にし、ホストのみのネットワークで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に接続できます。

これが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つだけです。

0
Balldigy