Internetzugriff vom privaten VPC-Subnetz?

Internetzugriff vom privaten VPC-Subnetz?

Mein Gehirn ist ein bisschen überlastet, während ich versuche, das herauszufinden, aber ich kann anscheinend keine privaten Subnetze mit dem Internet verbinden, um beispielsweise Updates abzurufen. Im Grunde möchte ich nur Webzugriff für diese Server. Ich habe Lösungen ausprobiert, die ich in anderen Beiträgen gefunden habe, aber es könnte leicht etwas übersehen werden, da ich mich schon eine ganze Weile damit beschäftige.

Bisher habe ich folgende Konfiguration vorgenommen:

  • Deaktivieren Sie die Quell-/Zielprüfung auf meiner NAT-Instanz
  • Erstellen Sie eine Routentabelle für das öffentliche Subnetz und legen Sie deren Quelle auf IGW fest (überprüft, ob dies funktioniert).
  • Erstellen Sie eine Routentabelle für das private Subnetz und legen Sie deren Quelle auf die NAT-Instanz fest
  • Erstellen Sie eine Sicherheitsgruppe für die NAT-Instanz mit eingehenden und ausgehenden Regeln für 80/443 und SSH
  • Erstellen Sie eine Sicherheitsgruppe für eine private Instanz mit eingehendem und ausgehendem 80/443 und SSH

Ich kann über SSH auf die NAT-Instanz zugreifen und dann auf den privaten Server wechseln. Ich weiß also, dass vieles funktioniert. Ich habe meine Regeln durch Anpingen interner Adressen überprüft, aber sobald ich das lokale Netzwerk verlasse, treten die ersten Probleme auf.

Wo muss ich suchen oder welche Fehler muss ich beheben, um das Problem einzugrenzen? Muss ich an der NAT-Instanz eine Konfiguration vornehmen, die ich übersehen habe?

BEARBEITEN: Konfigurationsupdate

  • VPC: 172.16.0.0./16
  • Privates Subnetz: 172.16.1.0/24
  • Öffentliches Subnetz: 172.16.0.0/24

Routing-Tabelle für private Subnetze:

Verweist auf eine NAT-Instanz im öffentlichen Subnetz. Kein Internetzugriff möglich, EIP an öffentliche Schnittstelle mit Internetzugang angeschlossen.

privater VPC

Routing-Tabelle für öffentliche Subnetze:

Zeigt das öffentliche Subnetz beim IGW, ich habe den Internetzugang verifiziert.

Bildbeschreibung hier eingeben

Gedanken:

Ich fange an zu glauben, dass etwas auf der NAT-Instanz, die im öffentlichen Subnetz liegt, eingerichtet oder erstellt werden muss, um den Verkehr von privaten Instanzen weiterzuleiten, aber ich bin mir nicht ganz sicher, was hinzugefügt werden muss. Ich fanddieser Beitragdas erklärt das Hinzufügen einer Masquerade-Regel in iptables. Ist das auf meine Situation anwendbar?

Antwort1

ja, Sie müssen Iptables-Masquerading auf dem NAT-Host eingerichtet haben.

iptables -A POSTROUTING -t nat -s (private-subnet/cidr) -j MASQUERADE

wir haben das gleiche Setup, Sie haben alles andere richtig gemacht (Quellcodeprüfung deaktivieren, privates Subnetz auf die Schnittstelle der NAT-Instanz richten, öffentliches Subnetz auf das IGW richten).

Antwort2

Bin gerade darüber gestolpert, weil ich ein ähnliches Problem hatte. Vorausgesetzt, Sie haben den Assistenten zum Erstellen der NAT-Instanz verwendet, wäre die oben erwähnte Masquerade-Regel bereits vorhanden – Sie müssen sie nur hinzufügen, wenn Sie Ihre eigene NAT-Instanz „aufsetzen“ möchten. (Ich mache das normalerweise, damit ich das Ganze verdoppeln und es auch zu einem OpenSWAN L2TP/IPSec-VPN-Server für Remote-Benutzer machen kann.)

Was ich vergessen hatte hinzuzufügen, seit ich das letzte Mal eines davon erstellt habe, waren Regeln, die allen Datenverkehr (oder zumindest das, was Sie zulassen möchten) von allen privaten Sicherheitsgruppen oder Subnetzen zulassen, die den Datenverkehr über die NAT-Instanz leiten. Die NAT-Instanz akzeptiert keinen solchen ausgehenden Datenverkehr, wenn es keine Regeln gibt, die ihn zulassen - denken Sie nicht nur daran, was aus dem Internet hereinkommt, um dorthin zu gelangen. Ich bin nicht sicher, ob das Ihr Problem ist, da Sie erwähnt haben, 22/80/443 zu Ihrer NAT-Sicherheitsgruppe hinzuzufügen, aber ich dachte, ich würde dies anderen vorschlagen, die möglicherweise ein ähnliches Problem haben.

Antwort3

Ich habe eine Weile damit gekämpft, bis ich Folgendes fand:

Starten Sie dann eine Instanz in Ihrem öffentlichen Subnetz von einem AMI aus, das für die Ausführung als NAT-Instanz konfiguriert wurde. Amazon stellt Amazon Linux AMIs bereit, die für die Ausführung als NAT-Instanzen konfiguriert sind. Diese AMIs enthalten die Zeichenfolge amzn-ami-vpc-nat in ihren Namen, sodass Sie in der Amazon EC2-Konsole nach ihnen suchen können.

http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html#NATInstance

Ich hatte den NAT-Server als meine eigene Standardinstanz (Ubuntu) eingerichtet. Nachdem ich das Amazon Linux AMI verwendet und meine Routingtabellen aktualisiert hatte, funktionierte er.

verwandte Informationen