Cấu hình Ubuntu vmware khách NAT


9

Tôi có một máy chủ Windows chạy máy khách Ubuntu VM thông qua vmplayer. Máy ảo đó sẽ được nhân bản, phân phối giữa nhiều người (chạy máy chủ Windows) và được sử dụng để tiến hành một hội thảo lập trình. Tôi đang cố gắng - và cho đến nay vẫn thất bại - để thiết lập mạng để đáp ứng các yêu cầu sau:

  1. Khách phải truy cập internet
  2. Tất cả các bản sao nên có cùng tên máy chủ (giả sử Workshop là cụ thể)
  3. Hệ thống máy chủ phải có thể truy cập vào khách tương ứng của mình thông qua tên đó (ví dụ: ping Workshop sẽ ping khách đang chạy trên máy chủ đó chứ không phải bất kỳ bản sao nào khác)

Những gì tôi đã cố gắng cho đến nay:

  • "Đã cài đặt" bộ điều hợp mạng NAT cho khách
  • Đã thử kết nối khách qua DHCP, trong / etc / mạng / giao diện :

    auto eth0
    iface eth0 inet dhcp
       hostname Workshop
    

Điều đó làm việc khi có liên quan đến internet. Tuy nhiên, tôi không thể kết nối với khách từ chủ nhà. (Ví dụ: ping Workshop không hoạt động; nếu tôi sử dụng địa chỉ được trả về bởi ifconfig thì nó cũng không hoạt động từ máy chủ).

  • Sau đó tôi đã thử gán một địa chỉ tĩnh cho khách:

    auto eth0
    iface eth0 inet static
         address 172.241.0.101
         netmask 255.255.0.0
         gateway 172.241.0.100
    

(172.241.0.100 là địa chỉ được gán tĩnh cho máy chủ bởi Bộ điều hợp VMNetare VMNet8 - đó là bộ điều hợp NAT ở trên). Bây giờ, tôi có thể ping 172.241.0.101 và telnet đến nó từ máy chủ. Tôi cũng có thể ping và telnet từ khách đến 172.241.0.100 (máy chủ), nhưng đó là về nó - không có kết nối với mạng rộng hơn. (Tôi cũng không thể truy cập khách thông qua tên máy chủ của nó, nhưng điều đó không quan trọng ở đây vì nếu gặp sự cố, tôi có thể sử dụng địa chỉ của nó trực tiếp - miễn là nó giống nhau cho mọi người - và không phải tên đó).

Bây giờ, tôi nghĩ rằng tôi có thể sử dụng tùy chọn kết nối mạng cầu nối với DHCP và điều đó sẽ cung cấp cho tôi những gì tôi cần trong trường hợp một VM (tôi đã không thử nó trong trường hợp này, nhưng tôi nhớ đã làm điều đó trước đây). Tuy nhiên, trong trường hợp một số máy ảo có cùng tên máy chủ và máy chủ của chúng được kết nối với cùng một mạng sẽ gặp sự cố, phải không?

Giải pháp của bạn và lời khuyên khác sẽ được nhiều đánh giá cao.

Câu trả lời:


8

Trước hết, vâng, bạn sẽ không thể sử dụng kết nối mạng được bắc cầu bởi vì tất cả các khách sẽ có cùng tên máy chủ, vì vậy bạn sẽ phải đi với NAT.

Bạn có một phần cấu hình đúng, tuy nhiên, vấn đề của bạn phải nằm ở cổng mặc định mà bạn đã gán cho khách. Cổng mặc định, khi sử dụng NAT, không phải là IP của máy chủ, đó là IP của "công tắc ảo" được kết nối với mạng NAT. (Bộ điều hợp VMnet8 máy chủ chỉ là một thiết bị khác được kết nối với mạng, để cho phép máy chủ liên lạc với VM.) Công tắc ảo này mà chúng ta đang nói về việc lấy .2IP trong mạng con. Vì vậy, trong trường hợp của bạn, bạn /etc/network/interfacesnên đọc:

auto eth0
iface eth0 inet static
     address 172.241.0.101
     netmask 255.255.0.0
     gateway 172.241.0.2

Điều này sẽ cấp quyền truy cập VM khách của bạn vào internet (thông qua 172.241.0.2) và cũng liên lạc với máy chủ của bạn ( 172.241.0.100). Vì vậy, hãy thử nó và cho tôi biết nếu nó hoạt động.

Nếu nó không hoạt động (rất khó xảy ra), thì bạn cần tìm ra IP của công tắc ảo là gì. Những gì bạn có thể làm là để VM lấy IP thông qua DHCP (nghĩa là thay đổi nó thành iface eth0 inet dhcpgiống như bạn đã có trước đó), sau đó làm route -n. Điều này sẽ cho bạn thấy cổng mặc định mà nó đang sử dụng. Sử dụng IP đó trong cấu hình tĩnh của bạn.


Để có thể ping máy khách VM bằng cách sử dụng tên máy chủ Hội thảo , đây là những gì bạn có thể làm. Bạn cần thêm một mục trong hoststệp trong Windows, được đặt trong C:\Windows\System32\drivers\etc\hosts. Chỉnh sửa tập tin đó để bao gồm dòng sau đây:

Tuy nhiên, để chỉnh sửa tệp đó trong Windows, bạn cần mở tệp đó với tư cách quản trị viên trong Notepad hoặc Wordpad ... và đôi khi, nó thậm chí không cho phép bạn lưu tệp, vì vậy bạn sẽ cần phải sao chép tệp ở đâu đó, chỉnh sửa nó, xóa phần mở rộng .txt nếu có, và quay lại và thay thế phần mở rộng ban đầu, và "xác nhận" nó ... oh tôi yêu Linux như thế nào. Nhưng dù sao, đây là dòng bạn cần thêm:

172.241.0.101    Workshop

Khi điều này được thực hiện, bạn sẽ có thể ping Workshopthành công từ máy chủ Windows của mình.

Mặc dù, tất nhiên, để có thể triển khai điều này trong xưởng của bạn, bạn sẽ cần chỉnh sửa tệp máy chủ trong mỗi máy chủ Windows, trừ khi bạn cũng nhân bản các máy Windows.

Mẹo : vì bạn sẽ gán IP tĩnh cho khách của mình, hãy đảm bảo rằng "mạng NAT" trong VMplayer trên tất cả các máy chủ Windows của bạn đang sử dụng mạng con 172.241.0.0/16, bởi vì tôi nghĩ rằng VMware chỉ định ngẫu nhiên một mạng con cho các mạng ảo của nó ( VMnet1, 2, v.v.), vì vậy VMnet8 có thể không sử dụng cùng một mạng con trên một máy chủ Windows khác. Nếu họ không phải, bạn sẽ cần cung cấp cho VMnet8 một mạng con bằng Trình biên tập mạng ảo trong VMware.


BIÊN TẬP

Được chứ. Sau khi nhận xét, đây là những gì bạn cần làm:

  1. Định cấu hình máy chủ (Windows) của bạn để "lấy địa chỉ IP tự động" trên bộ điều hợp VMnet8. Nó sẽ nhận được IP 192.168.186.1.
  2. Định cấu hình máy khách (Ubuntu) của bạn thành IP tĩnh trong phạm vi 192.168.186.3 - 192.168.186.127. Hãy sử dụng 192.168.186.3. Ngoài ra, hãy định cấu hình cổng mặc định và máy chủ dns thành 192.168.186.2Vì vậy, bạn /etc/network/interfacesnên:

    auto eth0
    iface eth0 inet static
         address 192.168.186.3
         netmask 255.255.255.0
         gateway 192.168.186.2
         dns-nameservers 192.168.186.2
    
  3. Kiểm tra kết nối cục bộ bằng cách ping 192.168.186.1192.168.186.2từ máy khách. Bạn cũng có thể ping từ máy chủ đến khách.

  4. Kiểm tra kết nối internet trong máy khách bằng cách ping google.comhoặc duyệt internet.
  5. Thêm dòng 192.168.186.3 Workshopvào hoststệp của bạn trong máy chủ Windows.
  6. Kiểm tra ping Workshoptừ máy chủ Windows.

Nếu bạn muốn sử dụng IP từ một mạng / nhóm hoàn toàn khác với 192.168.186.0/24, bạn sẽ cần truy cập Edit > Virtual Network Editorvào VMware, tìm VMnet8 và thay đổi cài đặt DHCP của nó ở dưới cùng thành bất kỳ mạng nào bạn muốn và thay đổi IP tĩnh phù hợp (cổng mặc định sẽ luôn là IP có thể sử dụng thứ hai, x.x.x.2).

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


172.241.0.2 không hoạt động. Nó cũng không trả lời cho một ping (như một vấn đề thực tế, chạy nmap -sP 172.241.0.0/24 chỉ trả về hai máy chủ trực tiếp - .100 và .101). Khi được định cấu hình với dhcp, một địa chỉ hoàn toàn khác được trả về bởi tuyến -n: 192.168.186.2
malenkiy_scot

Ồ, tôi giả sử rằng bạn đang sử dụng mạng 172.241.0.0/16 vì đó là mạng mà DHCP đang sử dụng. Hãy nghĩ về nó mặc dù, đó thực sự là một IP công cộng [Oo]. Có lý do gì để bạn gán IP máy chủ và IP khách trong mạng 172.241.0.0 không? Dù sao, nhìn vào câu trả lời chỉnh sửa của tôi.
Alaa Ali

Không, đó không phải là những gì DHCP đang sử dụng, mà đó là cách mà trình quảng cáo VMNet8 được cấu hình. Địa chỉ DHCP được lấy thông qua dịch vụ VMWare DHCP. Tôi không biết nó lấy địa chỉ từ đâu. Tuy nhiên, tôi không nghĩ rằng địa chỉ 172.241 là công khai. Khi tôi thiết lập kết nối giữa máy chủ và khách và chạy CPORTS, nó cho thấy 10.63.41.41 (đó là địa chỉ của máy chủ trên mạng LAN) được kết nối với chính nó trên các cổng khác nhau - điều này có ý nghĩa vì đây là NAT (hoặc có thể thực sự là PAT) . Tôi thực sự đã nghĩ dọc theo các dòng giống như bạn đã làm về cổng - rằng nó có một địa chỉ khác.
malenkiy_scot

Yup, như đã đề cập trong câu trả lời của tôi, dịch vụ DHCP và nhóm dịch vụ của nó có thể định cấu hình từ Trình chỉnh sửa mạng ảo (Tôi đã thêm ảnh chụp màn hình vào câu trả lời của mình). Cổng, máy chủ DHCP và DNS đều là cùng một thiết bị ảo x.x.x.2. Và vâng, như bạn đã nói, tất nhiên nó sử dụng quá tải (PAT) trên IP của máy chủ của bạn; bạn không nên nhìn thấy IP của khách trong mạng rộng hơn. Ngoài ra, 172.241.0.0/16 một dải IP công cộng =). 172.16.0.0 - 172.31.255.255là phạm vi riêng tư trong địa chỉ lớp B. Nhưng nó không thực sự quan trọng, nó không ảnh hưởng đến bất cứ điều gì.
Alaa Ali

Ngoài ra, bạn có thể truy cập này trang nếu bạn muốn đọc thêm về NAT trong VMware, đó là một tốt đọc.
Alaa Ali

3

Tôi gặp vấn đề tương tự, sử dụng VMWare Player chạy trên Windows 7 với khách Ubuntu. Nhưng tôi đã có thể kết nối từ máy chủ đến khách và khách đến máy chủ, tuy nhiên vấn đề là tôi không thể kết nối với internet từ khách. Sau khi đọc câu trả lời @Alaa, tôi chỉ cần thực hiện thêm một điều chỉnh để thêm tên máy chủ DNS vào tệp giao diện (dns-nameervers 192.168.150.2) và sau đó mọi thứ rơi vào dòng.

Đây là cấu hình của tôi đã làm việc.

Cấu hình giao diện VMWare trên máy chủ:

Bộ điều hợp Ethernet Bộ điều hợp mạng VMware VMnet8: (Máy khách)

Connection-specific DNS Suffix  . : 
Description . . . . . . . . . . . : VMware Virtual Ethernet Adapter for VMnet8
Physical Address. . . . . . . . . : 00-50-56-C0-00-08
DHCP Enabled. . . . . . . . . . . : No
Autoconfiguration Enabled . . . . : Yes
Link-local IPv6 Address . . . . . : fe80::9c13:cbf2:1dc:259f%42(Preferred) 

IPv4 Address. . . . . . . . . . . : 192.168.150.1(Preferred) 
Subnet Mask . . . . . . . . . . . : 255.255.255.0

Default Gateway . . . . . . . . . : 
DHCPv6 IAID . . . . . . . . . . . : 704663638
DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-19-06-50-32-88-53-2E-7A-D3-8E
DNS Servers . . . . . . . . . . . : fec0:0:0:ffff::1%1
                                    fec0:0:0:ffff::2%1
                                    fec0:0:0:ffff::3%1
NetBIOS over Tcpip. . . . . . . . : Enabled 

Thay đổi giao diện của Ubuntu khách:

auto eth0
iface eth0 inet static
address 192.168.150.10
netmask 255.255.255.0
gateway 192.168.150.2
dns-nameservers 192.168.150.2

192.168.150.2 là proxy của VMWare sẽ chuyển tiếp lưu lượng khách đến máy chủ.


Xin chào, tôi gặp vấn đề tương tự như của bạn. Bạn có thể giải thích thêm về cách bạn giải quyết vấn đề. Điều đầu tiên là nơi lấy thông tin của "Bộ điều hợp Ethernet Bộ điều hợp mạng VMnet8: (Máy khách)". Bạn có nghĩa là bạn cần cập nhật các thay đổi của mình trong / etc / mạng / giao diện Ngoài ra, đối với địa chỉ như "netmask", "gateway", chúng có thay đổi với các máy khác nhau không? Hoặc tôi có thể sử dụng giống như bạn đã đăng.
dùng288609
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.