IP Library Granted Patent US 12,362,966
Granted Patent B2
US 12,362,966 · App. 18/056,668 · Granted Jul 15, 2025

Enabling virtual private network (VPN) support in a virtualized environment

Inventors: Keith Edgar Horton (North Bend, WA); Alan Thomas Gavin Jowett (Eagle MT, UT); Andrew Mario Beltrano (Colorado Springs, CO); Catalin-Emil Fetoiu (Redmond, WA); Guillaume Philippe Adrien Hetier (Redmond, WA); Matthew Yutaka Ige (Seattle, WA); Mitchell James Schmidt (Bellevue, WA); Randy Joseph Miller (Newcastle, WA)
Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
H04L12/4633G06F9/45558H04L12/4641G06F2009/45595
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,362,966
App. No.
18/056,668
Granted
Jul 15, 2025
Kind
B2
Abstract

Technologies are disclosed for enabling virtual private network (VPN) support in a virtualized environment. The presence or creation of a host VPN adapter on a host processing system providing a virtualized environment is detected and, in response thereto, a virtual network adapter is created in the virtualized environment. A guest operating system (OS) creates a guest VPN adapter in the virtualized environment. A software component is inserted between the guest VPN adapter and the virtual network adapter. The software component adds Ethernet frames to point-to-point protocol (PPP) packets received from the guest VPN adapter and removes Ethernet frames from packets received from the virtual network adapter.

Claims (35)

1. A computer-implemented method, comprising:

causing a virtual network adapter to be created within a guest operating system (OS), wherein the virtual network adapter mirrors a host virtual private network (VPN) adapter;

causing the guest OS to create a guest VPN adapter within the guest OS; and

causing a VPN bridge to be inserted between the guest VPN adapter and the virtual network adapter within the guest OS, the VPN bridge configured to:

add Ethernet frames to point-to-point protocol (PPP) packets received from the guest VPN adapter, and

remove Ethernet frames from packets received from the virtual network adapter.

2. The computer-implemented method of claim 1 , wherein a first software component executing on a host detects creation of the host VPN adapter on the host and, in response thereto, generates a notification to a second software component executing in the guest OS.

3. The computer-implemented method of claim 2 , wherein the first software component is further configured to cause the virtual network adapter to be created within the guest OS.

4. The computer-implemented method of claim 3 , wherein the second software component executing in the guest OS receives the notification from the first software component and, in response thereto, causes the guest OS executing in the guest OS to create the guest VPN adapter.

5. The computer-implemented method of claim 4 , wherein the second software component executing in the guest OS is further configured to cause the VPN bridge to be inserted between the guest VPN adapter and the virtual network adapter.

6. The computer-implemented method of claim 2 , wherein creation of the host VPN adapter is detected using one or more heuristics.

7. The computer-implemented method of claim 1 , wherein the virtual network adapter comprises a virtual Ethernet adapter.

8. A computer-readable storage medium having computer-executable instructions stored thereupon which, when executed by a host processing system, cause the host processing system to:

create a virtual network adapter and a guest virtual private network (VPN) adapter within a guest operating system (OS) provided by the host processing system, wherein the virtual network adapter mirrors a host virtual private network (VPN) adapter; and

cause a VPN bridge to be inserted between the guest VPN adapter and the virtual network adapter within the guest OS, the VPN bridge configured to:

add Ethernet frames to point-to-point protocol (PPP) packets received from the guest VPN adapter for communication to the virtual network adapter in the guest OS; and

remove Ethernet frames from packets received from the virtual network adapter for communication to the guest VPN adapter in the guest OS.

9. The computer-readable storage medium of claim 8 , wherein a first software component executing on the host processing system detects the host VPN adapter on the host processing system and, in response thereto, generates a notification to a second software component executing in the guest OS.

10. The computer-readable storage medium of claim 9 , wherein the first software component is further configured to cause the virtual network adapter to be created within the guest OS.

11. The computer-readable storage medium of claim 9 , wherein the second software component executing in the guest OS receives the notification from the first software component and, in response thereto, causes the guest OS to create the guest VPN adapter.

12. The computer-readable storage medium of claim 11 , wherein the second software component executing in the guest OS is further configured to insert the VPN bridge between the guest VPN adapter and the virtual network adapter in response to the notification.

13. The computer-readable storage medium of claim 8 , wherein the virtual network adapter comprises a virtual Ethernet adapter.

14. A host processing system, comprising:

a processor; and

a computer-readable storage medium having computer-executable instructions stored thereupon that, when executed by the processor, cause the processor to:

create a virtual network adapter and a guest virtual private network (VPN) adapter within a guest operating system (OS) provided by the host processing system, wherein the virtual network adapter mirrors a host virtual private network (VPN) adapter; and

cause a VPN bridge to be inserted between the guest VPN adapter and the virtual network adapter within the guest OS, the VPN bridge configured to:

add Ethernet frames to point-to-point protocol (PPP) packets received from the guest VPN adapter for communication to the virtual network adapter in the guest OS; and

remove Ethernet frames from packets received from the virtual network adapter for communication to the guest VPN adapter in the guest OS.

15. The host processing system of claim 14 , wherein a first software component executing on the host processing system detects the host VPN adapter on the host processing system and, in response thereto, generates a notification to a second software component executing in the guest OS.

16. The host processing system of claim 15 , wherein the first software component is further configured to cause the virtual network adapter to be created within the guest OS.

17. The computer-implemented method of claim 2 , wherein a first implementation used by the first software component executed on the host and a second implementation used by the second software component executed in the guest OS are useable together via the host VPN adapter and the guest VPN adapter.

18. The computer-implemented method of claim 1 , wherein the guest VPN adapter is created for program components executing on the guest OS to access a VPN.

19. The computer-implemented method of claim 1 , wherein adding the Ethernet frames to the PPP packets received from the guest VPN adapter facilitates transmission of the PPP packets through the virtual network adapter, a guest-host communication channel, a hypervisor, and a flow steering engine.

20. The computer-implemented method of claim 1 , further comprising creating a VPN connection for the guest OS by instantiating a VPN provider and instructing the guest OS to connect to the VPN provider to enable communications with a host OS associated with the host VPN adapter.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 17, 2022
From: HORTON, KEITH EDGAR; JOWETT, ALAN THOMAS GAVIN; BELTRANO, ANDREW MARIO; FETOIU, CATALIN-EMIL; HETIER, GUILLAUME PHILIPPE ADRIEN; IGE, MATTHEW YUTAKA; SCHMIDT, MITCHELL JAMES; MILLER, RANDY JOSEPH
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 061817/0283 →
Continuity (2)
Provisional Application 63342600 · May 16, 2022
Related Publication 20230370306A1 · Nov 16, 2023
References Cited (18)
US 6711162B1 · Ortega et al. · 2004 [cited by applicant]
US 7478173B1 · Delco · 2009 [cited by examiner]
US 20020046348A1 · Brustoloni · 2002 [cited by examiner]
US 20020112076A1 · Rueda et al. · 2002 [cited by applicant]
US 20120023507A1 · Travis · 2012 [cited by examiner]
US 20120163388A1 · Goel · 2012 [cited by examiner]
US 20130133061A1 · Fainkichen · 2013 [cited by examiner]
US 20140059544A1 · Koganty · 2014 [cited by examiner]
US 20140310389A1 · Lee · 2014 [cited by examiner]
US 20180167268A1 · Liguori et al. · 2018 [cited by applicant]
US 20190132291A1 · Zhao · 2019 [cited by examiner]
US 20210132973A1 · Nair · 2021 [cited by examiner]
US 20210320819A1 · Chen · 2021 [cited by applicant]
WO 2006012612A1 · 2006 [cited by applicant]
“VM Shae host's VPN connection”, https://superuser.com/questions/842489/vm-share-hosts-vpn-connection (Year: 2014). [cited by examiner]
“International Search Report and Written Opinion Issued in PCT Application No. PCT/US23/015837”, Mailed Date: Jun. 20, 2023, 11 Pages. (MS# 411828-WO-PCT). [cited by applicant]
Carrel, et al., “A Method for Transmitting PPP Over Ethernet (PPPoE)”, Retrieved from: https://datatracker.ietf.org/doc/rfc2516/, Feb. 1999, 17 Pages. [cited by applicant]
U.S. Appl. No. 63/432,600, filed May 16, 2022. [cited by applicant]