AWS VPC - Cổng Internet so với NAT [đã đóng]


209

Cổng Internet là gì? Một sơ thẩm NAT là gì? Họ cung cấp dịch vụ gì?

Đọc tài liệu AWS VPC, tôi tập hợp cả hai ánh xạ địa chỉ IP riêng sang địa chỉ có thể truy cập internet cho các yêu cầu gửi đi và định tuyến các phản hồi đến từ internet đến người yêu cầu trên mạng con.

Vậy sự khác biệt giữa chúng là gì? Những kịch bản nào để tôi sử dụng NAT Instance thay vì (hoặc bên cạnh) Cổng Internet? Chúng thực chất là các phiên bản EC2 chạy một số ứng dụng mạng hay chúng là phần cứng đặc biệt như bộ định tuyến?

Thay vì chỉ trỏ đến các liên kết tài liệu AWS, bạn có thể giải thích những điều này bằng cách thêm một số nền tảng về mạng con công cộng và riêng tư để bất kỳ người mới bắt đầu nào có kiến ​​thức hạn chế về mạng có thể hiểu những điều này một cách dễ dàng? Ngoài ra khi nào tôi nên sử dụng NAT Gateway thay vì NAT?

PS Tôi chưa quen với AWS VPC, vì vậy tôi có thể so sánh táo với cam ở đây.

Câu trả lời:


230

Cổng Internet

Internet Gateway là một kết nối hợp lý giữa Amazon VPC và Internet . Nó không phải là một thiết bị vật lý. Chỉ một có thể được liên kết với mỗi VPC. Nó không giới hạn băng thông kết nối Internet. (Giới hạn duy nhất về băng thông là kích thước của phiên bản Amazon EC2 và nó áp dụng cho tất cả lưu lượng truy cập - nội bộ cho VPC và ra Internet.)

Nếu VPC không có Cổng Internet, thì tài nguyên trong VPC không thể được truy cập từ Internet (trừ khi lưu lượng truy cập qua mạng công ty và VPN / Kết nối trực tiếp).

Một mạng con được coi là Mạng con công cộng nếu nó có Bảng tuyến đường hướng lưu lượng truy cập đến Cổng Internet.

Sơ thẩm NAT

Một Instance NAT là một phiên bản Amazon EC2 được cấu hình để chuyển tiếp lưu lượng truy cập vào Internet. Nó có thể được khởi chạy từ một AMI hiện có hoặc có thể được cấu hình thông qua Dữ liệu người dùng như thế này:

#!/bin/sh
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 0 > /proc/sys/net/ipv4/conf/eth0/send_redirects
/sbin/iptables -t nat -A POSTROUTING -o eth0 -s 0.0.0.0/0 -j MASQUERADE
/sbin/iptables-save > /etc/sysconfig/iptables
mkdir -p /etc/sysctl.d/
cat <<EOF > /etc/sysctl.d/nat.conf
net.ipv4.ip_forward = 1
net.ipv4.conf.eth0.send_redirects = 0
EOF

Các trường hợp trong một mạng con riêng muốn truy cập Internet có thể có lưu lượng truy cập giới hạn Internet của họ được chuyển tiếp đến Trường hợp NAT thông qua cấu hình Bảng tuyến. Trường hợp NAT sau đó sẽ đưa ra yêu cầu với Internet (vì nó nằm trong Mạng con công cộng) và phản hồi sẽ được chuyển trở lại trường hợp riêng.

Lưu lượng được gửi đến Trường hợp NAT thường sẽ được gửi đến địa chỉ IP không được liên kết với Bản thể NAT (nó sẽ được dành cho một máy chủ trên Internet). Do đó, điều quan trọng là tắt tùy chọn Kiểm tra nguồn / đích trên Trường hợp NAT nếu không lưu lượng sẽ bị chặn.

Cổng NAT

AWS đã giới thiệu Dịch vụ Cổng NAT có thể thay thế Trường hợp NAT. Lợi ích của việc sử dụng dịch vụ NAT Gateway là:

  • Đây là một dịch vụ được quản lý hoàn toàn - chỉ cần tạo nó và nó hoạt động tự động, bao gồm cả chuyển đổi dự phòng
  • Nó có thể bùng nổ tối đa 10 Gbps (Trường hợp NAT bị giới hạn ở băng thông được liên kết với loại đối tượng EC2)

Tuy nhiên:

  • Nhóm bảo mật không thể được liên kết với NAT Gateway
  • Bạn sẽ cần một trong mỗi AZ vì chúng chỉ hoạt động trong một AZ duy nhất

4
Bạn có thể thêm một điểm trong ghi chú của bạn? Các phiên bản NAT sẽ hoạt động nếu bạn có IGW trên mạng con công cộng. Họ cũng hạn chế tra cứu ngược từ internet đến ví dụ của bạn trong mạng con.
Ameya

1
Bây giờ vào năm 2019, NAT gw chỉ có thể được sử dụng trong VPC, phân bổ EIP trong mạng con "công cộng" hoặc mạng con với "cổng internet" và trong các mạng con bên trong, chỉ cần định tuyến đến NAT gw.
Felipe Buccioni

Câu trả lời này có còn chính xác không? Từ các tài liệu AWS , tôi thấy : An internet gateway is a horizontally scaled, redundant, and highly available VPC component that allows communication between instances in your VPC and the internet. It therefore imposes no availability risks or bandwidth constraints on your network traffic.. Từ mô tả tôi có ấn tượng rằng nó là một thiết bị phần cứng thực tế, nhưng được quản lý bởi AWS. Xin hãy sửa cho tôi nếu sự hiểu biết của tôi bị tắt.
Abhishek Divekar

@AbhishekDivekar Không có gì thay đổi. Khi làm việc với AWS, hãy tập trung vào những gì bạn muốn đạt được, thay vì suy nghĩ về phần cứng cơ bản.
John Rotenstein

1
@Sandeep NAT Instances và NAT Gateways tồn tại trong một VPC. Do đó, bất kỳ lưu lượng truy cập nào thoát khỏi nó và đi tới Internet sẽ vẫn cần phải đi qua Cổng Internet. Nếu không có Cổng Internet thì sẽ không có quyền truy cập Internet.
John Rotenstein

127

Theo như cổng NAT so với NAT, một trong hai sẽ hoạt động. Một phiên bản NAT có thể rẻ hơn một chút, nhưng cổng NAT được AWS quản lý hoàn toàn, do đó, nó có lợi thế là không cần duy trì một phiên bản EC2 chỉ dành cho NATing.

Tuy nhiên, đối với các trường hợp cần có sẵn trên Internet, cổng / trường hợp NAT không phải là thứ bạn đang tìm kiếm. Một NAT sẽ cho phép các cá nhân riêng tư (không có IP công cộng) truy cập Internet, nhưng không phải là cách khác. Vì vậy, đối với các phiên bản EC2 cần có sẵn trên Internet, bạn cần gán IP công khai. Có một cách giải quyết nếu bạn thực sự cần giữ riêng các trường hợp EC2 - bạn có thể sử dụng bộ cân bằng tải đàn hồi để ủy quyền các yêu cầu.

Cổng Internet

Cổng Internet là cách VPC của bạn kết nối với internet. Bạn sử dụng Cổng Internet với bảng lộ trình để cho VPC biết lưu lượng truy cập internet truy cập internet như thế nào.

Cổng Internet xuất hiện trong VPC chỉ là một cái tên. Amazon quản lý cổng và không có gì bạn thực sự có tiếng nói (ngoài việc có sử dụng hay không; hãy nhớ rằng bạn có thể muốn một mạng con được phân đoạn hoàn toàn không thể truy cập internet).

Mạng con công cộng có nghĩa là mạng con có lưu lượng truy cập internet được định tuyến qua Cổng Internet của AWS. Bất kỳ trường hợp nào trong mạng con công cộng đều có thể gán IP công cộng cho nó (ví dụ: phiên bản EC2 có bật "liên kết địa chỉ IP công cộng").

Một mạng con riêng có nghĩa là các trường hợp không thể truy cập công khai từ internet. Họ KHÔNG có địa chỉ IP công cộng. Ví dụ: bạn không thể truy cập chúng trực tiếp qua SSH. Các trường hợp trên mạng con riêng vẫn có thể tự truy cập internet (ví dụ: bằng cách sử dụng NAT Gateway).


23
Câu trả lời tốt nhất về NAT vs cổng Internet.
Tagar

Câu trả lời chính xác. Chỉ là một câu hỏi tiếp theo: Khi một phiên bản EC2 trên mạng con công cộng có IP công cộng, về mặt logic, nó đủ tự nhận các yêu cầu gửi từ internet hoặc thực hiện các yêu cầu gửi đến internet vì IP của nó có thể truy cập được và có thể truy cập được. Vì vậy, Internet Gateway làm những công việc bổ sung nào ở đây?
Sandeep

Ví dụ @Sandeep EC2 không có bất kỳ IP công khai thực sự nào nhưng đằng sau hậu trường, nó được ánh xạ tới một địa chỉ IP riêng. Cổng internet phục vụ hai mục đích: cung cấp mục tiêu trong các bảng lộ trình VPC của bạn cho lưu lượng truy cập có thể định tuyến internet và thực hiện dịch địa chỉ mạng (NAT) cho các trường hợp đã được gán địa chỉ IPv4 công cộng
Omar Faroque Anik

11

Cổng Internet được sử dụng để kết nối vpc với internet và cổng NAT được sử dụng để kết nối mạng con riêng tư với internet (có nghĩa là lưu lượng truy cập nào sẽ đến với mạng con riêng sẽ chuyển tiếp đến cổng NAT). bạn cần chuyển tiếp lưu lượng trong bảng tuyến đến NAT

Bảng lộ trình 0.0.0.0/0


Cảm ơn ví dụ - đã giúp tôi thoát khỏi sự ràng buộc!
Chris

Có một sơ đồ trên trang này: docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html làm rõ mục đích của NAT gateway và IGW. Cả hai đều cần thiết cho các mạng con riêng tư để có thể truy cập internet
Maruthi
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.