Software-defined networking proxy gateway
Aspects of the present invention provide an approach for improving communications between a software-defined networking (SDN) controller and a hardware gateway in a SDN. In an embodiment, a SDN proxy gateway is installed. The SDN proxy gateway communicates with the SDN controller on behalf of the hardware gateway. To accomplish this, the SDN proxy gateway processes a communication sent from the SDN controller to the hardware gateway. This communication includes a request from a computing node to establish a network communication channel. The SDN proxy gateway translates these instructions (e.g., the logical network and endpoint information), which are in the native format of the SDN controller, into a standardized hardware gateway protocol. The translated information that the hardware gateway can use to establish the network connection is then pushed to the hardware gateway by the proxy gateway.
1. A software-defined networking (SDN) communication system, comprising:
a server computer system in a networked computing environment;
a plurality of computing nodes operating within the server system;
a hardware gateway that connects the server computer system to a network,
a SDN controller; and
a SDN proxy gateway operating outside of an operation of the SDN controller and being an intermediary between the hardware gateway and the SDN controller, the SDN proxy gateway having:
a SDN controller driver that processes a communication between the SDN controller and the hardware gateway using a set of application programmer interfaces (APIs) that includes a plurality of APIs corresponding to each of plurality of different types of SDN controllers, the communication including a request from a computing node of the plurality of computing nodes to establish a connection to the network;
a SDN proxy gateway translator that transforms instructions within the communication that are in a first format of the SDN controller into translated instructions in a standardized hardware gateway protocol; and
a SDN gateway driver that pushes the translated instructions for establishing the connection to the network to the hardware gateway.
2. The system of claim 1 , wherein the instructions include logical network information and endpoint information.
3. The system of claim 1 , the controller driver further comprising:
a driver manager that manages a plurality of different drivers and selects a proper driver to process the incoming communication from the SDN controller.
4. The system of claim 1 , the SDN proxy gateway translator further comprising:
a layer 2 gateway translator that bridges a SDN network with a physical LAN network; and
a layer 3 gateway translator that provides routing between subnets in the SDN network and subnets in the physical LAN network.
5. The system of claim 1 , the gateway driver further comprising:
a set of physical network APIs for physical network configurations corresponding to different types of hardware gateways; and
a hardware driver manager that manages a plurality of different hardware drivers and selects a proper hardware driver to communicate with the hardware gateway.
6. The system of claim 1 , further comprising a connection establisher that establishes, in response to the receipt of the translated instructions, the connection to the network by building a direct data path from the hardware gateway to a hypervisor on which the computing node is running, wherein the direct data path is a Virtual eXtensible Local Area Network (VXLAN) tunnel.
7. The system of claim 1 , wherein the networked computing environment is a cloud computing environment, wherein the SDN proxy gateway is a stand-alone utility included within a hypervisor in the cloud computing environment, and wherein the computing node is a cloud resource selected from a group, comprising: a virtual machine instance and a container virtual machine.
8. A method for establishing a software-defined networking (SDN) connection to a network in a networked computing environment, comprising:
processing a communication between a SDN controller and a hardware gateway using a set of application programmer interfaces (APIs) that includes a plurality of APIs corresponding to each of plurality of different types of SDN controllers on a SDN proxy gateway that operates outside of an operation of the SDN controller and is an intermediary between the hardware gateway and the SDN controller, the communication including a request from a computing node of a plurality of computing nodes on a server computer system to establish a connection to the network;
transforming, by the SDN proxy gateway, instructions within the communication that are in a first format of the SDN controller into translated instructions in a standardized hardware gateway protocol; and
pushing, by the SDN proxy gateway, the translated instructions for establishing the connection to the network to the hardware gateway.
9. The method of claim 8 , wherein the instructions include logical network information and endpoint information.
10. The method of claim 8 , the processing further comprising:
managing a plurality of different drivers corresponding to the different types of SDN controllers; and
selecting, from the plurality of different drivers, a proper driver to process the incoming communication from the SDN controller.
11. The method of claim 8 , wherein the translated instructions include:
a set of layer 2 gateway translations that bridge a SDN network with a physical LAN network; and
a set of layer 3 gateway translations that provide routing between subnets in the SDN network and subnets in the physical LAN network.
12. The method of claim 8 , the pushing further comprising:
providing a set of physical application programmer interfaces (APIs) for physical network configurations corresponding to different types of hardware gateways;
managing a plurality of different hardware drivers corresponding to the different types of hardware gateways; and
selecting, from the plurality of different hardware drivers, a proper hardware driver to communicate with the hardware gateway.
13. The method of claim 8 , further comprising establishing, in response to the receipt of the translated instructions, the connection to the network by building a direct data path from the hardware gateway to a hypervisor on which the computing node is running, wherein the direct data path is a Virtual eXtensible Local Area Network (VXLAN) tunnel.
14. The method of claim 8 , wherein the networked computing environment is a cloud computing environment, wherein the SDN proxy gateway is a stand-alone utility included within a hypervisor in the cloud computing environment, and wherein the computing node is a cloud resource selected from a group, comprising: a virtual machine instance and a container virtual machine.
15. A computer program product embodied in a computer readable storage medium that, when executed by a computer device, performs a method for establishing a software-defined networking (SDN) connection to a network in a networked computing environment, the method comprising:
processing a communication between a SDN controller and a hardware gateway using a set of application programmer interfaces (APIs) that includes a plurality of APIs corresponding to each of plurality of different types of SDN controllers on a SDN proxy gateway that operates outside of an operation of the SDN controller and is an intermediary between the hardware gateway and the SDN controller, the communication including a request from a computing node of a plurality of computing nodes on a server computer system to establish a connection to the network;
transforming, by the SDN proxy gateway, instructions within the communication that are in a first format of the SDN controller into translated instructions in a standardized hardware gateway protocol; and
pushing, by the SDN proxy gateway, the translated instructions for establishing the connection to the network to the hardware gateway.
16. The program product of claim 15 , the processing further comprising:
providing a set of logical application programmer interfaces (APIs) for logical network configurations corresponding to different types of SDN controllers;
managing a plurality of different drivers corresponding to the different types of SDN controllers; and
selecting, from the plurality of different drivers, a proper driver to process the incoming communication from the SDN controller.
17. The program product of claim 15 , wherein the translated instructions include:
a set of layer 2 gateway translations that bridge a SDN network with a physical LAN network; and
a set of layer 3 gateway translations that provide routing between subnets in the SDN network and subnets in the physical LAN network.
18. The program product of claim 15 the pushing further comprising:
providing a set of physical application programmer interfaces (APIs) for physical network configurations corresponding to different types of hardware gateways;
managing a plurality of different hardware drivers corresponding to the different types of hardware gateways; and
selecting, from the plurality of different hardware drivers, a proper hardware driver to communicate with the hardware gateway.
19. The program product of claim 15 , the method further comprising establishing, in response to the receipt of the translated instructions, the connection to the network by building a direct data path from the hardware gateway to a hypervisor on which the computing node is running, wherein the direct data path is a Virtual eXtensible Local Area Network (VXLAN) tunnel.
20. The program product of claim 15 , wherein the networked computing environment is a cloud computing environment, wherein the SDN proxy gateway is a stand-alone utility included within a hypervisor in the cloud computing environment, and wherein the computing node is a cloud resource selected from a group, comprising: a virtual machine instance and a container virtual machine.