fragen stichworte

Hosting von Websites auf einer öffentlichen IP, die über ein privates Subnetz geleitet wird, wobei eine Linux-Maschine als Router und Server verwendet wird

Ich verwende den Ubuntu-Server als Router, NAT-Router und Webserver. Der Server ist über ein öffentliches/29-Subnetz mit dem ISP verbunden. Ich habe auch einige wichtige Webseiten darauf. Ich habe den ISP gebeten, einen IPv6-Adressblock bereitzustellen. Sie sagen, dass der Router, an dem meine Verbindung beim ISP endet, keine IPv6-Unterstützung hat. Sie sagten also, wenn ich bereit bin, sich über ein privates 172.16.x.x/30-Subnetz mit ihrem Edge-Router zu verbinden, können sie mir einen IPv6-Block bereitstellen. Sie geben mir jedoch eine öffentliche ipv4/29, die über 172.16.x.x/30 an mich weitergeleitet wird und mit der ich meine Websites hosten kann. Aber das Problem, das ich habe, ist, dass ich keinen anderen Router kaufen möchte, damit ich 172.16.x.x/30 auf die ISP-Schnittstelle und die öffentliche/29 auf eine andere Schnittstelle setzen kann, die auf meinen Server und NATing-Router gerichtet ist.

Ich möchte wissen, ob ich 172.16.x.x/30 verwenden kann, um eine Verbindung zum ISP herzustellen und auch public/29 auf demselben Ubuntu-Server zum Hosten von Websites und zum NATing verwenden. Mein Router hat mehr als 5 NICs und ich kann auch vlans verwenden.

Der Edge-Router des ISP unterstützt ipv6. Der Grund, warum er mir kein öffentliches Subnetz geben kann, ist dieses. Zur Zeit endet meine Verbindung bei einem Switch, der über 172.16.x.x mit der Flanke verbunden ist.

antworten

Die Verwendung von RFC1918-Adressen für Router-zu-Router-Verbindungen ist verpönt, wenn es im öffentlichen Internet ist, insbesondere wenn es an einer Schnittstelle zwischen dem ISP und dem Kunden verwendet wird (im Gegensatz zu zwei Routern innerhalb des ISP-Netzwerks). Dies liegt daran, dass sie die Nützlichkeit von Traceroute verringern, da einige Sites alle Pakete zu oder von diesen Adressen blockieren und weil es nicht möglich ist, über DNS-PTR-Einträge aussagekräftige Namen an diese Adressen anzuhängen, da sie ICMP-Nachrichten initiieren, die nicht möglich sind zurückverfolgt zu ihrer Quelle und möglicherweise anderen Gründen neben. Es klingt jedoch so, als ob Ihr Internetdienstanbieter eine RFC1918/30 verwendet, um die Schnittstelle zwischen Ihnen und Ihnen zu nummerieren. Trotz der Empfehlung, es nicht zu tun, wird es tatsächlich gut funktionieren, und Sie können dieser Situation mit nur einer Schwierigkeit begegnen (siehe unten).

Die Beschwerde des ISP über ARP-Probleme mit einem Subnetz größer als/30 klingt falsch. Es ist wahr, dass die Leistung eines Routers durch nutzlose ARP-Anforderungen für nicht existierende Adressen auf einer Schnittstelle mit einem großen Teilsubnetz beeinflusst werden kann, aber das Teilnetz muss sowohl groß als auch dünn sein (sehr viele ungenutzte Adressen enthalten). Dies liegt daran, dass nur ARP-Anfragen für Adressen, die nicht im Subnetz verwendet werden, endlos abgelaufen und wiederholt werden müssen, wodurch der Router stecken bleiben würde. Wenn sie Ihre Schnittstelle zu einem (öffentlichen)/29 aktualisieren würden, wäre sie weder groß noch spärlich (ich gehe davon aus, dass Sie tatsächlich alle oder fast alle Adressen auf der/29 verwenden würden). Die Leute sind berechtigterweise besorgt über ARP-Probleme mit/64 IPv6-Subnetzen (die offensichtlich groß sind und immer spärlich sein werden, da die Anzahl der Hosts im Subnetz niemals das Maximum erreichen wird), aber es klingt lächerlich, sich um a/29 zu kümmern.

Es gibt gute Nachrichten mit dieser Konfiguration: Da der Internetdienstanbieter Ihre public/29 nicht auf einer beliebigen Schnittstelle konfiguriert, müssen Sie die erste und die letzte IP-Adresse des Blocks nicht als Broadcast-Adressen reservieren, und das ist auch nicht nötig für den ISP, um eine der Adressen auf ihrem eigenen Router zu verbrauchen. So können Sie alle 8 Adressen für sich selbst anstatt nur 5 verwenden.

Folgendes tun Sie:

  1. Konfigurieren Sie die dem ISP zugewandte Schnittstelle mit der vom ISP bereitgestellten Adresse 172.16.x.x/30.

  2. Fügen Sie der lo-Schnittstelle den/29-Block hinzu: /etc/network/interfaces:

    iface lo inet loopback
            up ip addr add a.b.c.d/29 dev lo
  3. Richten Sie Ihr Standardgateway auf die Seite des ISPs dieses Links ein 172.16.x.otherside.

    Jetzt kommt die Schwierigkeit, die ich bereits erwähnt habe: Standardmäßig initiiert der Server abgehende Verbindungen (DNS-Anfragen, ausgehende E-Mails, Softwareupdate-Prüfungen, ausgehende Verbindungen zu Datenbanken oder was auch immer Ihr Server tut, statt selbst) Wenn ein Client den Server kontaktiert, verwendet der Server 172.16.xx als Quelladresse der Pakete, da dies die Adresse ist, die an die Schnittstelle angehängt ist, über die die Pakete abgehen. Wenn der Server unter Verwendung dieser Quelladresse versucht, Ziele im Internet zu erreichen, funktioniert er offensichtlich nicht. Sie müssen dem Befehl route eine Option zuweisen, um eine Standardroute mit einer angepassten Quelladresse zu installieren.

    Den normalen gateway 172.16.x.otherside -Eintrag auslassen und stattdessen in /etc/network/interfaces konfigurieren:

    iface ethSOMETHING inet static
            [other configuration directives]
            up ip route add default via 172.16.x.otherside src a.b.c.d

    Wählen Sie für a.b.c.d eine der Adressen aus Ihrer/29 aus, die Sie als "Haupt" -Adresse Ihres Servers betrachten.

I asked the ISP to provide ipv6 address block. They say that the router where my link terminates at ISP does not have ipv6 support.

Wir freuen uns alle auf den Tag, an dem das vorbei ist, aber das ist leider immer noch der größte Teil der Welt, den ich kenne.

So they said that if I'm ready connect to their edge router via a private 172.16.x.x/30 subnet, they can provide me ipv6 block. However, they'll give me a public ipv4/29 routed to me via 172.16.x.x/30 which I can use to host my websites. But the problem that I have is that I do not want to buy another router so that I can put 172.16.x.x/30 on the ISP facing interface and the public/29 on another interface facing my server and NATing router.

Autsch, mehr oder weniger. Hier ist, was ich gelesen habe: Ihr Router wird Ihnen einen 6 bis 4 Tunnel über einen privaten IP-Bereich mit einem Next-Hop eines anderen Routers in ihrem Netzwerk geben. Es wird auch ein Interior-Routing-Protokoll verwenden, das besagt, dass Ihr Privatraumsystem die nächste Hop-Adresse für Ihren öffentlichen Adressraum ist.

What I want to know is if I can use 172.16.x.x/30 to connect to ISP and also use the public/29 on the same Ubuntu server to host websites and to do NATing. My router has more than 5 NICs and I can use vlans also.

ISP's edge router supports ipv6 but the reason why they cannot directly give me a public subnet is this. At present my link terminates at a switch which is connected to the edge via 172.16.x.x.

Es klingt für mich so, als ob Sie die äußeren Adressen von allem, was Sie Server bereitstellen möchten, über eine externe Schnittstelle, die an den Router angeschlossen ist, platzieren. Weisen Sie alles eth0 und verschiedenen Subschnittstellen (eth0: 0, eth0: 1 usw.) zu und stellen Sie Ihr Standard-Gateway als Schnittstelle für Ihren Router ein.