PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Erweiterung von Socket SW auf IPv6?



7.e.Q
09-05-2007, 08:09
Hi Leute,

was ist alles notwendig, um ein auf IPv4 basiertes Programm auf IPv6 zu erweitern? Unter anderem legt unsere Software TCP und UDP Sockets an, auch RAW Sockets, soweit ich weiß. Desweiteren leget unsere Software über ioctl() auch neue eth-Interfaces mit IPv4 Adressen an (ich wollte da mal 'ne Lib zu entwickeln; bin ich noch nicht zu gekommen). Send/Receive werden selbstverständlich verwendet, sowie SendTo/ReceiveFrom etc. Also das volle Programm.

Was müssten wir nun in Anbetracht der genannten Umstände alles tun, damit diese Software auch mit IPv6 arbeitet?

Danke!

Grüße,
Hendrik

PS: Rückfragen sind natürlich durchaus erwünscht.

7.e.Q
05-06-2007, 08:29
Weiß keiner??? :confused::confused::confused:

RapidMax
05-06-2007, 09:02
Im aktuellen iX ist ein guter Artikel zu der Portierung von IPv4 nach IPv6: Grundsätzlich sollten die normalen Socket kompatibel sein. Probleme entstehen bei folgenden Stellen:


Die Strukturen, welche IP-Adressen aufnehmen (binär oder als String) müssen genug lang sein für IPv6 Adressen.
gethostbyaddr() und gethostbyname() habe schon bei IPv4 Probleme mit mehreren Addressen pro Interface. Sie sollten daher durch getaddrinfo() und getnameinfo() ersetzt werden.
Wenn URL geparst werden, dann muss berücksichtig werden dass die IPv6 Adressen statt Punkten "." Doppelpunkte ":" enthält. Besonders bei Portangaben kann das zu Probleme führen, da diese bei IPv4 oft durch einen Doppelpunkt getrennt werden.
Immer wenn IP-Adressen im Protokoll enthalten sind, führt das zu Problemen, da hier die Container für IPv6 Adressen erweitert werden müssen.
Wenn ein Programm auf bestimmten Adressen hören soll (bind(), listen()), dann muss da vermutlich gewisse Anpassungen rein.


Wie es mit Raw-Sockets aussieht kann ich nicht sagen.

Gruss, Andy