Am urmatoarea configuratie:
Proxmox Gazdă server dedicat cu un IP public și IPTables instalate și o mulțime de mașini virtuale cu docker instalat.
Folosesc iptables pentru a porta portul 443 la unul dintre VM-uri prin DNAT și funcționează bine din afara Gazdă adică Internetul. Dar dacă încerc să accesez resurse din VM care rulează pe VM prin IP-ul public, acesta nu este accesibil.
Utilizare caz: Am nginx cu SSL ca proxy invers pentru serviciile care rulează în docker pe VM (backend + aplicație frontend) și trebuie să accesez backend din frontend prin „DNS public, IP”, deoarece certificatul SSL este creat pentru dn-urile publice care indică IP-ul public și portul redirecționat către nginx al VM.
Am o interfață publică conectată la vmbr0 și un alt brige vmbr172 (172.20.0.0/16) pentru VM-uri
Regulile mele actuale pentru IPTables:
iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to 172.20.2.9:443
iptables -t nat -A POSTROUTING -s '172.20.0.0/16' -o vmbr0 -j MASQUERADE
iptables -L -n -t nat -v
PRERUUTARE în lanț (politica ACCEPTĂ 58449 pachete, 3018K octeți)
pkts bytes target prot opt in out source destination
1941 105K DNAT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 la:172.20.2.9:443
POSTROUTING în lanț (politica ACCEPTĂ 5511 pachete, 332K octeți)
pkts bytes target prot opt in out source destination
212K 18M MASQUERADE toate -- * vmbr0 172.20.0.0/16 0.0.0.0/0
Am încercat să schimb interfața la orice dar conexiunea pare să se „blocheze” și să expire. Cred că am nevoie de o regulă de postrouting, dar nu îmi pot da seama cum ar trebui să arate.