Ircd: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Rabe (Diskussion | Beiträge) ein anfang, Zusammenhang OpenBSD+IPv6 ... |
(kein Unterschied)
|
Aktuelle Version vom 1. April 2007, 03:29 Uhr
Der Internet Relay Chat Dæmon
ircd, IPv6 und OpenBSD[Bearbeiten]
Die Implementierung bzw. Portierung von ircd auf IPv6 wurde mit Hilfe der in RFC2553 beschriebenen Methode der Kompatiblität zu IPv4 durchgeführt.
- RFC2553, 3.7 Compatibility with IPv4 Nodes
The API also provides a different type of compatibility: the ability
for IPv6 applications to interoperate with IPv4 applications. This
feature uses the IPv4-mapped IPv6 address format defined in the IPv6
addressing architecture specification [2]. This address format
allows the IPv4 address of an IPv4 node to be represented as an IPv6
address. The IPv4 address is encoded into the low-order 32 bits of
the IPv6 address, and the high-order 96 bits hold the fixed prefix
0:0:0:0:0:FFFF. IPv4- mapped addresses are written as follows:
::FFFF:<IPv4-address>
These addresses can be generated automatically by the
getipnodebyname() function when the specified host has only IPv4
addresses (as described in Section 6.1).
Applications may use PF_INET6 sockets to open TCP connections to IPv4
nodes, or send UDP packets to IPv4 nodes, by simply encoding the
destination's IPv4 address as an IPv4-mapped IPv6 address, and
passing that address, within a sockaddr_in6 structure, in the
connect() or sendto() call. When applications use PF_INET6 sockets
to accept TCP connections from IPv4 nodes, or receive UDP packets
from IPv4 nodes, the system returns the peer's address to the
application in the accept(), recvfrom(), or getpeername() call using
a sockaddr_in6 structure encoded this way.
Few applications will likely need to know which type of node they are
interoperating with. However, for those applications that do need to
know, the IN6_IS_ADDR_V4MAPPED() macro, defined in Section 6.7, is
provided.
Zum Zeitpunkt des Kompilierens wird festgelegt, ob der IPv4 oder der IPv6 Stack zum Einsatz kommen soll, beide gleichzeitig gehen nicht.
OpenBSD verbietet dieses Verhalten, IPv4 über den IPv6-Stack zu sprechen aus (irgendwelchen) Sicherheitsgründen, deswegen ist es unter OpenBSD nicht möglich, einen gemischten Betrieb durchzuführen.
- siehe dazu