Wie weise ich der Bindung mehrere IP-Adressen und Subnetze zu?

Wie weise ich der Bindung mehrere IP-Adressen und Subnetze zu?

Ich habe einen Heim-Webserver, /29 IPv4-Adressen (3 derzeit aus dem Block zuweisbar, da ich ein geroutetes Subnetz mit Gateway-Adressanforderung habe) und zwei Adressen, die meinen DNS-Einträgen bereits zugewiesen sind. Darüber hinaus habe ich ein /64 IPv6-Subnetz mit zwei Adressen, die meinen DNS-Einträgen bereits zugewiesen sind.

Ich habe meine Datei sysconfig > network-scripts (verwaltet über Network Manager, nicht DHCP) geändert, um alle IPv4-Adressen meinem System zur Verfügung zu stellen, wobei das IPv6-Subnetz als sekundär zugewiesen ist, wie gezeigt (was ich für richtig halte, aber sagen Sie mir bitte, wenn es nicht so ist):

IPV6ADDR=2a10:b900:10e4:1::2/64
IPV6ADDR_SECONDARIES=2a10:b900:10e4:1::/64
IPV6_DEFAULTGW=2a10:b900:10e4:1::

Das Problem? - Ich muss meine Bind-Zonendateien ändern, um sowohl die zusätzliche verfügbare IP-Adresse als auch das gesamte IPv6-Subnetz zu verwenden. Ich vermute, dass ich möglicherweise IPv4 als zusätzlichen A-Eintrag hinzufügen könnte (obwohl ich in der Vergangenheit Probleme hatte, bei denen dies zu Verbindungsproblemen führte), aber kann mir hier jemand sagen, wie ich das IPv6-Subnetz hinzufügen würde?

Antwort1

Um die Kommentare zusammenzufassen: Es gibt keine Antwort, da die Frage vollständig auf falschen Annahmen basiert.

[…] mit dem als sekundäres Subnetz zugewiesenen IPv6-Subnetz, wie gezeigt

IPV6ADDR=2a10:b900:10e4:1::2/64
IPV6ADDR_SECONDARIES=2a10:b900:10e4:1::/64

Dadurch wird nicht das gesamte Subnetz zugewiesen. Es wird eine einzelne Adresse zugewiesen (die IID-Adresse mit lauter Nullen, 2a10:b900:10e4:1:0:0:0:0) und die „Subnetzmaske“ auf /64 gesetzt. Das Verhalten ist identisch mit der Zuweisung jeder anderen Adresse; es gibt keine spezielle Behandlung für …:0:0:0:0. Das /64 gibt in beiden Fällen lediglich an, welche Adressen „on-link“ sind (auf MAC-Ebene über die physische Schnittstelle erreichbar sind).

eine https://-Verbindung kann nicht gemeinsam genutzt werden (d. h.: Sie könnten 10 Verbindungen über dieselbe IP-Adresse haben, wenn es sich um http:// handelt, aber diese gleichen Verbindungen würden 10 IP-Adressen erfordern, wenn es sich um https:// handelte

Nein, das würden sie nicht, denn das zugrundeliegende Transportprotokoll TCP verfügt bereits über einen Multiplexing-Mechanismus – die Kombination aus lokalem Port und Remote-Port. Vorausgesetzt, Sie haben

  1. ein Kunde,
  2. ein Server, der auf einem Port lauscht,

Theoretisch können Sie (local_addr, remote_addr, local_port, remote_port)durch Variieren des lokalen Ports bis zu 65535 einzigartige Kombinationen haben. In der Praxis liegt die Zahl irgendwo zwischen ~32k und ~48k, je nachdem, welchen „flüchtigen Port“-Bereich das Betriebssystem konfiguriert hat.

Dieser Mechanismus ist unabhängig vom Protokoll der oberen Schicht und ein Server kann an Port 443 genauso viele HTTPS-Verbindungen akzeptieren wie an Port 80 HTTP-Verbindungen. In beiden Fällen identifizieren die Netzwerkstapel des Clients und des Servers jedes Paket jeder Verbindung eindeutig.


Ihre Geschichte würde immer noch Sinn ergeben, wenn es um HTTP(S) "virtuelle Hosts" statt um "Verbindungen" gegangen wäre, also um das TeilenDomain Namenauf derselben IP-Adresse. Vor 10–20 Jahren galt noch, dass ein HTTPS-Server (genauer gesagt ein SSL/TLS-Server) nur ein Zertifikat über eine einzige IP-Adresse/einen einzigen Port bereitstellen konnte und daher nur so viele Domänen bedienen konnte, wie das einzelne Zertifikat ausgestellt hatte.

Mittlerweile unterstützen jedoch alle modernen Clients TLS 1.1+ „Server Name Indication“, was es ihnen ermöglicht, während des TLS-Handshakes einen bestimmten Domänennamen anzufordern, sodass der Server vor dem Start des Handshakes auf Anwendungsebene das richtige TLS-Zertifikat auswählen kann.

Zusammenfassend lässt sich sagen, dass die Zuweisung eines Subnetzes zum Server zunächst nicht erforderlich ist.

Zum Schluss noch die technisch wichtigste Frage:

Ich versuche daher eine Lösung zu schaffen, bei der BIND bei Bedarf auf einen Pool von Adressen zurückgreifen kann.

DNS hat eine solche Funktion nicht – nur AAAA-Einträge können auf IPv6-Adressen verweisen, und jeder dieser Einträge kann nur auf eine Adresse verweisen. (Es gibt andere Typen, aber sie haben andere Verwendungszwecke und die meisten Programme werden einfachnicht schauenbei denen.)

Sie müssten die BIND- $GENERATEFunktion verwenden, bei der es sich um ein Makro handelt, das auf viele Datensätze erweitert werden kann, oder einen benutzerdefinierten DNS-Server schreiben, der bei Bedarf Antworten mit zufälligen AAAA-Datensätzen generiert.

verwandte Informationen