Dynamic provisioning of virtual systems

Information

  • Patent Grant
  • 9129124
  • Patent Number
    9,129,124
  • Date Filed
    Thursday, April 12, 2012
    12 years ago
  • Date Issued
    Tuesday, September 8, 2015
    9 years ago
  • Inventors
  • Original Assignees
  • Examiners
    • Nalven; Andrew
    • Malinowski; Walter
    Agents
    • Van Cott, Bagley, Cornwall & McCarthy
Abstract
A method for dynamic provisioning of virtual systems includes, with a server system that hosts virtual systems, detecting a new virtual system on the server system, and with the server system, using a physical address of the new virtual system to perform network authentication on behalf of the new virtual system.
Description
BACKGROUND

Many physical network servers are designed to act as virtual servers. A virtual server is one that hosts a number of virtual machines. A virtual machine is a separate isolated guest operating system installation that operates within the virtual server operating system. Virtualization of the guest operating system may be done through either hardware virtualization, software emulation, or sometimes a combination of both. Computing entities that interact with a virtual machine do so as if the virtual machine were a physical computing system.


There are many advantages to using virtual machines. Most notably, a server system can run multiple virtual systems, each operating within isolation of each other. The virtual server can also provide different instruction set architectures to different virtual machines. Additionally, a virtual system may be moved to different physical servers, thus allowing greater mobility of a system.


In many cases, an entity that controls a virtual server system may be different than the entity or entities that control the multiple virtual systems that run on the virtual server. For example, the owner of a virtual system may enter into a business arrangement that allows the virtual system to run on the virtual server. This can often result in forced sharing of sensitive information. Specifically, the owner of the virtual system has to have access to the virtual system in order to allow that virtual system to communicate over a network. Moreover, the administrative effort that is needed to configure the virtual systems for operation over the network may be relatively burdensome.





BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings illustrate various examples of the principles described herein and are a part of the specification. The drawings are merely examples and do not limit the scope of the claims.



FIG. 1 is a diagram showing an illustrative virtual server system, according to one example of principles described herein.



FIG. 2 is a diagram showing illustrative virtual system operation, according to one example of principles described herein.



FIG. 3 is a diagram showing illustrative dynamic virtual system provisioning, according to one example of principles described herein.



FIG. 4 is a diagram showing illustrative virtual system changes, according to one example of principles described herein.



FIG. 5 is a flowchart showing an illustrative method for dynamic provisioning of virtual systems, according to one example of principles described herein.





Throughout the drawings, identical reference numbers designate similar, but not necessarily identical, elements.


DETAILED DESCRIPTION

As mentioned above, an entity that controls a virtual server system may be different than the entity or entities that control the multiple virtual systems that run on the virtual server. For example, the owner of a virtual system may enter into a business arrangement that allows the virtual system to run on the virtual server. This can often result in forced sharing of sensitive information. Specifically, the owner of the virtual system has to have access to the virtual system in order to allow that virtual system to communicate over a network. Moreover, the administrative effort that is needed to configure the virtual systems for operation over the network may be relatively burdensome.


Typically, when a new virtual system is first placed onto a virtual server, the virtual system has to be authenticated on the network in order to be able to send and receive data over the network. This authentication may be done through a Virtual Local Area Network (VLAN) identifier (VID) that is tagged onto packets transmitted from that virtual system. The VID identifies a specific VLAN on which the virtual system is authorized to operate. If the packet contains the appropriate VID, then the network device connected to the virtual server can forward the traffic accordingly. This, however, relies on a specific configuration of the network device to handle the VLAN to which the virtual system belongs.


In light of this and other issues, the present specification discloses methods and system for dynamic network provisioning that allows for more isolation between the operator of the virtual server and the operator of the virtual systems that run on that server. According to certain illustrative examples, the virtual server is designed to perform network authentication on behalf of the virtual systems that it is hosting.


Network authentication is performed through an authentication server such as a Remote Access Dial-in User Service (RADIUS) server. Using such authentication, a RADIUS networking protocol is used to send data from the virtual system to the RADIUS server. The RADIUS server is preconfigured to recognize the virtual system as being authorized to operate on the network. The RADIUS server then sends provisioning information back to the network device connected to the virtual system running the recently authenticated virtual machine. The provisioning information is used to configure the port on the network device that connects to the virtual server. With the port configured, the virtual machine can operate securely on the network according to the access granted by the provisioning information.


The RADIUS server is designed to recognize packets by the source address attached to the data packet containing the request for authorization. This address is a physical address such as a Media Access Control (MAC) address. As virtual machines are designed to present themselves as physical devices, data packets from a specific virtual machine are tagged with the MAC address of that virtual machine.


According to certain illustrative examples, the virtual server is designed to perform network authentication on behalf of a hosted virtual system by impersonating the physical address of that virtual system. Specifically, as the virtual system is aware of the physical address of its hosted virtual systems, it can use that physical address to send a request to the authentication server. This request will indicate as the physical address of the virtual system to be authenticated as the source. The authentication server will then send the provisioning information to the network device connected to the virtual system. With the port properly configured, the virtual system can send and receive data packets on behalf of the authenticated virtual machine by using the physical address of that virtual machine.


Through use of methods and systems embodying principles described herein, less administrative effort may be employed to set up virtual systems on new or different virtual servers. Virtual systems may be transferred between different virtual servers with less effort. Moreover, more isolation between the virtual systems and the virtual server may be achieved.


In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present systems and methods. It will be apparent, however, to one skilled in the art that the present apparatus, systems and methods may be practiced without these specific details. Reference in the specification to “an example” or similar language means that a particular feature, structure, or characteristic described in connection with that example is included as described, but may not be included in other examples.


Referring now to the figures, FIG. 1 is a diagram showing an illustrative virtual server system (100) that can be used to host multiple virtual systems. As mentioned above, the virtual server system is a physical computing system. According to certain illustrative examples, the virtual server system (100) includes a memory (102) having software (104) and data (106) stored thereon. The virtual server system (100) also includes a processor (108) and a user interface (110).


There are many types of memory available. Some types of memory, such as solid state drives, are designed for storage. These types of memory typically have large storage volume but relatively slow performance. Other types of memory, such as those used for Random Access Memory (RAM), are optimized for speed and are often referred to as “working memory.” The various forms of memory may store information in the form of software (104) and data (106). Throughout this specification and the appended claims, the term software refers to any type of machine readable instructions.


The virtual server system (100) also includes a processor (108) for executing the software (104) and using or updating the data (106) stored in memory (102). The software (104) may include an operating system. An operating system allows other applications to interact properly with the hardware of the physical computing system. Such other applications may include virtual system management software (112). Virtual system management software is used to manage and run multiple virtual systems on the server system (100). Such virtual system management software is sometimes referred to as a hypervisor.


A network interface (110) is used to connect the virtual server system (100) to a network. This connection may be done through a physical connection such as an ethernet cable, coaxial cable, or fiber optic cable. Alternatively, the network interface (110) may communicate with the network wirelessly. The virtual system management software (112) allows each of the virtual systems running on the server system (100) to use the network interface (110) to access the network.



FIG. 2 is a diagram showing illustrative virtual system operation. According to certain illustrative examples, a hypervisor (204) runs on a physical computing system (202) such as a virtual server system. The hypervisor manages a number of virtual systems (206).


As mentioned above, a hypervisor (204) is used to manage multiple virtual systems (206) running on the same physical computing system (202). The hypervisor (204) presents the virtual systems (206) with a virtual operating platform and manages execution of the virtual operating systems of the virtual systems (206) on the physical computing system (202).


The hypervisor (204) is designed to treat each of the different operating systems of the virtual systems separately. Thus, different virtual systems can run completely independent of the other virtual systems. This isolation is useful, especially in cases where the different virtual systems are operated by different entities. For example, it may be the case that virtual system 1 (206-1) and virtual system 2 (206-2) are operated by a first entity. Virtual system 3 (206-3) may be operated by a second entity. Those entities may be running secure programs and do not want their programs mixed with other entities.



FIG. 3 is a diagram showing illustrative dynamic virtual system provisioning (300). As mentioned above, when a virtual system (304) is first created or transferred to a particular virtual server system (302), that virtual system will not be able to interact with a network (308) until it is authenticated on that network. Authentication is typically performed using 802.1X protocol as defined by the Institute for Electrical and Electronics Engineers (IEEE).


The 802.1X protocol is set up so that when a device first connects to a particular physical port of a network device (306), standard traffic is not allowed for that device. Rather, a special type of traffic used for authentication is used. The recently connected device sends a request for authentication to an authentication server (310) such as a RADIUS server. After being authenticated and authorized, the authentication server (310) sends provisioning information to the network device (306) to which the device was recently connected. The network device then configures the port that is physically connected to the authenticated device so that that port will route network traffic from that device as normal.


According to certain illustrative examples, the virtual server system (302) is configured to perform this authentication process on behalf of the virtual system (304). Presumably, the virtual server system itself has already been authenticated and thus allowed access to the network (308). Thus, when the virtual server system (302) sends network traffic to the network, the packets associated with that traffic will be tagged with the physical address of the virtual server system. To authenticate one of the virtual systems, the virtual server system sends a request to the authentication server using the 802.1X protocol. However, instead of using its own physical address to tag the data packets associated with the request, the virtual server system tags the appropriate packets with the physical address of the virtual system to be authenticated. This process is sometimes referred to as “spoofing”. The virtual server system effectively impersonates the physical address of the virtual system which is being authorized.


Using such a technique, the authentication server (310) receives the authentication request from the virtual server system (302). However, because the packets associated with the request have been tagged with the physical address of one of the virtual systems (304), the authentication believes it is receiving the request from the virtual system (304) itself. The authentication server then checks to see if that device is authorized to operate on the network. If so, then the authentication server sends the appropriate provisioning information to the network device (306) connected to the virtual server system. This network device (306) is often referred to as the neighbor network device (306).


The provisioning information sent by the authentication server (310) informs the neighbor network device (306) how to configure the port connected to the virtual server system (302). The provisioning information may include policy information such as VIDs that should be assigned to traffic from that port with a specific physical address. The provisioning information may also include other information such as rate limiting information or Class of Server (CoS) information.


After the network device has been properly configured, any traffic with the physical address of an authenticated system that is received on the configured port will be allowed to be routed as normal. Thus, even though the virtual server system (302) performed the authentication, the virtual system (304) itself is subsequently allowed to operate as normal over the network. The virtual server system (302) can perform this authentication on behalf of each virtual system (304) it is hosting.



FIG. 4 is a diagram showing illustrative virtual system changes (400). Just like the virtual server system can authenticate a virtual system; it can also log the virtual system off of the network. If a virtual system is logged off, then a data packet with the physical address of the logged off system will no longer be routed if received by the port on which the system was previously authorized. As virtual server systems are able to perform authentication and logoff procedures on behalf of a virtual system, the mobility of such systems is made easier.


According to certain illustrative examples, a virtual system (404) is transferred from a first virtual server system (402-1) to a second virtual server system (402-2). The first virtual server system (402-1) first logs the virtual system (404) off. Thus, the neighbor network device (406-1) connected to the first virtual server system (406-1) will no longer route traffic with the physical address of the virtual system (404).


When the virtual system (404) is loaded to the second virtual server system (402-2), that virtual server system (402-2) will perform authentication on behalf of the virtual system (404) as described above. Because the provisioning for the virtual system is done dynamically by the switch, the virtual server system administrator has a reduced administrative load.



FIG. 5 is a flowchart showing an illustrative method (500) for dynamic provisioning of virtual systems. According to certain illustrative examples, the method includes, with a server system that hosts virtual systems, detecting (block 502) a new virtual system on the server system, and with the server system, using (block 504) a physical address of the new virtual system to perform network authentication on behalf of the new virtual system.


In sum, through use of methods and systems embodying principles described herein, less administrative effort may be employed to set up virtual systems on new or different virtual servers. Virtual systems may be transferred between different virtual servers with less effort. Moreover, more isolation between the virtual systems and the virtual server may be achieved.


The preceding description has been presented only to illustrate and describe examples of the principles described. This description is not intended to be exhaustive or to limit these principles to any precise form disclosed. Many modifications and variations are possible in light of the above teaching.

Claims
  • 1. A method for dynamic provisioning of virtual systems, the method comprising: with a server system that hosts virtual systems, detecting a new virtual system on said server system;with said server system, using a physical address of said new virtual system to perform network authentication on behalf of said new virtual system by impersonating the physical address of said new virtual system; andwith said server system, sending an authentication request to an authentication server on behalf of said new virtual system, in which provisioning information received based on the authentication request is to be applied to a port connecting a neighboring network device to said server system.
  • 2. The method of claim 1, further comprising, with said neighboring network device to said server system, receiving said provisioning information for said new virtual system from an authentication server.
  • 3. The method of claim 2, with said neighboring network device, applying said provisioning information to said port connecting said neighboring network device to said server system.
  • 4. The method of claim 1, wherein said new virtual system is a newly created virtual system.
  • 5. The method of claim 1, wherein said new virtual system is transferred from a different server system that hosts virtual systems.
  • 6. The method of claim 1, further comprising, with said server system, removing said new virtual system from said network in response to said new virtual system being removed from said server system.
  • 7. The method of claim 1, further comprising, with said server system, transmitting and sending network traffic for said new virtual system by impersonating said physical address of said new virtual system.
  • 8. A server system to host a number of virtual systems, the server system comprising: at least one processor;a memory communicatively coupled to the at least one processor, the memory comprising computer executable code that, when executed by the at least one processor, causes the at least one processor to: detect a new virtual system on said server system;use a physical address of said new virtual system to perform network authentication on behalf of said new virtual system by impersonating the physical address of said new virtual system; andsend, from said virtual server system, an authentication request to an authentication server on behalf of said new virtual system, in which:a source of said authentication request is identified as said new virtual system based on said physical address of said new virtual system being indicated as a source of said authentication request; andprovisioning information received based on the authentication request is to be applied to a port connecting a neighboring network device to said server system.
  • 9. The system of claim 8, wherein in response to said network authentication, said neighboring network device to said server system receives said provisioning information for said new virtual system.
  • 10. The system of claim 9, wherein said neighboring network device is to apply said provisioning information to said port connecting said neighboring network device to said server system.
  • 11. The system of claim 8, wherein said new virtual system is a newly created virtual system.
  • 12. The system of claim 8, wherein said new virtual system is transferred from a different server system that hosts virtual systems.
  • 13. The system of claim 8, wherein said processor is further to remove said new virtual system from said network in response to said new virtual system being removed from said server system.
  • 14. The system of claim 8, wherein said processor is further to transmit and send network traffic for said new virtual system by impersonating said physical address of said new virtual system by tagging packets associated with said network traffic with the physical address of said new virtual system.
  • 15. A method for dynamic provisioning of virtual systems, the method comprising: with a server system that hosts virtual systems, detecting a new virtual system on said server system;with said server system, transmitting an authentication request on behalf of said new virtual system, a data packet associated with said request indicating the source of the packet by the physical address of a virtual system running on said server system, in which provisioning information received based on the authentication request is to be applied to a port connecting a neighboring network device to said server system;with said server system, transmitting data packets associated with said virtual system to a neighboring network device, said network device to allow transmission of data packets associated with said virtual system as a result of said authentication request.
  • 16. The method of claim 15, further comprising, said neighboring network device receiving said provisioning information for said new virtual system from an authentication server.
  • 17. The method of claim 16, with said neighboring network device, applying said provisioning information to said port connecting said neighboring network device to said server system.
  • 18. The method of claim 15, wherein said new virtual system is transferred from a different server system that hosts virtual systems.
  • 19. The method of claim 15, further comprising, with said server system, removing said new virtual system from said network in response to said new virtual system being removed from said server system.
  • 20. The method of claim 15, further comprising, with said server system, transmitting and sending network traffic for said new virtual system by impersonating said physical address of said new virtual system.
US Referenced Citations (108)
Number Name Date Kind
6976258 Goyal et al. Dec 2005 B1
6985937 Keshav et al. Jan 2006 B1
7155558 Vaghani et al. Dec 2006 B1
7376827 Jiao May 2008 B1
7574202 Tsao et al. Aug 2009 B1
7774498 Kraemer et al. Aug 2010 B1
7783822 Purcell et al. Aug 2010 B2
7869436 Adler et al. Jan 2011 B1
7962545 Knauerhase et al. Jun 2011 B2
7970914 Bowen et al. Jun 2011 B2
8244882 Davidson Aug 2012 B2
8249081 Chang et al. Aug 2012 B2
8284783 Maufer et al. Oct 2012 B1
8341270 Mazzaferri et al. Dec 2012 B2
8601544 Robinson et al. Dec 2013 B1
8612971 Fitzgerald et al. Dec 2013 B1
8745734 Brandwine et al. Jun 2014 B1
8850512 Price et al. Sep 2014 B2
20020029308 Babaian et al. Mar 2002 A1
20050021979 Wiedmann et al. Jan 2005 A1
20050055570 Kwan et al. Mar 2005 A1
20050114598 Hartung et al. May 2005 A1
20050120160 Plouffe et al. Jun 2005 A1
20050264527 Lin Dec 2005 A1
20060004944 Vij et al. Jan 2006 A1
20060083254 Ge et al. Apr 2006 A1
20060206687 Vega Sep 2006 A1
20060209836 Ke et al. Sep 2006 A1
20060259759 Maino et al. Nov 2006 A1
20070036178 Hares et al. Feb 2007 A1
20070088822 Coile et al. Apr 2007 A1
20070101012 Li et al. May 2007 A1
20070195613 Rajan et al. Aug 2007 A1
20070220170 Abjanic et al. Sep 2007 A1
20070271388 Bowra et al. Nov 2007 A1
20070274259 Sayegh et al. Nov 2007 A1
20080005798 Ross Jan 2008 A1
20080016386 Dror et al. Jan 2008 A1
20080040491 Minodier et al. Feb 2008 A1
20080082640 Chang et al. Apr 2008 A1
20080098194 Hashimoto et al. Apr 2008 A1
20080123676 Cummings et al. May 2008 A1
20080127147 Bottomley et al. May 2008 A1
20080212598 Kolli et al. Sep 2008 A1
20080244103 Gale Oct 2008 A1
20080253380 Cazares et al. Oct 2008 A1
20090049546 Verma Feb 2009 A1
20090063849 Doyle et al. Mar 2009 A1
20090070760 Khatri et al. Mar 2009 A1
20090222517 Kalofonos et al. Sep 2009 A1
20090222542 Miyajima Sep 2009 A1
20090240874 Pong Sep 2009 A1
20090249472 Litvin et al. Oct 2009 A1
20090254642 Geist Oct 2009 A1
20090254990 McGee Oct 2009 A1
20090262741 Jungck et al. Oct 2009 A1
20100011431 Cynkin et al. Jan 2010 A1
20100027516 Nagarajan Feb 2010 A1
20100037296 Silverstone Feb 2010 A1
20100061391 Sindhu et al. Mar 2010 A1
20100100879 Katiyar Apr 2010 A1
20100125856 Dash et al. May 2010 A1
20100131731 Yamamoto et al. May 2010 A1
20100138534 Mutnuru et al. Jun 2010 A1
20100165876 Shukla et al. Jul 2010 A1
20100165877 Shukla et al. Jul 2010 A1
20100169558 Honda et al. Jul 2010 A1
20100175064 Brahmaroutu Jul 2010 A1
20100180272 Kettler et al. Jul 2010 A1
20100198972 Umbehocker Aug 2010 A1
20100229224 Etchegoyen Sep 2010 A1
20100246443 Cohn et al. Sep 2010 A1
20100257602 Kettler et al. Oct 2010 A1
20100274984 Inomata et al. Oct 2010 A1
20100318997 Li et al. Dec 2010 A1
20110022711 Cohn Jan 2011 A1
20110029775 Sakai et al. Feb 2011 A1
20110055903 Leggette Mar 2011 A1
20110131423 Ponsini Jun 2011 A1
20110153697 Nickolov et al. Jun 2011 A1
20110154454 Frelechoux Jun 2011 A1
20110173611 Takebe et al. Jul 2011 A1
20110199928 Jiang et al. Aug 2011 A1
20110202920 Takase Aug 2011 A1
20110216656 Pratt et al. Sep 2011 A1
20110271277 Hussain et al. Nov 2011 A1
20110274110 Mmmadi et al. Nov 2011 A1
20110307888 Raj et al. Dec 2011 A1
20110314533 Austin et al. Dec 2011 A1
20120054486 Lakkavalli et al. Mar 2012 A1
20120054843 Horman et al. Mar 2012 A1
20120089666 Goswami et al. Apr 2012 A1
20120089775 Ranade et al. Apr 2012 A1
20120117563 Chang et al. May 2012 A1
20120151358 Joanny et al. Jun 2012 A1
20120173757 Sanden Jul 2012 A1
20120254567 Umbehocker Oct 2012 A1
20120324442 Barde Dec 2012 A1
20120324536 McDysan Dec 2012 A1
20130031000 Morris Jan 2013 A1
20130085720 Xie et al. Apr 2013 A1
20130117806 Parthasarathy et al. May 2013 A1
20130132952 Shah May 2013 A1
20130159637 Forgette et al. Jun 2013 A1
20130159987 Shi et al. Jun 2013 A1
20130219505 Xue et al. Aug 2013 A1
20130290543 Lochhead et al. Oct 2013 A1
20140032795 Krause Jan 2014 A1
Foreign Referenced Citations (1)
Number Date Country
1020070126912 Aug 2009 KR
Non-Patent Literature Citations (2)
Entry
Constandache, “Secure Control of Portable Images in a Virtual Computing Utility”, VMSEC'08, Oct. 31, 2008, 8 pages.
Upton, “Detection and Subversion of Virtual Machines”, www.cs.virginia.edu, 2006, pp. 1-7.
Related Publications (1)
Number Date Country
20130275967 A1 Oct 2013 US