Verständnisfragen zur (Auto)Konfiguration von IPv6 Adressen und /proc/sys/net/

Blutschlumpf

Fleet Admiral
Registriert
März 2001
Beiträge
20.347
Ich habe hier einmal Debian mit 3.7.1 Kernel und ein Verständnisproblem zur IPv6 Interface-Config.

IPv6 habe ich manuell konfiguriert:
ifconfig eth0 inet6 add 2a00:e10:0:9::12/64

Nun habe ich aber gesehen, dass da eine 2. Adresse (bzw. 3 neben der link-local) zugekommen ist:
Code:
root@car2-dus3:~# ip -6 addr list dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
    inet6 2a00:e10:0:9::12/64 scope global
       valid_lft forever preferred_lft forever
    inet6 2a00:e10:0:9:215:17ff:fea5:befc/64 scope global dynamic
       valid_lft 2549433sec preferred_lft 562233sec

Ich frage mich nun woher die gekommen ist.
In dem Netz sind nur 2 Hosts, der obige und ein Cisco Router, der keine Adressen vergibt ("ipv6 nd ra suppress" gesetzt).

IPv6: Privacy Extensions (RFC 3041) support / CONFIG_IPV6_PRIVACY habe ich nicht einkompiliert (auch nicht als Modul), /proc/sys/net/ipv6/conf/*/use_tempaddr ist demnach auch nicht vorhanden.

Ich frage mich jetzt woher die IP kommt bzw. woher der Kernel die Daten dazu nimmt und warum er das macht.
Jemand ne Erklärung ?


In dem Zusammenhang ist mir auch aufgefallen, dass mein Script, welches die beiden Werte hier auf 0 setzt, nicht mehr funktioniert:
/proc/sys/net/ipv6/conf/all/autoconf
/proc/sys/net/ipv6/conf/all/accept_ra

Früher hat das afair die Config aller existierender Interfaces (also /proc/sys/net/ipv6/conf/eth0/autoconf usw.) überschrieben, soweit ich sehe hat das aktuell aber keine Funktion mehr, sprich /proc/sys/net/ipv6/conf/all/autoconf steht dann auf 0, /proc/sys/net/ipv6/conf/eth0/autoconf verbleibt wie es war.

Ist das ein Bug oder korretk so ?
Kann mir jemand die Funktion des "all" Eintrags erläutern, falls ich die gerade fehlinterpretiere ?

Code:
root@car2-dus3:~# echo "0"  > /proc/sys/net/ipv6/conf/all/autoconf
root@car2-dus3:~# cat /proc/sys/net/ipv6/conf/eth0/autoconf
1
root@car2-dus3:~#
 
Da die Frage kam:
Der Rechner steht in nem Rechenzentrum mit öffentlicher IP, es gibt keine Hardware zwischen Rechner und Internet (außer dem Patchkabel), also eher keine heimliche Vergabe vom DSL-Router oder ähnlich.

Edit: niemand ne Idee ?
 
Zuletzt bearbeitet:
Moin,
habe inzwischen rausgefunden, dass die Cisco doch was verschickt hat (SLAAC auf Clientseite war ja bekanntermaßen an).
Zusätzlich zu "ipv6 nd ra suppress" war/ist noch ein "ipv6 nd prefix default no-advertise" im IOS notwendig.

Somit wäre Part 1 gelöst, fehlt noch die Info was /proc/sys/net/ipv6/conf/all/* definieren soll.

edit:
Niemand ne Ahnung zu Punkt 2 ?
 
Zuletzt bearbeitet:
Ich habe folgendes dazu gefunden:

http://madduck.net/docs/ipv6/
[...]while the all values override the values for all interfaces[...]

Unfortunately, this does not seem to work. It seems as if writing to all does not affect existing interfaces, as documented in this thread on the linux-kernel mailing list.
http://marc.info/?l=linux-kernel&m=123599691025508&w=2

Bleibt wohl nur übrig die Interfaces direkt zu konfigurieren.

Der Eintrag in der Mailing Liste ist schon recht alt. Umso ärgerlicher wenn das immernoch aktuell sein sollte.
 
Danke für die Info, jetzt weiß ich wenigstens, dass das ein genereller Bug bzw. ne lausige Implementierung ist. :rolleyes:
 
Zurück
Oben