AWS cho phép nhà phát triển tạo một phiên bản NAT trong mạng con công khai và cung cấp cho mạng con riêng tư khả năng truy cập internet.
Đây là điều kiện tiên quyết để tạo thể hiện NAT. Đối với cấu hình iptables, đó chỉ là thay đổi một dòng.
Trong bảng điều khiển EC2, tắt kiểm tra nguồn/đích bằng cách nhấp chuột phải vào phiên bản bạn muốn sử dụng cho NAT và chọn "Thay đổi nguồn/Kiểm tra đích".
Tạo một nhóm bảo mật có quy tắc gửi đến cho phép TẤT CẢ từ 10.0.0.0/16 và liên kết nó với phiên bản NAT của bạn.
Trên phiên bản NAT, hãy tạo /etc/network/if-pre-up.d/nat-setup dưới dạng:
#!/bin/sh
tiếng vang 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 10.0.0.0/16 -j MASQUERADE
chmod +x script, sau đó chạy nó. Tập lệnh này sẽ tự động được chạy khi máy khởi động lại, vì vậy NAT của bạn sẽ tồn tại sau khi khởi động lại.
Đảm bảo rằng tất cả các mạng con riêng tư của bạn đều có một tuyến đường mặc định để sử dụng phiên bản NAT làm cổng (tạo một tuyến đường cho 0.0.0.0/0 và liên kết nó với phiên bản NAT của bạn trong (các) bảng tuyến đường được liên kết với các mạng con riêng tư của bạn).
kiểm tra NAT của bạn bằng cách ping thứ gì đó từ phiên bản EC2 trong mạng con riêng tư
Kết nối bắt đầu từ bên trong
Nếu kết nối được bắt đầu từ bên trong, tôi cho rằng phiên bản NAT hoạt động theo cách này.
Phiên bản EC2 A (trong mạng con riêng) muốn truy cập máy chủ web C trên internet.
Phiên bản EC2 A trong mạng con riêng gửi các gói đến phiên bản NAT B.
Phiên bản NAT B chuyển tiếp các gói và thực hiện công việc SNAT, ví dụ:
- thay đổi ip nguồn trong gói.
- ghi kết nối đang hoạt động này vào các bảng conntrack.
Các gói đến máy chủ C trên internet.
Máy chủ C gửi các gói trở lại NAT dụ B
Vì kết nối nằm trong bảng conntrack
, tất cả các gói đều được chấp nhận.
Kết nối bắt đầu từ bên ngoài
Nếu ai đó trên internet trực tiếp khởi tạo kết nối và gửi các gói đến phiên bản NAT, chẳng hạn như đăng nhập ssh hoặc ping.
cá thể NAT sẽ làm gì?
Các iptables của phiên bản NAT sẽ xử lý lưu lượng dựa trên cấu hình trong đoạn trước như thế nào?
Thẩm quyền giải quyết
- Ý chính của Github: Tạo phiên bản AWS NAT
- Kabisa: Tiết kiệm chi phí với các phiên bản NAT
- AWS: Phiên bản NAT