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
POSTROUTING în lanț (politica ACCEPTĂ 5511 pachete, 332K octeți)
pkts bytes target prot opt in out source destination
212K 18M MASQUERADE toate
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.