Ircd
Aus UUGRN
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