Am instanțe Linux ec2 cu două NIC-uri (eth0 și eth2). Ambele NIC-uri au IP-uri publice atașate la el și sunt capabile să iasă pe internet. Această instanță Linux acționează ca un nod gateway pentru mine, redirecționând traficul de la ec2 în subrețele private care nu au acces la internet.
Sunt capabil să redirecționeze traficul de la instanța ec2 din subrețeaua privată la această instanță de gateway din subrețeaua publică. Tot traficul din instanța gateway-ului este primit pe eth0. Acum aș dori să pot intra pe internet prin eth1 și nu prin eth0. Vreau să fac acest lucru pentru că vreau ca lumea exterioară să vadă IP-ul eth1 ca IP sursă.
Efectuarea acestor pași mă ajută să realizez acest lucru
IP route add 10.0.0.0/23 <subnet of gateway cidr> dev eth2 table 2
Adăugarea regulii ip din <ip-ul instanței private ec2> tabelul 2
IP route add default prin 10.0.0.1 dev eth2 tabelul 2
cache de spălare a rutei ip
iptables -A FORWARD --in-interface eth0 -j ACCEPT #acceptă trafic pe eth0
iptables --table nat -A POSTROUTING --out-interface eth2 -j MASQUERADE #redirecționează traficul în exterior prin eth2
Cu această configurare, când mă curl în afara instanței ec2 într-o subrețea privată (prin nodul gateway), văd ce mă aștept să văd (și anume că lumea exterioară vede că cererea vine de la ip-ul lui eth1), dar cererile curl durează foarte mult mult timp (și uneori chiar expiră). Aș spune că aproximativ 5 din 10 solicitări reușesc.
Ce îmi lipsește aici?
Mulțumiri
Kay