microsoft / microsoft/ctsTraffic

Client Survivability across VPN Restarts

Open
#39 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
289
Forks
54
PR merge metrics
No merged PRs in 30d

Description

Hello,

I have been running long (multi day) network good put tests using ctsTraffic with no issues. It’s been nice because the long tests I conduct need to persist through different unique “network reset / outage” scenarios, and ctsTraffic has been able to perform in those scenarios. For example, the ctsTraffic client performing a “pull” from a server doesn’t shut down even if I turn off the network router that the client is connected to. It will just record “0 up down” for the duration where network router outage occurs, and then pick back up when network connection is restored.

However, this all seems to break when I’m doing the test on a VPN. I will perform the same router reset test as before, and generally this happens:
1 Router reset initiated
2 VPN disconnects
3 ctsTraffic screams receive error warnings
4 vpn reconnects automatically
5 ctsTraffic comes back but says 0 Mb/s down even though there exists internet.

The issue can be resolved by manually disconnecting the VPN and then manually reconnecting (ctsTraffic session is restored, I see downlink traffic again) but I need this test to run automatically…

My initial thought was to automate vpn disconnect and reconnect but to do this properly you need to have admin privileges which I do not have. So - I found a work around - what I ended up doing to work around admin privileges to reset the VPN wad initiating ip config /release and ip config /renew. This seems to force restart the VPN properly, but then often this will cause ctsTraffic to close the session and exit the test.

What I need is a solution that either allows ctsTraffic to recognize that a vpn reconnect/disconnect occurred and properly restablish the connection without stopping the “pull” test, or persist through adapter ipconfig /release and /renew commands.

Any solutions, recommendations or assistance i greatly appreciated.

Thanks.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the ctsTraffic client pull test across a VPN disconnect and reconnect, including ipconfig /release and /renew. Investigate the client behavior when the VPN returns and define done as keeping the pull session alive and restoring downlink traffic without manual intervention.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.