Skip to content

Counter crosstalk...? #9

@cron2

Description

@cron2

So, there's this server which has a handful of OpenVPN instances, waiting for clients (t_server setup). Some of them have "verb 6" so I see DCO events logged.

Normally there is a regular logging of this

May 17 10:47:03 ubuntu2004 tun-udp-p2mp[58643]: dco_get_peer_stats_multi
May 17 10:47:03 ubuntu2004 tun-udp-p2mp[58643]: dco_parse_peer_multi: parsing message...
May 17 10:47:03 ubuntu2004 tun-udp-p2mp[58643]: dco_update_peer_stat / dco_read_bytes: 1055136
May 17 10:47:03 ubuntu2004 tun-udp-p2mp[58643]: dco_update_peer_stat / dco_write_bytes: 1100904
May 17 10:47:03 ubuntu2004 tun-udp-p2mp[58643]: dco_update_peer_stat / tun_read_bytes: 901032
May 17 10:47:03 ubuntu2004 tun-udp-p2mp[58643]: dco_update_peer_stat / tun_write_bytes: 944448

(one client connected, a bit of talking going back and forth)

Now, when I ran an extra client, not talking to these servers at all(!) (outbound t_client test), the kernel log gave me this:

May 17 10:36:20 ubuntu2004 kernel: [86971.350203] tun7: deleting peer with id 0, reason 1
May 17 10:36:20 ubuntu2004 tun-udp-p2p-tls-sha256[58703]: dco_do_read
May 17 10:36:20 ubuntu2004 tun-udp-p2p-tls-sha256[58703]: ovpn-dco: ignoring message (type=5) for foreign ifindex 313
May 17 10:36:20 ubuntu2004 tun-udp-p2p-tls-sha256[58703]: process_incoming_dco: received message of type 0 - ignoring
May 17 10:36:20 ubuntu2004 tun-udp-p2mp-topology-subnet[58650]: dco_parse_peer_multi: cannot store DCO stats for peer 0
May 17 10:36:20 ubuntu2004 tun-udp-p2mp-topology-subnet[58650]: dco_do_read: netlink reports error (-4): Try again
May 17 10:36:20 ubuntu2004 tun-tcp-p2mp[58634]: dco_parse_peer_multi: cannot store DCO stats for peer 0
May 17 10:36:20 ubuntu2004 tun-tcp-p2mp[58634]: dco_do_read: netlink reports error (-4): Try again
May 17 10:36:20 ubuntu2004 tun-udp-p2mp[58643]: dco_do_read
May 17 10:36:20 ubuntu2004 tun-udp-p2mp[58643]: ovpn-dco: ignoring message (type=5) for foreign ifindex 313

what irritates me is the "cannot store DCO stats for peer 0" and "error (-4)" from unrelated instances (the "ignoring foreign ifindex" lines are fine).

It is reproduceable here if you have this state:

  • an number of idle server instances
  • the tun-udp-p2mp instance has no peer 0, but it has an active peer 1
  • the client instance is peer 0

what makes even less sense is that it's warning about the "topology subnet" and "tun-tcp" instances, which have no active connection whatsoever right now...

May 17 10:59:20 ubuntu2004 tun-tcp-p2mp[58634]: dco_parse_peer_multi: cannot store DCO stats for peer 0
May 17 10:59:20 ubuntu2004 tun-tcp-p2mp[58634]: dco_do_read: netlink reports error (-4): Try again
May 17 10:59:20 ubuntu2004 kernel: [88351.747603] tun7: deleting peer with id 0, reason 1
May 17 10:59:20 ubuntu2004 tun-udp-p2mp-topology-subnet[58650]: dco_parse_peer_multi: cannot store DCO stats for peer 0
May 17 10:59:20 ubuntu2004 tun-udp-p2mp-topology-subnet[58650]: dco_do_read: netlink reports error (-4): Try again

The OpenVPN code is running is commit 6c33e3761ecb476d, so with the latest and greatest counter fixes.

Kernel side is DCO version: ovpn-net-next/development-sources-6.15.0-rc5-0f03aa5 on ubuntu2004 5.4.0-216-generic

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions