0
0
Lập trình
Harry Tran
Harry Tran106580903228332612117

Mạng Ảo VM: Hiểu Rõ NAT, Bridged, Host-Only và Port Forwarding

Đăng vào 8 tháng trước

• 6 phút đọc

Giới Thiệu

Khi bạn khởi tạo một máy ảo (VM) trong VirtualBox, VMware hoặc Vagrant, một trong những quyết định đầu tiên bạn phải đối mặt là: Máy ảo này sẽ kết nối với mạng như thế nào?

Bạn có muốn nó truy cập internet không? Máy tính chủ của bạn có nên thấy nó không? Hai VM có nên giao tiếp với nhau? Những thiết bị khác trên mạng LAN của bạn có thể truy cập nó như một PC bình thường không?

Chính là lúc các chế độ mạng VM — NAT, NAT Network, Bridged, và Host-Only — phát huy tác dụng. Khi bạn kết hợp với port forwardingcác thiết lập nhiều VM, mọi thứ có thể trở nên rất phức tạp.

Bài viết này sẽ giúp bạn hiểu rõ hơn về các chế độ mạng VM, cách hoạt động của chúng, khi nào nên sử dụng và cách kết hợp chúng.

1. Tại Sao Mạng VM Quan Trọng

Một máy ảo giống như một máy tính bên trong máy tính của bạn. Nhưng khác với các máy tính vật lý, nó không tự động có kết nối mạng.

Tùy thuộc vào nhu cầu của bạn, bạn có thể muốn máy ảo của mình:

  • Tải xuống các bản cập nhật phần mềm từ internet.
  • Hoạt động như một máy chủ có thể truy cập từ các thiết bị khác trên mạng LAN của bạn.
  • Vẫn được cách ly, nhưng vẫn có thể truy cập từ máy chủ của bạn.
  • Giao tiếp với các VM khác trong một môi trường thử nghiệm riêng tư.

Chế độ mạng phù hợp đảm bảo bạn có được chính xác những gì bạn cần — không nhiều hơn, không ít hơn.

2. Các Chế Độ Mạng Cơ Bản

Hãy cùng tìm hiểu bốn tùy chọn mạng chính mà bạn sẽ gặp trong hầu hết các công cụ ảo hóa.

2.1 NAT (Network Address Translation)

Cách thức hoạt động:

  • VM “ẩn” sau địa chỉ IP của máy chủ.
  • Từ thế giới bên ngoài, lưu lượng truy cập trông giống như đến từ máy chủ.

Khả năng:

  • Truy cập Internet: ✅ Có (thông qua kết nối của máy chủ).
  • Kết nối vào: ❌ Không (bị chặn trừ khi bạn cấu hình port forwarding).
  • Giao tiếp VM ↔ VM: ❌ Không (mỗi VM được cách ly sau NAT).

Tình huống sử dụng tốt nhất:
Khi cần truy cập internet nhanh để tải gói hoặc chạy cập nhật, mà không cần truy cập bên ngoài vào VM.

2.2 NAT Network

Cách thức hoạt động:

  • Tương tự như NAT, nhưng tất cả các VM kết nối vào cùng một mạng NAT sẽ chia sẻ một subnet riêng tư.
  • Chúng có thể giao tiếp với nhau trong khi vẫn có truy cập internet.

Khả năng:

  • Truy cập Internet: ✅ Có.
  • Kết nối vào: ❌ Không (trừ khi có port forwarding).
  • Giao tiếp VM ↔ VM: ✅ Có (trong mạng NAT).

Tình huống sử dụng tốt nhất:
Khi bạn mô phỏng các môi trường multi-VM (như máy chủ ứng dụng + máy chủ cơ sở dữ liệu) vẫn cần truy cập internet.

2.3 Bridged Adapter

Cách thức hoạt động:

  • VM kết nối trực tiếp với mạng vật lý của bạn, giống như một laptop hoặc điện thoại khác.
  • Router của bạn sẽ cấp cho nó một địa chỉ IP riêng.

Khả năng:

  • Truy cập Internet: ✅ Có.
  • Kết nối vào: ✅ Có (VM có địa chỉ IP riêng trên LAN).
  • Giao tiếp VM ↔ VM: ✅ Có (tất cả là đồng nghiệp trên LAN).

Tình huống sử dụng tốt nhất:
Khi bạn muốn VM của mình hoạt động như một thiết bị vật lý thực trên mạng của bạn — ví dụ, thử nghiệm một máy chủ web có thể truy cập từ các thiết bị khác.

2.4 Host-Only Network

Cách thức hoạt động:

  • Tạo một mạng hoàn toàn riêng tư giữa máy chủ và các VM.
  • Không có kết nối với thế giới bên ngoài.

Khả năng:

  • Truy cập Internet: ❌ Không (trừ khi kết hợp với một bộ điều hợp khác).
  • Kết nối vào: ✅ Có, từ máy chủ.
  • Giao tiếp VM ↔ VM: ✅ Có (trong mạng riêng tư).

Tình huống sử dụng tốt nhất:
Dành cho các phòng thí nghiệm thử nghiệm cách ly nơi bạn không muốn các VM bị lộ ra internet. Tuyệt vời cho việc thử nghiệm mà không có rủi ro.

3. Port Forwarding: Truy Cập VM Mà Không Cần IP Công Khai

Với NAT và NAT Network, VM của bạn không có IP công khai. Điều đó có nghĩa là bạn không thể chỉ cần ssh user@vm_ip từ máy chủ hoặc một máy tính khác.

Lúc này, port forwarding sẽ phát huy tác dụng. Nó giống như một đường hầm qua máy chủ:

  1. Thiết lập chuyển tiếp: Gán một cổng máy chủ (ví dụ, 2222) đến cổng của VM (ví dụ, 22 cho SSH).
  2. Khách hàng kết nối: Từ laptop của bạn, chạy ssh -p 2222 user@host_ip.
  3. Máy chủ chuyển tiếp: Máy chủ nhận lưu lượng từ cổng 2222 và chuyển tiếp đến IP nội bộ của VM trên cổng 22.
  4. VM phản hồi: Bạn đã ở trong VM như thể nó có một IP công khai.

Tại sao điều này quan trọng:

  • Cho phép bạn kết nối an toàn với các VM mà không phơi bày trực tiếp chúng ra mạng của bạn.
  • Rất cần thiết cho các thiết lập NAT và NAT Network.

4. Kết Nối Nhiều VM Với Nhau

Đôi khi, một VM không đủ. Có thể bạn muốn một máy chủ web giao tiếp với một máy chủ cơ sở dữ liệu, hoặc một bộ cân bằng tải quản lý nhiều máy chủ ứng dụng.

Dưới đây là cách bạn có thể làm điều đó:

  • NAT Network → Tùy chọn tốt nhất nếu bạn muốn các VM giao tiếp truy cập internet.
  • Host-Only Network → Tốt cho các phòng thí nghiệm hoàn toàn cách ly, nơi không yêu cầu truy cập internet.
  • Bridged Network → Hoạt động nếu bạn muốn các VM của mình cư xử như các thiết bị vật lý độc lập trên LAN của bạn.

Kịch bản ví dụ:

  • VM1 = Máy chủ Web
  • VM2 = Máy chủ Cơ sở dữ liệu
  • Cả hai đều được kết nối với NAT Network.
  • VM1 có thể truy vấn VM2, VM2 có thể phản hồi, và cả hai vẫn có thể tải xuống các bản cập nhật từ internet.

5. Bảng So Sánh Nhanh

Dưới đây là bảng tóm tắt mà bạn sẽ muốn đánh dấu:

Chế độ Truy cập Internet VM ↔ VM VM ↔ Host Có thể truy cập từ LAN Tình huống sử dụng tốt nhất
NAT ✅ Có ❌ Không ⚠️ Chỉ qua Port Forwarding ❌ Không VM đơn với internet an toàn
NAT Network ✅ Có ✅ Có ✅ Có (với thiết lập) ❌ Không Phòng thí nghiệm nhiều VM + internet
Bridged ✅ Có ✅ Có ✅ Có ✅ Có Thử nghiệm máy chủ thực tế
Host-Only ❌ Không ✅ Có ✅ Có ❌ Không Thiết lập thử nghiệm cách ly

6. Kết Luận

  • NAT → Tuyệt vời cho các VM đơn cần internet.
  • NAT Network → Hoàn hảo cho các thiết lập nhiều VM với internet.
  • Bridged → Tốt nhất khi VM của bạn nên hoạt động như một thiết bị thực trên LAN của bạn.
  • Host-Only → Lý tưởng cho các môi trường cách ly.
  • Port Forwarding → Giải pháp bí mật để truy cập các VM NAT.
  • Mạng riêng tư → Cho phép các cấu trúc nhiều VM phức tạp mà không phơi bày chúng ra ngoài.

Khi bạn hiểu rõ các chế độ này, bạn có thể xây dựng phòng thí nghiệm ảo mạnh mẽ trên laptop của mình, giống như các mạng thực tế — dù bạn đang học DevOps, kiểm tra máy chủ, hay mô phỏng các môi trường sản xuất.

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào