netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Fw: [Bug 215633] New: GENEVE:cannot support bind listening address
@ 2022-02-22 17:41 Stephen Hemminger
  0 siblings, 0 replies; only message in thread
From: Stephen Hemminger @ 2022-02-22 17:41 UTC (permalink / raw)
  To: netdev



Begin forwarded message:

Date: Tue, 22 Feb 2022 12:39:10 +0000
From: bugzilla-daemon@kernel.org
To: stephen@networkplumber.org
Subject: [Bug 215633] New: GENEVE:cannot support bind listening address


https://bugzilla.kernel.org/show_bug.cgi?id=215633

            Bug ID: 215633
           Summary: GENEVE:cannot support bind listening address
           Product: Networking
           Version: 2.5
    Kernel Version: 4.19.90
          Hardware: All
                OS: Linux
              Tree: Mainline
            Status: NEW
          Severity: normal
          Priority: P1
         Component: IPV4
          Assignee: stephen@networkplumber.org
          Reporter: rmsh1216@163.com
        Regression: No

when create geneve interface and turn it up, then found the specified port is
listening at 0.0.0.0 address.

[root@localhost ~]# ip link add geneve1 type geneve id 2 dstport 6081 remote
10.10.10.2
[root@localhost ~]# netstat -apntu|grep 6081
udp        0      0 0.0.0.0:6081            0.0.0.0:*                          
-

read the code, the geneve driver initializes the IP address to 0 by default. It
does not support setting the listening address.

static struct socket *geneve_create_sock(struct net *net, bool ipv6,
                                         __be16 port, bool ipv6_rx_csum)
{
        struct socket *sock;
        struct udp_port_cfg udp_conf;
        int err;

        memset(&udp_conf, 0, sizeof(udp_conf));

        if (ipv6) {
                udp_conf.family = AF_INET6;
                udp_conf.ipv6_v6only = 1;
                udp_conf.use_udp6_rx_checksums = ipv6_rx_csum;
        } else {
                udp_conf.family = AF_INET;
                udp_conf.local_ip.s_addr = htonl(INADDR_ANY);
        }

        udp_conf.local_udp_port = port;

        /* Open UDP socket */
        err = udp_sock_create(net, &udp_conf, &sock);
        if (err < 0)
                return ERR_PTR(err);

        return sock;
}

It is necessary to support configurable listening address for the reaseon that 
0.0.0.0 address listen is not safe.

-- 
You may reply to this email to add a comment.

You are receiving this mail because:
You are the assignee for the bug.

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-02-22 17:41 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-22 17:41 Fw: [Bug 215633] New: GENEVE:cannot support bind listening address Stephen Hemminger

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).