Tại sao hai máy ảo của tôi nhận được cùng một địa chỉ IP?


31

Tôi có hai máy ảo đều chạy trên máy chủ Linux (Fedora 16). Tôi đặt cả hai bộ điều hợp như gắn liền với NAT. Khi tôi khởi động chúng, cả hai đều có cổng mặc định được đặt thành 10.0.2.2. Cả hai cũng có cùng một địa chỉ IP (10.0.2.15). Cả hai đều trên cùng một bộ chuyển đổi (bộ chuyển đổi 1). Tôi không biết tại sao họ lại được gán cùng một địa chỉ IP và không nên là cổng mặc định 10.0.2.1vì địa chỉ mạng con là 10.0.2.0và netmask là 255.255.255.0. Có điều gì tôi đang thiếu, điều này đã xảy ra với bất cứ ai trước đây? Làm cách nào để VirtualBox DHCP hoạt động bình thường?


2
Điều đó là không cần thiết, có thể tạo một mạng NAT ảo "thật" trong đó nhiều VM phải được gán địa chỉ IP khác nhau dựa trên địa chỉ MAC được ảo hóa và về cơ bản, VM có thể nhìn thấy nhau đằng sau mạng NAT Hầu như toàn bộ mạng con phía sau giao diện NAT. Tùy thuộc vào lựa chọn của bạn trong cấu hình bộ điều hợp mạng, nếu "NAT" được chọn, NAT là mối quan hệ một trên một máy chủ / vm, nếu "Mạng NAT" được chọn, thì đó là mối quan hệ máy chủ / mạng con trong đó mỗi VM trên mạng ảo sẽ phải có các địa chỉ IP khác nhau.

Tôi đã trả lời một câu hỏi tương tự ở đây
Mian Asbat Ahmad

Câu trả lời:


22

VirtualBox DHCP đang hoạt động đúng.

Không có gì sai khi tất cả các máy của bạn có cùng một địa chỉ trong cấu hình NAT. Tất cả các VM được cách ly với nhau nên không có nguy cơ xung đột. Họ cũng không phải trên cùng một bộ chuyển đổi. Mỗi VM có phần cứng ảo hóa riêng bao gồm cả các NIC.

Cổng mặc định cũng không cần phải là 10.0.2.1. Mặc dù đó là một thực tế phổ biến để có nó ở địa chỉ IP thấp hơn, nó có thể là bất kỳ IP nào trong phạm vi mạng con.

Ngoài ra, không có dịch vụ dhcp "thực", mọi thứ đều được mã hóa cứng trong mã VirtualBox, mặc dù nếu bạn không hài lòng với các địa chỉ IP mặc định, bạn có thể tinh chỉnh bộ máy NAT .


Xin chào @jlliagre, đây có phải là hành vi thực sự được mong đợi không? Theo tôi hiểu, nếu tất cả các VM được gán cùng một địa chỉ IP, chúng sẽ không thể sử dụng giao diện mạng này để liên lạc, phải không? Nếu vậy, bạn đang tuyên bố rằng đối với một loạt các VM, nếu mỗi trong số chúng chỉ có một bộ điều hợp NAT duy nhất, theo mặc định chúng không thể giao tiếp.
Chỉ là người học

1
@OgrishMan Vâng, đây là hành vi dự kiến. Đó là một trong những lý do chính của NAT. Nó cho phép nhiều máy sử dụng cùng một địa chỉ IP cục bộ. Họ không thể giao tiếp trực tiếp, giống như máy tính xách tay của tôi có 192.168.1.4 vì địa chỉ IP không thể giao tiếp với thiết bị của bạn, có thể sử dụng cùng một địa chỉ IP. Lý do chính tại sao họ không thể giao tiếp là vì dù sao họ cũng ở các mạng LAN khác nhau. Các máy chỉ sử dụng giao diện NAT chỉ có thể giao tiếp với nhau thông qua cổng bên thứ ba bên ngoài hoặc sử dụng ánh xạ cổng ngược ở cấp máy chủ.
jlliagre

Cám ơn vì đã giải thích! Tôi nghĩ bây giờ tôi đã rõ.
Chỉ là một người học

7

Trong bảng điều khiển VirtualBox, đi tới Tệp -> Tùy chọn -> Mạng

Chọn tab NAT Networks, tạo một "NatNetwork" mới bằng cách nhấp vào nút + ở bên cạnh và nhấn OK.

Bây giờ chọn từng VM đi đến Cài đặt -> Mạng

Trong Tùy chọn đính kèm: chọn Mạng NAT và chọn "NatNetwork" và nhấn OK.

Khởi động lại tất cả các VM.

Bây giờ VM có địa chỉ mạng khác nhau.


1
Tôi đang tìm thấy tôi vẫn nhận được cùng một địa chỉ IP bằng cách sử dụng phương pháp này!
áo đậu

6

Các máy ảo của bạn sẽ nhận được cùng một địa chỉ IP từ bất kỳ dịch vụ DHCP nào miễn là chúng có cùng địa chỉ MAC Ethernet (địa chỉ phần cứng, duy nhất giống như dấu vân tay, do nhà sản xuất phần cứng của thiết bị mạng của bạn đặt).

Vì bạn đang chạy các máy ảo, chúng có phần cứng ảo và do đó chúng "giả" địa chỉ MAC. Bạn phải chắc chắn rằng không có hai máy nào có cùng địa chỉ phần cứng Ethernet.

Bạn có thể đặt địa chỉ MAC Ethernet của máy ảo của mình trong VirtualBox trong phần mạng phần cứng (trông giống như sau: 3c: 08: 51: 05: 24: 8a)

Bạn có thể kiểm tra nó trong VM đang chạy của bạn:

sudo ifconfig

en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    options=2b<RXCSUM,TXCSUM,VLAN_HWTAGGING,TSO4>
    ether 3c:08:51:05:24:8a 
    media: autoselect (none)
    status: inactive

2
Máy chủ NAT dhcp được nhúng với VirtualBox không phải là máy chủ thực. Đặc biệt nó không quan tâm đến địa chỉ MAC. Trong mọi trường hợp, nhiều VM có thể có cùng một địa chỉ MAC, điều đó không quan trọng vì các mạng ảo được cách ly hoàn toàn.
jlliagre

2

Họ sẽ nhận được cổng mặc định từ máy chủ dhcp - vì vậy nó sẽ là bất cứ thứ gì được thiết lập trong đó. Bạn sẽ cần nhìn vào máy chủ dhcp để xem nó đang phân phối cái gì (nói chung chỉ cần đặt nó trong cấu hình máy chủ thành bất cứ thứ gì bạn muốn)

Đối với hai bộ điều hợp có cùng địa chỉ, rất có thể đây là cấu hình bạn đã đặt trong Virtualbox. Nếu chúng là bản sao thì bạn có thể cần cung cấp một địa chỉ MAC mới.

Kiểm tra cấu hình mạng cho từng loại và xem chúng có giống nhau không.

Nếu khác, bạn có thể tạm thời đặt IP cố định cho từng IP tại máy chủ dhcp (được gán bởi địa chỉ MAC)

Hãy xem phần này từ hướng dẫn VirtualBox để biết thêm thông tin.


1
Liên kết bạn đã đăng không áp dụng cho NAT.
jlliagre

1

Tôi gặp vấn đề tương tự. Đã gán Adaptor2 cho HĐH khách thứ 2. Địa chỉ Mac và Ip duy nhất được chỉ định cho khách.

nhập mô tả hình ảnh ở đây


0

Hai cài đặt cần phải được thay đổi.

1) Trong hộp VM - Phần mềm máy khách VMware điều khiển thay đổi cài đặt mạng (nghĩa là) thêm một nat mới trên cài đặt mạng. 2) Ở phía máy VM - Làm mới địa chỉ Mac cho từng VM.


-1

mở cài đặt mạng cho mỗi vm, nhấp vào nâng cao> nhấp vào nút làm mới bên cạnh addr mac. Nhận một cái khác nhau trên cả hai và bạn đã hoàn tất


câu trả lời bị đánh giá thấp
elsadek
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.