All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] IPv4-mapped on wire, :: dst address issue
@ 2017-02-12 22:26 Jonathan T. Leighton
  2017-02-12 22:26 ` [PATCH 1/2] ipv6: Inhibit IPv4-mapped src address on the wire Jonathan T. Leighton
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Jonathan T. Leighton @ 2017-02-12 22:26 UTC (permalink / raw)
  To: netdev; +Cc: Jonathan T. Leighton

Under some circumstances IPv6 datagrams are sent with IPv4-mapped IPv6
addresses as the source. Given an IPv6 socket bound to an IPv4-mapped
IPv6 address, and an IPv6 destination address, both TCP and UDP will
will send packets using the IPv4-mapped IPv6 address as the source. Per
RFC 6890 (Table 20), IPv4-mapped IPv6 source addresses are not allowed
in an IP datagram. The problem can be observed by attempting to
connect() either a TCP or UDP socket, or by using sendmsg() with a UDP
socket. The patch is intended to correct this issue for all socket
types.

linux follows the BSD convention that an IPv6 destination address
specified as in6addr_any is converted to the loopback address.
Currently, neither TCP nor UDP consider the possibility that the source
address is an IPv4-mapped IPv6 address, and assume that the appropriate
loopback address is ::1. The patch adds a check on whether or not the
source address is an IPv4-mapped IPv6 address and then sets the
destination address to either ::ffff:127.0.0.1 or ::1, as appropriate.

Jon

Jonathan T. Leighton (2):
  ipv6: Inhibit IPv4-mapped src address on the wire.
  ipv6: Handle IPv4-mapped src to in6addr_any dst.

 net/ipv6/datagram.c   | 14 +++++++++-----
 net/ipv6/ip6_output.c |  3 +++
 net/ipv6/tcp_ipv6.c   | 11 ++++++++---
 net/ipv6/udp.c        |  4 ++++
 4 files changed, 24 insertions(+), 8 deletions(-)

-- 
2.7.4

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2017-02-14 17:14 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-02-12 22:26 [PATCH 0/2] IPv4-mapped on wire, :: dst address issue Jonathan T. Leighton
2017-02-12 22:26 ` [PATCH 1/2] ipv6: Inhibit IPv4-mapped src address on the wire Jonathan T. Leighton
2017-02-12 22:26 ` [PATCH 2/2] ipv6: Handle IPv4-mapped src to in6addr_any dst Jonathan T. Leighton
2017-02-14 17:14 ` [PATCH 0/2] IPv4-mapped on wire, :: dst address issue David Miller

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.