Câu hỏi chính là làm thế nào để kết nối với máy chủ vpn thông qua máy khách vpn là phiên bản NAT, hãy để tôi mô tả về nó.
Cảnh 1:
Tôi có một nhóm phiên bản dịch vụ (ubuntu 18.04) có tên là A
Một phiên bản mà tôi sử dụng cho phiên bản NAT có tên là B
cả nhóm A và phiên bản B đều ở trong cùng một vpc, A không có ip công khai, B có một ip pulibc và điều tôi đã làm là sử dụng B làm NAT và đặt SNAT trong vpc để nhóm A có thể truy cập internet bằng B.
như thế này:
Và đối với nhóm A là (10.0.0.0/16). Tôi chỉ vẽ hai ví dụ trong nhóm A, nhưng nó có rất nhiều.
vì vậy trong dịch vụ B của tôi, tôi thêm quy tắc iptables: iptables -A POSTROUTING -t nat -s 10.0.0.0/16 -j MASQUERADE
nó đã làm việc sẽ.
# ip lộ trình
mặc định qua 10.0.1.253 dev eth0 proto dhcp src 10.0.1.157 số liệu 100
10.0.1.0/24 dev eth0 liên kết phạm vi kernel proto src 10.0.1.157
10.0.1.253 dev eth0 liên kết phạm vi proto dhcp src 10.0.1.157 số liệu 100
Cảnh 2:
Giống như các cảnh trên nhưng bây giờ tôi không thể sử dụng ip công khai của B (X) để truy cập internet, thay vào đó là kết nối vpn (openvpn).
đó là:
lưu ý rằng dịch vụ C là một phiên bản dịch vụ vpn mà tôi không có quyền kiểm soát.
và tôi có tệp cấu hình máy khách có thể kết nối từ B đến C và hoàn toàn kết nối được tạo. bây giờ B có thể truy cập internet qua C và bây giờ trong dịch vụ B của tôi, tôi có
# ip lộ trình
0.0.0.0/1 đến 10.8.0.1 dành cho nhà phát triển0
mặc định qua 10.0.1.253 dev eth0 proto dhcp src 10.0.1.157 số liệu 100
10.0.1.0/24 dev eth0 liên kết phạm vi kernel proto src 10.0.1.157
10.0.1.253 dev eth0 liên kết phạm vi proto dhcp src 10.0.1.157 số liệu 100
10.0.2.0/24 qua 10.0.1.157 dev eth0
10.0.3.0/24 qua 10.0.1.157 dev eth0
10.8.0.0/24 dev tun0 liên kết phạm vi kernel proto src 10.8.0.2
{Địa chỉ ip công khai của C tại đây} qua 10.0.1.253 dev eth0
128.0.0.0/1 qua 10.8.0.1 dành cho nhà phát triển0
OK, tôi hy vọng mô tả của tôi là rõ ràng;
Vì vậy, trong trường hợp này, tôi nghĩ những gì tôi cần làm là giải quyết tất cả về dịch vụ B.
ví dụ: B, tôi chuyển tiếp tất cả lưu lượng truy cập từ eth0 sang tun0, vì vậy lưu lượng truy cập từ eth0 sẽ chuyển tiếp đến tun0 và nhóm A phải có internet qua B:
iptables -A FORWARD -i eth0 -o tun0 -j CHẤP NHẬN
iptables -A FORWARD -i tun0 -o eth0 -m state --state THÀNH LẬP, LIÊN QUAN -j CHẤP NHẬN
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
Nhưng nó không hoạt động như tôi mong đợi.
sau đó tôi gỡ lỗi bằng cách phân tích lưu lượng trong B một cách đại khái. tôi nhận được thông tin rằng B có thể nhận được lưu lượng truy cập từ A. nhưng không có phản hồi.