[Berlin-wireless] IPv6 Konfiguration
Alina Friedrichsen
x-alina
Do Apr 1 17:01:12 CEST 2010
Hallo Sven-Ola!
> (OMA, Alzheimer: warst du nicht letztens untot? Bis zum Rentenalter hast du
> noch ein paar Jahrzehnte...)
Werd jedenfalls von Jahr zu Jahr immer mueder und kann mich nicht mehr
konzentrieren, so das ich es nur alle paar Tage/Wochen noch schaffe
etwas zu programmieren.
Ursache bislang ungeklaert. Mein Hausarzt tut nichts, mein Gynaekologe
hat mich jetzt, nach den ein Diabetes-Test negativ ausgefallen war, an
eine Internistin verwiesen.
So viel zu Layer 8...
> Egal - ich hab' nicht verstanden woher die Abbildungsvorschrift kommt
Von RFC 2373.
Die relevanten Zitate:
> APPENDIX A : Creating EUI-64 based Interface Identifiers
> [EUI64] defines a method to create a EUI-64 identifier from an IEEE
> 48bit MAC identifier. This is to insert two octets, with hexadecimal
> values of 0xFF and 0xFE, in the middle of the 48 bit MAC (between the
> company_id and vendor supplied id).
> The only change is inverting the value of the universal/local bit.
> bzw.
> welchen Sinn die hat / mal hatte.
Das musst Du die AutorInnen fragen, es geht wohl hauptaechlich darum,
das der Standard eingeplant hat, in Zukunft in Layer 2 von den
MAC-Adressen zu den laengeren EUI-64 zu wechseln, wenn erstere zu neige
gehen. Deswegen wurde der Standard gleich fuer EUI-64 Adressen
geschrieben und die MAC-Adressen werden nur in diese Konvertiert.
> Potentielle Vergabekonflikte mit
> existierenden Implementationen vermeiden ist natuerlich sinnvoll. Ist das
> irgendwo im IPv6 Stack des Kernels kodiert?
Ja, die Zeile muesste ich jetzt suchen, aber das siehst Du auch, wenn Du
"ip addr" eingibst. Das ist mindestens Deine link-local Adresse so
kodiert:
> 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
> link/ether 00:26:18:78:3a:5d brd ff:ff:ff:ff:ff:ff
> inet 217.140.74.91/28 brd 217.140.74.95 scope global eth0
> inet6 2001:4b88:10fa:0:226:18ff:fe78:3a5d/64 scope global dynamic
> valid_lft 86300sec preferred_lft 14300sec
> inet6 fe80::226:18ff:fe78:3a5d/64 scope link
> valid_lft forever preferred_lft forever
> Achso. Damit es etwas konkreter wird: kleines Shell-Script anbei
Jep, sieht gut aus, das Script berechnet den Interface Identifier nach
RFC 2373 korrekt, nur kleine Fluechtigkeitsfehler waren drin.
Hier eine korrigierte und getestete Version:
> #!/bin/sh
>
> make_ula() {
> IFS=:
> set $(ip link show "$1" | sed -n 's/ \+link\/ether \([^ ]\+\).*/0x\1/p')
> unset IFS
> printf ":%02x%02x" "$(($1 ^ 2))" "0x$2" "0x$3" 0xff 0xfe "0x$4" "0x$5" "0x$6"
> echo
> }
>
> ip -f inet6 addr flush dev "$1" scope global
> ip addr add "$PREFIX$(make_ula "$1")/64" dev "$1"
Liebe Gruesse
Alina
Mehr Informationen über die Mailingliste Berlin