Debugging UDP ESP failure
Karl O. Pinc
kop at karlpinc.com
Sat Jul 27 14:04:26 PDT 2024
Hi Daniel,
Good news.
On Sat, 27 Jul 2024 11:04:40 -0700
Daniel Lenski <dlenski at gmail.com> wrote:
> On Thu, Jul 25, 2024 at 4:59 PM Karl O. Pinc <kop at karlpinc.com> wrote:
> > Thanks for the reply. Here's the info you asked for.
> > It looks like the proprietary client sets up a UDP VPN
> > and openconnect does not.
>
> Thanks. From your detailed log I have an idea of what's going on:
> OpenConnect is reporting "did not receive ESP keys and matching
> gateway in GlobalProtect config". The "matching gateway" part is key.
>
> Your VPN is indeed showing a previously unanticipated case, where the
> VPN sends an IPv6 magic ping address
> ("<gw-address-v6>REDACTEDIPV6ADDRESS7</gw-address-v6>") but it
> *doesn't* send an IPv6 client address (there is no "<ip-address-v6>").
> In that case, we need to use the IPv4 magic ping address even though
> we NORMALLY prefer the IPv6 magic ping address, because that one is
> required if we want to be able to use both IPv6 and IPv4.
>
> I put together a fix for this in
> https://gitlab.com/openconnect/openconnect/-/commits/handle_GP_ESP_magic_address_corner_case
>
> Can you please build and test that? I don't have a real GP VPN that I
> can test it on anymore, unfortunately.
Works for me. The output includes:
ESP session established with server
ESP tunnel connected; exiting HTTPS mainloop.
Configured as READACTEDIPV4NUMBER, with SSL disconnected and ESP established
And I see the expected UDP traffic go through the firewall. Thanks!
Let me know if you need anything else.
---
Various notes for your records follow, just in case anything matters:
---
I had to apply my patches on top of yours:
https://gitlab.com/openconnect/openconnect/-/merge_requests/564
---
For whatever reason, probably because of some failure during a
previous test, there were "extra" net interfaces in existence
after the first time I tried to setup the VPN. "ip link" output
included:
8: tun0-vpnssh0 at if7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
link/ether ee:96:fd:5d:2e:8e brd ff:ff:ff:ff:ff:ff link-netnsid 0
10: veth0 at if11: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether 82:84:36:33:5c:c3 brd ff:ff:ff:ff:ff:ff link-netns vpnc-script-sshd
and part of the openconnect output included:
Session authentication will expire at Sun, 28 Jul 2024 15:24:56 CDT
RTNETLINK answers: File exists
RTNETLINK answers: File exists
VPN now accessible through 'ssh fec0::1'
The result of this seemed to be a ESP VPN session, but one
that didn't forward any packets after `ssh fec0::1`. Everything
that happened in the network namespace just stayed there without
touching the VPN.
This sort of thing has to do with some failure mode of vpnc-script-sshd,
in my experience.
After deleting the interfaces tun0-vpnssh0 and veth0 everything worked
as expected. I tried twice. Each time worked, and afterwards there
were no "extra" interfaces left lying about. So, all good.
---
FYI, I couldn't find a "clean*" target that did not leave files
for git to add. The best I could do was `make maintainer-clean`,
which left me with:
$ git status
On branch gp_double_SAML_udp
Untracked files:
(use "git add <file>..." to include in what will be committed)
compile
config.h.in
m4/libtool.m4
m4/ltoptions.m4
m4/ltsugar.m4
m4/ltversion.m4
m4/lt~obsolete.m4
tests/test-obsolete-server-crypto.config.27841.tmp
tests/test-obsolete-server-crypto.config.27906.tmp
So I started with `./autogen.sh` and when on to run ./configure
from there. Everything built, `make check` passed, and the result
has worked. So, no worries. (To be more precise, all the checks
passed but "FAIL: auth-certificate", because I don't have the
necessary libraries/packages installed to build that feature.)
Regards,
Karl <kop at karlpinc.com>
Free Software: "You don't pay back, you pay forward."
-- Robert A. Heinlein
P.S. So nice to be able to test without fighting with the proprietary
client. :-)
More information about the openconnect-devel
mailing list