Întrebarea principală este cum să vă conectați la un server vpn printr-un client vpn care este o instanță NAT, permiteți-mi să vă descriu despre asta.
Scenele 1:
Am un grup de instanțe de serviciu (ubuntu 18.04) numite A
O instanță pe care o folosesc pentru instanța NAT numită B
atât grupul A, cât și instanța B sunt în același vpc, A nu are ip public, B are un ip pulibc și am folosit B ca NAT și setați SNAT în vpc, astfel încât grupul A să poată accesa internetul prin B.
ca aceasta:
Și pentru grupa A care este (10.0.0.0/16). Desenez doar două exemple în grupul A, dar are multe.
deci în serviciul meu B adaug regula iptables: iptables -A POSTROUTING -t nat -s 10.0.0.0/16 -j MASQUERADE
este vointa lucrata.
# afișare rută ip
implicit prin 10.0.1.253 dev eth0 proto dhcp src 10.0.1.157 metric 100
10.0.1.0/24 dev eth0 proto kernel scope link src 10.0.1.157
10.0.1.253 dev eth0 proto dhcp scope link src 10.0.1.157 metric 100
Scenele 2:
Ca și scenele de mai sus, dar acum nu pot folosi IP-ul public (X) al lui B pentru a accesa internetul, înlocuit cu conexiune vpn (openvpn).
care este:
rețineți că serviciul C este o instanță de serviciu VPN pe care nu am control.
și am un fișier de configurare a clientului care se poate conecta de la B la C și absolut se creează conexiunea. acum B poate accesa internetul prin C, iar acum am în serviciul meu B
# afișare rută ip
0.0.0.0/1 prin 10.8.0.1 dev tun0
implicit prin 10.0.1.253 dev eth0 proto dhcp src 10.0.1.157 metric 100
10.0.1.0/24 dev eth0 proto kernel scope link src 10.0.1.157
10.0.1.253 dev eth0 proto dhcp scope link src 10.0.1.157 metric 100
10.0.2.0/24 prin 10.0.1.157 dev eth0
10.0.3.0/24 prin 10.0.1.157 dev eth0
10.8.0.0/24 dev tun0 proto kernel scope link src 10.8.0.2
{Adresa IP publică a lui C aici} prin 10.0.1.253 dev eth0
128.0.0.0/1 prin 10.8.0.1 dev tun0
OK, sper că descrierea mea este clară;
Deci, în acest caz, cred că ceea ce trebuie să fac este să mă ocup de serviciul B.
de exemplu B, redirec tot traficul de la eth0 la tun0, deci traficul de la eth0 ar redirecționa către tun0, iar grupul A ar trebui să aibă internet prin B:
iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -o eth0 -m stat --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
Dar nu a funcționat așa cum mă așteptam.
apoi îl depanez prin analiza traficului în B aproximativ. Am primit informații că B poate primi traficul de la A. dar fără răspuns.