Zum Inhalt springen

IPv6/Adresse/Aufloesung: Unterschied zwischen den Versionen

Aus Foxwiki
Die Seite wurde neu angelegt: „== Adress-Auflösung == Zusätzliche Informationen sind hier zu finden * Linux & IPv6: getaddrinfo and search domains - Research * <nowiki>RFC 3484</nowiki> on Linux * Karl Auer's Blog: Controlling IPv6 source address selection , IPv6 Source Address Selection - what, why, how * Into6: /etc/gai.conf - it ain't what you think it is === Address-Auflösung & Ziel-Adressen-Auswahl === Die Auflösung von Namen zu einer IPv4- bzw. IPv6-Adresse wird üblicherwe…“
 
K Dirkwagner verschob die Seite IPv6/Adress-Aufloesung nach IPv6/Adresse/Aufloesung
 
(7 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
== Adress-Auflösung ==
== Adress-Auflösung ==
Zusätzliche Informationen sind hier zu finden
* Linux & IPv6: getaddrinfo and search domains - Research
* <nowiki>RFC 3484</nowiki> on Linux
* Karl Auer's Blog: Controlling IPv6 source address selection , IPv6 Source Address Selection - what, why, how
* Into6: /etc/gai.conf - it ain't what you think it is
=== Address-Auflösung & Ziel-Adressen-Auswahl ===
=== Address-Auflösung & Ziel-Adressen-Auswahl ===
Die Auflösung von Namen zu einer IPv4- bzw. IPv6-Adresse wird üblicherweise durch die Benutzung einer libc resolver Bibliothek durchgeführt. Dazu wird normalerweise die Funktion ''getaddrinfo'' benutzt. Im Fall, dass mehr als eine IPv6-Adresse zurückgegeben wird, soll nach <nowiki>RFC 3484</nowiki> / Default Address Selection for Internet Protocol version 6 eine Sortierung angewandt werden, die optional auch konfiguriert werden kann.
Die Auflösung von Namen zu einer IPv4- bzw. IPv6-Adresse wird üblicherweise durch die Benutzung einer libc resolver Bibliothek durchgeführt.  
* Dazu wird normalerweise die Funktion ''getaddrinfo'' benutzt.  
* Im Fall, dass mehr als eine IPv6-Adresse zurückgegeben wird, soll nach <nowiki>RFC 3484</nowiki> / Default Address Selection for Internet Protocol version 6 eine Sortierung angewandt werden, die optional auch konfiguriert werden kann.


Die ”Magie” ist durch die Datei /etc/gai.conf konfigurierbar (welche fehlt oder leer ist, solange Standardwerte gelten sollen). Die vorgegebene Sortierung ist üblicherweise in der Dokumentation (z.B. /usr/share/doc/glibc-common/gai.conf) oder im Manual ”man gai.conf” zu sehen.
Die "Magie" ist durch die Datei /etc/gai.conf konfigurierbar (welche fehlt oder leer ist, solange Standardwerte gelten sollen).  
* Die vorgegebene Sortierung ist üblicherweise in der Dokumentation (z.B. /usr/share/doc/glibc-common/gai.conf) oder im Manual "man gai.conf" zu sehen.


Für die Kontrolle der Sortierung via benutzerdefinierter Konfiguration ist für Tests folgendes notwendig:
; Kontrolle der Sortierung via benutzerdefinierter Konfiguration
* Ein Hostname im DNS, der mehr als eine IPv6-Adresse zurückgibt, z.&nbsp;B.
* Lookup via DNS (mit /etc/hosts klappt es nicht)
* /etc/gai.conf mit einer passenden Konfiguration, z.&nbsp;B.
* Für Tests kann dann ein Telnet-Client benutzt werden:
* Wenn nun die precedence geändert wird in der Konfiguration:
* Dann ändert sich die Reihenfolge entsprechend


* Ein Hostname im DNS, der mehr als eine IPv6-Adresse zurückgibt, z.B.
=== Quell-Addressen-Auswahl ===
Source address selection in Linux wird automatisch vom Kernel vorgenommen, üblicherweise abhängig von den Routing-Tabellen und unter der Vorgabe, den Scope einer Adresse beizubehalten.


{| class="wikitable"
==== Quell-Adressen-Auswahl mit "ip addrlabel" ====
|
Mit einer Erweiterung der internen "ip addrlabel" Tabelle kann eine Quell-Adresse zu einer Ziel-Adresse gebunden werden. Bindung wird hier durch die Angabe des gleichen Labels (einer Nummer) konfiguriert.
|}


* Lookup via DNS (mit /etc/hosts klappt es nicht)
* Standard von "ip addrlabel" (hier von CentOS 6):
* /etc/gai.conf mit einer passenden Konfiguration, e.g.


{| class="wikitable"
|
|}


* Für Tests kann dann ein Telnet-Client benutzt werden:


{| class="wikitable"
* Das System ist multihomed (hier an einem Interface), der Router verteilt 2 Präfixe mit Hilfe von radvd:
|
|}


* Wenn nun die precedence geändert wird in der Konfiguration:


{| class="wikitable"
|
|}


* Dann ändert sich die Reihenfolge entsprechend
* Eine Verbindung zum Server zeigt nun:


{| class="wikitable"
|
|}


=== Quell-Addressen-Auswahl ===
Source address selection in Linux wird automatisch vom Kernel vorgenommen, üblicherweise abhängig von den Routing-Tabellen und unter der Vorgabe, den Scope einer Adresse beizubehalten.


==== Quell-Adressen-Auswahl mit ”ip addrlabel” ====
* Ein tcpdump mit filter "tcp and dst port 23" zeigt nur die Benutzung der oberen lokalen Quell-IPv6-Adresse
Mit einer Erweiterung der internen ”ip addrlabel” Tabelle kann eine Quell-Adresse zu einer Ziel-Adresse gebunden werden. Bindung wird hier durch die Angabe des gleichen Labels (einer Nummer) konfiguriert.


* Standard von ”ip addrlabel” (hier von CentOS 6):


{| class="wikitable"
|
|}


* Das System ist multihomed (hier an einem Interface), der Router verteilt 2 Präfixe mit Hilfe von radvd:
* Wenn nun Quelle und Ziel mit Hilfe von "ip addrlabel" zusammengebunden werden:


{| class="wikitable"
|
|}


* Eine Verbindung zum Server zeigt nun:


{| class="wikitable"
* Was in folgender "ip addrlabel"resultiert:
|
|}


* Ein tcpdump mit filter ”tcp and dst port 23” zeigt nur die Benutzung der oberen lokalen Quell-IPv6-Adresse


{| class="wikitable"
|
|}


* Wenn nun Quelle und Ziel mit Hilfe von ”ip addrlabel” zusammengebunden werden:
* Und dann nochmal eine Verbindung zum Server versucht wird


{| class="wikitable"
|
|}


* Was in folgender ”ip addrlabel”resultiert:


{| class="wikitable"
* tcpdump mit filter "tcp and dst port 23" zeigt nun die Benutzung beider Quell-IPv6-Adressen wie konfiguriert
|
|}


* Und dann nochmal eine Verbindung zum Server versucht wird


{| class="wikitable"
Persistente Konfiguration von "ip addrtable" ist wahrscheinlich in aktuellen Linux-Distributionen nicht unterstützt, somit wäre eine Erweiterung der Netzwerk-Init-Scripts oder rc.local notwendig. Ein Skript, welches Informationen aus /etc/gai.conf in entsprechendes "ip addrtable" umwandelt, gibt es hier: /etc/gai.conf - it ain't what you think it is
|
|}


* tcpdump mit filter ”tcp and dst port 23” zeigt nun die Benutzung beider Quell-IPv6-Adressen wie konfiguriert
; Zusätzliche Informationen sind hier zu finden


{| class="wikitable"
* Linux & IPv6: getaddrinfo and search domains - Research
|
* <nowiki>RFC 3484</nowiki> on Linux
|}
* Karl Auer's Blog: Controlling IPv6 source address selection , IPv6 Source Address Selection - what, why, how
Persistente Konfiguration von ”ip addrtable” ist wahrscheinlich in aktuellen Linux-Distributionen nicht unterstützt, somit wäre eine Erweiterung der Netzwerk-Init-Scripts oder rc.local notwendig. Ein Skript, welches Informationen aus /etc/gai.conf in entsprechendes ”ip addrtable” umwandelt, gibt es hier: /etc/gai.conf - it ain't what you think it is
* Into6: /etc/gai.conf - it ain't what you think it is
[[Kategorie:IPv6]]
[[Kategorie:IPv6/Adresse]]

Aktuelle Version vom 21. April 2025, 12:16 Uhr

Adress-Auflösung

Address-Auflösung & Ziel-Adressen-Auswahl

Die Auflösung von Namen zu einer IPv4- bzw. IPv6-Adresse wird üblicherweise durch die Benutzung einer libc resolver Bibliothek durchgeführt.

  • Dazu wird normalerweise die Funktion getaddrinfo benutzt.
  • Im Fall, dass mehr als eine IPv6-Adresse zurückgegeben wird, soll nach RFC 3484 / Default Address Selection for Internet Protocol version 6 eine Sortierung angewandt werden, die optional auch konfiguriert werden kann.

Die "Magie" ist durch die Datei /etc/gai.conf konfigurierbar (welche fehlt oder leer ist, solange Standardwerte gelten sollen).

  • Die vorgegebene Sortierung ist üblicherweise in der Dokumentation (z.B. /usr/share/doc/glibc-common/gai.conf) oder im Manual "man gai.conf" zu sehen.
Kontrolle der Sortierung via benutzerdefinierter Konfiguration
  • Ein Hostname im DNS, der mehr als eine IPv6-Adresse zurückgibt, z. B.
  • Lookup via DNS (mit /etc/hosts klappt es nicht)
  • /etc/gai.conf mit einer passenden Konfiguration, z. B.
  • Für Tests kann dann ein Telnet-Client benutzt werden:
  • Wenn nun die precedence geändert wird in der Konfiguration:
  • Dann ändert sich die Reihenfolge entsprechend

Quell-Addressen-Auswahl

Source address selection in Linux wird automatisch vom Kernel vorgenommen, üblicherweise abhängig von den Routing-Tabellen und unter der Vorgabe, den Scope einer Adresse beizubehalten.

Quell-Adressen-Auswahl mit "ip addrlabel"

Mit einer Erweiterung der internen "ip addrlabel" Tabelle kann eine Quell-Adresse zu einer Ziel-Adresse gebunden werden. Bindung wird hier durch die Angabe des gleichen Labels (einer Nummer) konfiguriert.

  • Standard von "ip addrlabel" (hier von CentOS 6):


  • Das System ist multihomed (hier an einem Interface), der Router verteilt 2 Präfixe mit Hilfe von radvd:


  • Eine Verbindung zum Server zeigt nun:


  • Ein tcpdump mit filter "tcp and dst port 23" zeigt nur die Benutzung der oberen lokalen Quell-IPv6-Adresse


  • Wenn nun Quelle und Ziel mit Hilfe von "ip addrlabel" zusammengebunden werden:


  • Was in folgender "ip addrlabel"resultiert:


  • Und dann nochmal eine Verbindung zum Server versucht wird


  • tcpdump mit filter "tcp and dst port 23" zeigt nun die Benutzung beider Quell-IPv6-Adressen wie konfiguriert


Persistente Konfiguration von "ip addrtable" ist wahrscheinlich in aktuellen Linux-Distributionen nicht unterstützt, somit wäre eine Erweiterung der Netzwerk-Init-Scripts oder rc.local notwendig. Ein Skript, welches Informationen aus /etc/gai.conf in entsprechendes "ip addrtable" umwandelt, gibt es hier: /etc/gai.conf - it ain't what you think it is

Zusätzliche Informationen sind hier zu finden
  • Linux & IPv6: getaddrinfo and search domains - Research
  • RFC 3484 on Linux
  • Karl Auer's Blog: Controlling IPv6 source address selection , IPv6 Source Address Selection - what, why, how
  • Into6: /etc/gai.conf - it ain't what you think it is