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


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

Inilah prosedur yang saya ikuti sejauh ini:

  1. Matikan fitur Server DHCP jaringan Hanya-Host yang akan digunakan dalam pengaturan ini
  2. Ubah alamat IP yang ditetapkan ke host ke 192.168.56.254
  3. Buat mesin tamu dengan 2 kartu antarmuka jaringan (NIC)
  4. Konfigurasikan NIC 1 untuk menggunakan NAT
  5. Konfigurasikan NIC ke-2 untuk menggunakan Hot-Only Networking
  6. Instal OS (Ubuntu Server 13.10) pada masing-masing
  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. Reboot

Ketika tamu boot lagi, jaringan Host-Only berfungsi dengan baik. Pasangan tuan rumah / tamu dan tamu / tamu dapat melakukan ping satu sama lain, namun Internet tidak berfungsi apt-get gagal.

Jika saya kemudian mengeluarkan service networking restart komando, jaringan mulai bekerja sebagaimana mestinya.

Apa yang saya lakukan salah?

Saya telah mencoba mengubah urutan munculnya NIC di /etc/network/interfaces mengajukan. Saya juga 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 telah mencoba hal yang sama di Mac OS X dengan hasil 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

Perbarui 2:

Setelah saya jalankan sudo service networking restart, keluaran dari route -n menjadi:

$ 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?


18
2018-04-10 22:11


asal




Jawaban:


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

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

Tanpa mengetahui lebih lanjut, ini adalah sedikit tembakan di kegelapan, tetapi tebakan saya adalah bahwa baik a) Anda tidak mendapatkan alamat DHCP pada eth0, atau b) pengaturan gateway untuk eth1 mengacaukan rute default DHCP yang ditetapkan.

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

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

Edit: Untuk memastikan Anda tidak memiliki gateway pada eth1 setelah reboot, hapus garis 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 jalur gateway di file antarmuka Anda.


14
2018-04-10 23:59



Saya telah menambahkan diagnostik seperti yang Anda sarankan. Saya kira jawaban yang benar adalah (b), yaitu, pengaturan gateway untuk eth1 mengacaukan rute default DHCP yang ditetapkan. Apakah ada solusi untuk ini? - Umar Farooq Khawaja
Saya telah mengedit jawaban saya untuk menunjukkan cara blok eth1 Anda akan terlihat di file antarmuka. Anda tidak memerlukan jaringan atau saluran siaran, dan Anda tidak perlu memiliki jalur gateway. Hapus ketiga. - jkt123
Brilian, terima kasih! Itu disortir. - Umar Farooq Khawaja


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

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

Di host - temukan ip antarmuka "host-only"

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

Di dalam tamu, edit / etc / network / interfaces. Triknya adalah membalik urutan  eth1 (host-only) hadir 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.


3
2017-11-20 08:51