Cara mengatur jaringan NAT dan Host-Only dengan alamat IP statis di VirtualBox

22

Saya mencoba untuk mengatur satu set tamu di VirtualBox, sehingga masing-masing dari mereka dapat mengakses Internet serta dapat terlihat satu sama lain dan ke host. Saya juga ingin para tamu memiliki alamat IP statis.

Inilah prosedur yang telah saya ikuti sejauh ini:

  1. Matikan fitur DHCP Server dari jaringan Host-Only untuk digunakan dalam pengaturan ini
  2. Ubah alamat IP yang ditetapkan untuk host menjadi 192.168.56.254
  3. Buat mesin tamu dengan 2 kartu antarmuka jaringan (NIC)
  4. Konfigurasikan NIC pertama untuk menggunakan NAT
  5. Konfigurasikan NIC ke-2 untuk menggunakan Hot-Only Networking
  6. Instal OS (Ubuntu Server 13.10) di masing-masingnya
  7. Perbarui OS
  8. Konfigurasikan jaringan sebagai berikut dengan mengedit / 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. Simpan file
  2. Mulai ulang

Ketika tamu memulai lagi, jaringan Host-Only bekerja dengan baik. Tuan rumah / tamu dan pasangan tamu / mesin dapat saling ping, namun Internet tidak berfungsi sebagai apt-getgagal.

Jika saya kemudian mengeluarkan service networking restartperintah, jaringan mulai berfungsi sebagaimana mestinya.

Apa yang saya lakukan salah?

Saya telah mencoba mengganti urutan tampilan NIC dalam /etc/network/interfacesfile. Saya juga telah menukar NAT / Host-Only Network di antara 2 NIC. Tidak ada yang berhasil.

Tuan rumah adalah Windows 8.1 dan tamu adalah Ubuntu Server 13.10. Saya sudah mencoba yang sama pada Mac OS X dengan hasil yang serupa.

Saya akan sangat menghargai bantuan apa pun dalam hal ini.

Memperbarui:

Saya telah menyertakan output dari perintah berikut di bawah ini, untuk membantu dalam diagnostik:

  • cat / etc / network / interfaces
  • ifconfig -a
  • rute -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

Pembaruan 2:

Setelah saya jalankan sudo service networking restart, output dari route -nmenjadi:

$ 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

Jadi bagaimana cara memastikan konfigurasi ini saat boot?

Umar Farooq Khawaja
sumber

Jawaban:

16

Akan lebih mudah untuk memecahkan masalah Anda jika Anda memposting hasil yang Anda dapatkan ketika mencoba melakukan ping ke alamat eksternal (seperti server Google DNS yang Anda gunakan), pengaturan jaringan saat ini, dan tabel perutean Anda.

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

Tanpa tahu lebih banyak, ini adalah sedikit kesempatan dalam kegelapan, tetapi tebakan saya adalah bahwa a) Anda tidak mendapatkan alamat DHCP pada eth0, atau b) pengaturan gateway Anda untuk eth1 mengacaukan rute default yang ditugaskan DHCP.

Jika Anda tidak mendapatkan alamat DHCP untuk eth0, itu mungkin salah konfigurasi di VirtualBox (seperti membuat adaptor Anda mundur).

Either way, Anda tidak memerlukan pengaturan gateway atau DNS yang ditugaskan khusus untuk eth1 karena itu akan ditugaskan oleh DHCP pada eth0, jadi saya akan menghapus gateway, pencarian dns, dan dns-nameserver baris dari konfigurasi Anda. Mesin virtual Anda masih akan dapat berkomunikasi tanpa pengaturan gateway jika mereka berada di jaringan yang sama dan VirtualBox diatur dengan benar.

Sunting: Untuk memastikan Anda tidak memiliki gateway pada eth1 setelah reboot, hapus baris dari blok eth1 Anda sehingga terlihat seperti ini:

auto eth1
iface eth1 inet static
address 192.168.56.1
netmask 255.255.255.0

Setelah selesai, Anda tidak akan memiliki garis gateway di file antarmuka Anda.

jkt123
sumber
Saya telah menambahkan diagnostik seperti yang Anda sarankan. Saya pikir jawaban yang benar adalah (b), yaitu, pengaturan gateway untuk eth1mengacaukan rute default DHCP yang ditetapkan. Apakah ada solusi untuk ini?
Umar Farooq Khawaja
1
Saya telah mengedit jawaban saya untuk menunjukkan bagaimana tampilan blok eth1 Anda dalam file antarmuka. Anda tidak memerlukan jaringan atau saluran siaran, dan Anda seharusnya tidak memiliki saluran gateway. Hapus ketiga.
jkt123
3

Saya datang dengan solusi ini, yang sama dengan jawaban @ jkt123, dan pertanyaan @ Umar, tetapi lebih pendek. Saya akan menghargai umpan baliknya!

Di virtualbox, aktifkan jaringan NAT dan hanya host . (BTW: Ini bekerja pada host win7 saya. Saya tidak tahu bagaimana melakukannya di host linux).

Pada host - temukan ip antarmuka "hanya host"

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

Di tamu, edit / etc / network / interfaces . Caranya adalah membalik urutan eth1 (host-only) datang SEBELUM eth0 (internet / dhcp). Saya tidak tahu kenapa.

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.

reboot

Berry Tsakala
sumber
0

Pertama-tama, saya mengaktifkan kedua jaringan NAT dengan DHCP dan hanya jaringan host dengan static ip add 192.168.40.41.

Kemudian, saya mengikuti dengan perintah ini:

nano cat /etc/network/interfaces

Saya memperoleh hasil ini:

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

Dan sebelum me-reboot, saya mengetik perintah berikut:

sudo service networking restart

Kemudian reboot.

Setelah saya dimuat ke VM VirtualBox, kedua jaringan bekerja. Saya dapat terhubung ke internet dan saya dapat terhubung 192.168.40.41melalui browser web.

Saya harap ini akan membantu untuk mendapatkan nanoeditor:

sudo apt-get update
sudo apt-get install nano

Kemudian cukup ketik nanoterminal untuk memulainya.

Mirza Mohammed Baig
sumber
0

Anda memiliki beberapa gateway default yang ditetapkan untuk NIC yang berbeda. Secara umum, "Default" berarti opsi yang dipilih sebelumnya. Dalam hal ini, jika gateway default yang ditentukan ditentukan untuk kedua NIC, itu tidak akan menjadi opsi yang dipilih sebelumnya. Selain itu, ini juga akan mengakibatkan masalah komunikasi seperti routing Asynchronous. Saya tidak yakin bagaimana Metrik kedua antarmuka diatur ke 0, tetapi mungkin karena memiliki kedua NIC dengan gateway. Tulisan Microsoft tentang hal ini terletak di sini dan fitur Metrik memiliki sejumlah faktor yang menentukan bagaimana hal itu ditentukan untuk menetapkan prioritas. (Tautan: https://support.microsoft.com/en-us/help/299540/an-explanation-of-the-automatic-metric-feature-for-ipv4-routes )

Dalam perjanjian dengan @ jkt123 dalam respons yang dijawab, hanya ada 1 gateway default yang harus ditetapkan.

Balldigy
sumber