-
Notifications
You must be signed in to change notification settings - Fork 24
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
LLT-5884: PQ VPN breaks after some time of nonet #1049
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
mathiaspeters
force-pushed
the
LLT-5884_pq_break_after_nonet
branch
from
January 7, 2025 15:14
c91ac67
to
5a8397f
Compare
mathiaspeters
force-pushed
the
LLT-5884_pq_break_after_nonet
branch
from
January 7, 2025 15:56
5a8397f
to
c809a39
Compare
mathiaspeters
force-pushed
the
LLT-5884_pq_break_after_nonet
branch
from
January 9, 2025 14:22
c809a39
to
1a950f6
Compare
mathiaspeters
commented
Jan 9, 2025
mathiaspeters
commented
Jan 9, 2025
mathiaspeters
commented
Jan 9, 2025
mathiaspeters
commented
Jan 9, 2025
mathiaspeters
commented
Jan 9, 2025
mathiaspeters
commented
Jan 9, 2025
mathiaspeters
force-pushed
the
LLT-5884_pq_break_after_nonet
branch
from
January 9, 2025 15:05
1a950f6
to
1596ec0
Compare
Jauler
reviewed
Jan 9, 2025
Jauler
reviewed
Jan 9, 2025
Jauler
reviewed
Jan 9, 2025
mathiaspeters
force-pushed
the
LLT-5884_pq_break_after_nonet
branch
from
January 9, 2025 15:47
1596ec0
to
ae35584
Compare
mathiaspeters
force-pushed
the
LLT-5884_pq_break_after_nonet
branch
2 times, most recently
from
January 10, 2025 15:20
86ed40e
to
85cdabc
Compare
mathiaspeters
temporarily deployed
to
Internal
January 10, 2025 15:20 — with
GitHub Actions
Inactive
mathiaspeters
force-pushed
the
LLT-5884_pq_break_after_nonet
branch
from
January 10, 2025 15:51
85cdabc
to
4b25c25
Compare
mathiaspeters
temporarily deployed
to
Internal
January 10, 2025 15:51 — with
GitHub Actions
Inactive
LukasPukenis
previously approved these changes
Jan 13, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+2 Android confirmed the events are fixed as well and connectivity is restored.
For the time fast-forwarding I suggest creating a ticket but it should be a generic one as other testcases also use some sleep :)
mathiaspeters
force-pushed
the
LLT-5884_pq_break_after_nonet
branch
from
January 13, 2025 10:36
4b25c25
to
d0e91bb
Compare
mathiaspeters
temporarily deployed
to
Internal
January 13, 2025 10:36 — with
GitHub Actions
Inactive
There was a bug where after some time of nonet the handshake to the VPN server would expire and then when the device came back online it would not be able to re-establish a new handshake because it was trying to include a preshared key the server no longer knew about. To fix it, during wg state consolidation, if postquantum is active and the latest handshake was more than 180 seconds ago (how long after a handshake wireguard is hardcoded to reject a connection if no new handshake is established), restart postquantum.
mathiaspeters
force-pushed
the
LLT-5884_pq_break_after_nonet
branch
from
January 13, 2025 12:19
d0e91bb
to
f9e3e38
Compare
mathiaspeters
temporarily deployed
to
Internal
January 13, 2025 12:19 — with
GitHub Actions
Inactive
LukasPukenis
approved these changes
Jan 13, 2025
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
If a client is connected to PQ VPN and then doesn't do a new handshake within wireguard's 180s reject connection timeout (can happen for example during nonet), the client would not be able to establish a new handshake since it's supplying a preshared key even though the server doesn't expect one, leading to a broken VPN connection
Solution
If postquantum is active and time since last handshake exceeds wireguards reject threshold (in
uapi::Peer::time_since_last_handshake
this is represented asNone
), restart postquantum☑️ Definition of Done checklist