All of lore.kernel.org
 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 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.