Hallo,
ich hab an einem Netzwerkinterface (eth0) mehrere IPv6-Adressen zugewiesen.
/etc/network/interfaces: iface eth0 inet6 static address aaaa:bbbb:cccc:dddd::2 netmask 112 gateway fe80::1 up ip addr add aaaa:bbbb:cccc:dddd::3/112 dev $IFACE up ip addr add aaaa:bbbb:cccc:dddd::4/112 dev $IFACE
Im Gegensatz zu IPv4, wo die zuerst zugewiesene IP standardmäßig verwendet wird, ist es bei IPv6 die zuletzt Zugewiesene. Das mag bei sich wg. Präfixwechsel ändernden Adressen ganz sinnvoll sein. Wenn die IPs aber dauerhaft parallel genutzt werden, ist das eher kontraproduktiv, daß sich bei einer abgehenden Verbindung (ssh) nach einer neu hinzugefügten IP die Absender-IP ändert. Serverdienste können sich an bestimmte IPs binden und antworten dann normalerweise auch mit derselben IP, auf der sie angesprochen werden. Eine abgehende SSH-Verbindung kümmert sich aber nicht um die Source-IP.
Gibt es eine Möglichkeit, eine IPv6-Adresse an einem Interface als Standard zu definieren?
"man ip" war hier nicht sehr hilfreich. In "man ip-address" finde ich Flags wie [primary|secondary], die mir passend erscheinen, aber nur als Filter beim anzeigen erlaubt sind, nicht jedoch gesetzt werden können. "man interfaces" bietet auch keine Option, etwas dementsprechendes zu setzen.
Gruß Rico
Rico Koerner rico@netbreaker.de (Di 22 Jul 2014 21:17:59 CEST):
Hallo,
ich hab an einem Netzwerkinterface (eth0) mehrere IPv6-Adressen zugewiesen.
/etc/network/interfaces: iface eth0 inet6 static address aaaa:bbbb:cccc:dddd::2 netmask 112 gateway fe80::1 up ip addr add aaaa:bbbb:cccc:dddd::3/112 dev $IFACE up ip addr add aaaa:bbbb:cccc:dddd::4/112 dev $IFACE
…
Im Gegensatz zu IPv4, wo die zuerst zugewiesene IP standardmäßig verwendet wird, ist es bei IPv6 die zuletzt Zugewiesene.
Nein, nur bedingt. Eigentlich ist gai.conf dafür verantwortlich. Stichwort „Address Label“. Beim Recherchieren bin ich aber auf
http://biplane.com.au/blog/?p=122
gestossen und mir nun nicht mehr sicher.
Best regards from Dresden/Germany Viele Grüße aus Dresden Heiko Schlittermann
Hallo Heiko,
Am 22.07.2014 21:50, schrieb Heiko Schlittermann:
Rico Koerner rico@netbreaker.de (Di 22 Jul 2014 21:17:59 CEST):
Hallo,
ich hab an einem Netzwerkinterface (eth0) mehrere IPv6-Adressen zugewiesen.
/etc/network/interfaces: iface eth0 inet6 static address aaaa:bbbb:cccc:dddd::2 netmask 112 gateway fe80::1 up ip addr add aaaa:bbbb:cccc:dddd::3/112 dev $IFACE up ip addr add aaaa:bbbb:cccc:dddd::4/112 dev $IFACE
…
Im Gegensatz zu IPv4, wo die zuerst zugewiesene IP standardmäßig verwendet wird, ist es bei IPv6 die zuletzt Zugewiesene.
Nein, nur bedingt. Eigentlich ist gai.conf dafür verantwortlich.
etwas merkwürdig, daß das wieder an einer ganz anderen Stelle zu konfigurieren ist.
Stichwort „Address Label“. Beim Recherchieren bin ich aber auf
Das Thema Address Label hatte ich auch schon im Blick: man ip-addrlabel Aber daraus bin ich auch nicht schlauer geworden.
Ist schon mal ein ein Ansatz und neuer Lesestoff.
gestossen und mir nun nicht mehr sicher.
Ich mir auch nicht, aber das find ich noch raus, notfalls durch probieren in einer VM, dort kann ja nicht viel schief gehen.
Trotzdem DAnke für den Hinweis.
Gruß Rico
Hallo Rico,
On Tue, Jul 22, 2014 at 21:17:59 +0200, Rico Koerner wrote:
ich hab an einem Netzwerkinterface (eth0) mehrere IPv6-Adressen zugewiesen.
/etc/network/interfaces: iface eth0 inet6 static address aaaa:bbbb:cccc:dddd::2 netmask 112 gateway fe80::1 up ip addr add aaaa:bbbb:cccc:dddd::3/112 dev $IFACE up ip addr add aaaa:bbbb:cccc:dddd::4/112 dev $IFACE
Im Gegensatz zu IPv4, wo die zuerst zugewiesene IP standardmäßig verwendet wird, ist es bei IPv6 die zuletzt Zugewiesene. Das mag bei sich wg. Präfixwechsel ändernden Adressen ganz sinnvoll sein. Wenn die IPs aber dauerhaft parallel genutzt werden, ist das eher kontraproduktiv, daß sich bei einer abgehenden Verbindung (ssh) nach einer neu hinzugefügten IP die Absender-IP ändert.
Serverdienste können sich an bestimmte IPs binden und antworten dann normalerweise auch mit derselben IP, auf der sie angesprochen werden. Eine abgehende SSH-Verbindung kümmert sich aber nicht um die Source-IP.
Du kannst bei ssh die Source-Adresse setzen:
ssh -b Source-IP user@host
Gibt es eine Möglichkeit, eine IPv6-Adresse an einem Interface als Standard zu definieren?
Du kannst die Wahl der Source-Adresse auch uebers Routing vorgeben:
ip -6 route add default via fe80::1 dev eth0 src aaaa:bbbb:cccc:dddd::3
Gruss, Chris
Hallo Chris,
Am 22.07.2014 22:59, schrieb Christian Perle:
Hallo Rico,
Du kannst bei ssh die Source-Adresse setzen:
ssh -b Source-IP user@host
das ist zwar etwas umständlich, könnte man aber in der ssh_config verewigen. Ziel war aber eher was generisches, wenn nicht anders angegeben, nimm einen definierten Standardwert. Sonst muss man ja bei jedem Programm nach einer passenden Option suchen.
Du kannst die Wahl der Source-Adresse auch uebers Routing vorgeben:
ip -6 route add default via fe80::1 dev eth0 src aaaa:bbbb:cccc:dddd::3
Das gefällt mir viel besser, muss nur noch rausfinden, wie das in der /etc/network/interfaces angegeben werden kann, da die passende Option fehlt. Spontan fällt mir nur ein, das gateway wegzulassen und die Route mit up oder post-up zu setzen. Aber Prio oder sonstiges wären ja auch nur auf dem Weg zu setzen.
Danke.
Rico
Hallo Rico,
On Sat, Jul 26, 2014 at 00:56:06 +0200, Rico Koerner wrote:
Du kannst die Wahl der Source-Adresse auch uebers Routing vorgeben:
ip -6 route add default via fe80::1 dev eth0 src aaaa:bbbb:cccc:dddd::3
Kleine Anmerkung noch dazu: Durch diese Route setzt der Kernel die Source-IP genau dann auf die angegebene, wenn die Anwendung selbst keine eigene Source-IP setzt. "ssh -b ..." wuerde also gewinnen.
Das gefällt mir viel besser, muss nur noch rausfinden, wie das in der /etc/network/interfaces angegeben werden kann, da die passende Option fehlt. Spontan fällt mir nur ein, das gateway wegzulassen und die Route mit up oder post-up zu setzen. Aber Prio oder sonstiges wären ja auch nur auf dem Weg zu setzen.
Was Besseres als "gateway" weglassen und "post-up" benutzen faellt mir auch nicht ein. Das iproute2-Tool (/sbin/ip) kann sehr viel mehr, als mit der nativen Syntax von /etc/network/interfaces konfigurierbar ist. Policy Routing, Source-IP Vorgabe, Network Namespaces, Tunnel, XFRM...
Gruss, Chris
Hi,
Chris hat die eigentliche Frage ja schon beantwortet.
Kleine Ergänzung zu Heiko:
Die Source-IP wird per RFC nach einem simplen Algorithmus gewählt:
1) Stelle fest über welches Interface die Pakete rausgehen. 2) Eliminiere alle IPs, die bereits abgelaufen sind. 3) Nimm alle IPs dieses Interface und stelle fest wie viele Bits (von links) sie mit der Destination-IP gemeinsam haben (common Prefix) 4) Nimm die mit dem längsten gemeinsamen Prefix. 5) Gibt es mehrere: sortiere nach Priorität und Neuheit.
[kann sein dass ich mich in der Reihenfolge etwas vertan habe]
Mit der Manipulation von Prioritäten, Listenreihenfolgen, etc. kann man den Algorithmus beeinflussen. Aber eigentlich will man das nicht.
On Tuesday 22 July 2014 21:17:59 Rico Koerner wrote:
Im Gegensatz zu IPv4, wo die zuerst zugewiesene IP standardmäßig verwendet wird, ist es bei IPv6 die zuletzt Zugewiesene. Das mag bei sich wg. Präfixwechsel ändernden Adressen ganz sinnvoll sein. Wenn die IPs aber dauerhaft parallel genutzt werden, ist das eher kontraproduktiv, daß sich bei einer abgehenden Verbindung (ssh) nach einer neu hinzugefügten IP die Absender-IP ändert. Serverdienste können sich an bestimmte IPs binden und antworten dann normalerweise auch mit derselben IP, auf der sie angesprochen werden. Eine abgehende SSH-Verbindung kümmert sich aber nicht um die Source-IP.
Gibt es eine Möglichkeit, eine IPv6-Adresse an einem Interface als Standard zu definieren?
Jetzt meine neugierige Frage: wozu braucht man das? Warum genau ist eine geänderte IP bei selben Host, dauerhafter Zuweisung aller IPs und identischer DNS-Auflösung kontraproduktiv?
Es trägt weder zu Zuverlässigkeit, noch zu Sicherheit irgendwas bei. Und besonders ästhetisch oder numerologisch relevant ist keine der Adressen.
Konrad
Am 23.07.2014 10:28, schrieb Konrad Rosenbaum:
Hi,
Chris hat die eigentliche Frage ja schon beantwortet.
Kleine Ergänzung zu Heiko:
Die Source-IP wird per RFC nach einem simplen Algorithmus gewählt:
- Stelle fest über welches Interface die Pakete rausgehen.
ist ja dasselbe
- Eliminiere alle IPs, die bereits abgelaufen sind.
in dem Fall auch irrelevant
- Nimm alle IPs dieses Interface und stelle fest wie viele Bits (von links)
sie mit der Destination-IP gemeinsam haben (common Prefix) 4) Nimm die mit dem längsten gemeinsamen Prefix.
hier auch identisch
- Gibt es mehrere: sortiere nach Priorität und Neuheit.
Prio ist noch ein Ansatz, momentan wahrscheinlich gleich da nichts explizit eingestellt wurde, Neuheit ist der unangenehme Effekt.
[kann sein dass ich mich in der Reihenfolge etwas vertan habe]
Nicht so schlimm, trotzdem genug dazugelernt. :)
Mit der Manipulation von Prioritäten, Listenreihenfolgen, etc. kann man den Algorithmus beeinflussen. Aber eigentlich will man das nicht
In dem Fall schon ein wenig. Die zuerst definierte ist sozusagen die Haupt-IP und der Rest sind nur zusätzliche, die primär nur ankommend interessant sind. Ich gehe mal davon aus, daß die Antwortpakete bei den zusätzlichen IPs dann auch mit der zugehörigen SrcIP wieder rausgehen. Bei IPv4 schafft das der Apache ja auch.
Der Ansatz von Chris mit der SrcIP in der defaultroute sieht erstmal am elegantesten aus.
Rico
lug-dd@mailman.schlittermann.de