AWS yum funktioniert nicht im privaten Subnetz (funktioniert im öffentlichen)


7

Ich habe eine VPC mit einem privaten und einem öffentlichen Subnetz, die jeweils einen identisch gebauten RHEL7-Server enthalten. Ich glaube, die VPC ist korrekt eingerichtet (siehe unten). Der öffentliche Server kann jedoch yum verwenden und der private nicht. Der Private erhält den Fehler ...

$ yum search apache
Failed to set locale, defaulting to C
Loaded plugins: amazon-id, rhui-lb
Repo rhui-REGION-client-config-server-7 forced skip_if_unavailable=True due to: /etc/pki/rhui/cdn.redhat.com-chain.crt
Repo rhui-REGION-client-config-server-7 forced skip_if_unavailable=True due to: /etc/pki/rhui/product/rhui-client-config-server-7.crt
Repo rhui-REGION-client-config-server-7 forced skip_if_unavailable=True due to: /etc/pki/rhui/rhui-client-config-server-7.key
Repo rhui-REGION-rhel-server-releases forced skip_if_unavailable=True due to: /etc/pki/rhui/cdn.redhat.com-chain.crt
Repo rhui-REGION-rhel-server-releases forced skip_if_unavailable=True due to: /etc/pki/rhui/product/content-rhel7.crt
Repo rhui-REGION-rhel-server-releases forced skip_if_unavailable=True due to: /etc/pki/rhui/content-rhel7.key
Repo rhui-REGION-rhel-server-rh-common forced skip_if_unavailable=True due to: /etc/pki/rhui/cdn.redhat.com-chain.crt
Repo rhui-REGION-rhel-server-rh-common forced skip_if_unavailable=True due to: /etc/pki/rhui/product/content-rhel7.crt
Repo rhui-REGION-rhel-server-rh-common forced skip_if_unavailable=True due to: /etc/pki/rhui/content-rhel7.key
Could not contact CDS load balancer rhui2-cds01.us-east-1.aws.ce.redhat.com, trying others.

Could not contact any CDS load balancers: rhui2-cds01.us-east-1.aws.ce.redhat.com, rhui2-cds02.us-east-1.aws.ce.redhat.com. 

Netzwerk

Ich habe eine AWS VPC mit RHEL7 AMIs.

  • Ich habe eine VPC 10.0.0.0/16
  • Ich habe ein öffentliches Subnetz 10.0.0.0/24
  • Ich habe ein privates Subnetz 10.0.1.0/24
  • Ich habe ein Internet-Gateway
  • Ich habe ein NAT
  • Die Hauptroutentabelle zeigt auf das NAT

    Destination Target Status Propagated
    10.0.0.0/16 local Active No
    0.0.0.0/0 eni-xxxxxxxx / i-xxxxxxxx Active No
    
  • Das private Subnetz ist der Hauptroutentabelle zugeordnet

  • Die zweite (nicht Haupt-) Routentabelle zeigt auf das Gateway

    Destination Target Status Propagated 
    10.0.0.0/16 local Active No
    0.0.0.0/0 igw-xxxxxxxx Active No
    
  • Das öffentliche Subnetz ist dieser Routentabelle zugeordnet

  • Alle Sicherheitsgruppen sind für die Fehlerbehebung weit offen
  • Ich habe das NAT für die Weiterleitung aktiviert (und manchmal maskiert ... siehe unten)

    sysctl -q -w net.ipv4.ip_forward=1 net.ipv4.conf.eth0.send_redirects=0
    
    PRIVATE_SUBNETS="10.0.1.0/24"
    for SUBNET in $PRIVATE_SUBNETS; do
        iptables -t nat -C POSTROUTING -o eth0 -s $SUBNET -j MASQUERADE 2> /dev/null || iptables -t nat -A POSTROUTING -o eth0 -s $SUBNET -j MASQUERADE
    done
    
  • In den öffentlichen und privaten Subnetzen befindet sich ein Server

  • Beide sind aus demselben RHEL7 AMI gefertigt.

Testen

  • Ich bin Wurzel während all dem ...
  • Ich habe die Einstellung versucht , sslverify=0in /etc/yum.repos.d/redhat-rhui.repound /etc/yum.repos.d/redhat-rhui-client-config.repound dann die Ausführung yum clean all. Das Problem wurde nicht gelöst.
  • Sowohl der Server im privaten als auch im öffentlichen Subnetz kann Ping 8.8.8.8
  • Beide Server können Namen in IPs auflösen, einschließlich der Namen der yum-Repositorys.
  • Sowohl der private als auch der öffentliche Server scheinen die folgenden Drehzahlen sehen und berühren zu können:

    $ rpm -Uvh ftp://ftp.pbone.net/mirror/ftp.sourceforge.net/pub/sourceforge/o/os/osolinux/update/RPMS.e/elinks-0.12-0.32.pre5mgc30.x86_64.rpm
    Retrieving ftp://ftp.pbone.net/mirror/ftp.sourceforge.net/pub/sourceforge/o/os/osolinux/update/RPMS.e/elinks-0.12-0.32.pre5mgc30.x86_64.rpm
    error: Failed dependencies:
        libgc.so.1()(64bit) is needed by elinks-0.12-0.32.pre5mgc30.x86_64
        libgpm.so.2()(64bit) is needed by elinks-0.12-0.32.pre5mgc30.x86_64
        libmozjs185.so.1.0()(64bit) is needed by elinks-0.12-0.32.pre5mgc30.x86_64
        libnss_compat_ossl.so.0()(64bit) is needed by elinks-0.12-0.32.pre5mgc30.x86_64
    

Wenn ich versuche, ein neues Repository auf den privaten Server zu laden, wird eine Zeitüberschreitung angezeigt ...

$ rpm -Uvh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
Retrieving http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm

curl: (7) Failed connect to pkgs.repoforge.org:80; Connection timed out
error: skipping http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm - transfer failed
  • Das Ein- und Ausschalten der Maskierung scheint keinen Unterschied zu machen.

=== HIER FÜR DIE BILDUNG ANDERER VERÖFFENTLICHEN ===
Hallo Michael. Danke für den Kommentar.

Ich habe tatsächlich Traceroute verwendet und festgestellt, dass die Pakete vom betreffenden privaten Server zum NAT gelangen. Ich sah auch Pakete, die den Server verließen, was die weitergeleiteten Pakete gewesen sein sollten. Und das ist es. Nichts mehr.

Ich habe den Eindruck, dass die Anfragen von den Repositories abgelehnt werden, da Ping- und Internet-Remote-RPMs zu funktionieren scheinen ... aber ich weiß nicht warum. Ich erhalte das gleiche Ergebnis beim Ein- und Ausschalten der Maskierung.

Der NAT-Server wurde beim Erstellen der VPC automatisch erstellt. Die Sicherheitsgruppen wurden auf der Seite "Szenario 2" erstellt, sind jedoch derzeit weit geöffnet.


1
Wenn Sie eine Bestätigung wünschen, sollte dies funktionieren ... Haben Sie daran gedacht, die IP-Quell- / Zielprüfung auf der NAT-Instanz in der AWS-Konsole zu deaktivieren?
Michael - sqlbot

Ich erinnerte mich daran ... und ging sogar hinein und aktivierte und deaktivierte es wieder, nur für den Fall. Da ich pingen kann, aber nicht zu yum komme ... frage ich mich, ob es etwas mit yum im Vergleich zur VPC zu tun hat?
BurningKrome

Es scheint unwahrscheinlich. Wie wäre es mit einigen tsharkauf dem NAT-Computer? Oder erwägen Sie die Verwendung eines der offiziellen NAT-Instanz-Images (AMI), für das keine Anpassung erforderlich sein sollte.
Michael - sqlbot

Danke für den Kommentar Michael. Bitte beachten Sie die obigen Änderungen.
BurningKrome

Antworten:


2

In einer sehr ähnlichen Situation wie der in der Frage beschriebenen konnte ich sie durch Hinzufügen der proxyKonfiguration lösen /etc/yum.conf.

So was:

echo "proxy=http://my.proxy.internal:3128/" >> /etc/yum.conf

1

Wenn das private Subnetz nicht mit dem Internet verbunden ist, können Sie natürlich nicht auf das Internet zugreifen, um ein Paket zu installieren.

Sie können eine Instanz auch im öffentlichen Subnetz starten und nach der Installation der erforderlichen Pakete einfach ein benutzerdefiniertes Image davon erstellen , das Sie beim Starten der Instanz in einem beliebigen Subnetz problemlos verwenden können, unabhängig davon, ob sie über einen Internetzugang verfügt oder nicht.


-5

Ich habe das gleiche Problem und löse es, wenn ich benutze

yum install wget

aber wenn ich benutze

sudo yum install wget

alles ist in Ordnung.


1
Wenn Sie die Frage lesen, ist er ROOT .......
Zapto
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.