A system for bridging between networks, the system comprising: a first server configured to launch a first virtual machine in a first network; a first network controller that is coupled to the first network, wherein the first network controller is configured to send a request for a bridge between the first network and a second network to a second network controller coupled to the second network, to assign a first virtual port and a first virtual interface to the first virtual machine, and to connect the first virtual machine to the first network via the first virtual port and the first virtual interface; a second server configured to launch a second virtual machine in the second network; the second network controller that is coupled to the second network and configured to receive the request for the bridge, to assign a second virtual port and a second virtual interface to the second virtual machine, and to connect the second virtual machine to the second network via the second virtual port and the second virtual interface, wherein the first network controller is configured to receive network data including an Internet Protocol address associated with the second virtual machine and to communicate with the second virtual machine by broadcasting a message using the second virtual machine's IP address; the second virtual machine is configured to receive said broadcasted message and respond back, setting a direct connection between the first and the second virtual machines, and wherein the bridge is configured to enable the first virtual machine in the first network to communicate with the second virtual machine in the second network, and after the bridge is created, the first and second virtual machines are effectively on the same layer 2 network segment. a first server configured to launch a first virtual machine in a first network; a first network controller that is coupled to the first network, wherein the first network controller is configured to send a request for a bridge between the first network and a second network to a second network controller coupled to the second network, to assign a first virtual port and a first virtual interface to the first virtual machine, and to connect the first virtual machine to the first network via the first virtual port and the first virtual interface; a second server configured to launch a second virtual machine in the second network; the second network controller that is coupled to the second network and configured to receive the request for the bridge, to assign a second virtual port and a second virtual interface to the second virtual machine, and to connect the second virtual machine to the second network via the second virtual port and the second virtual interface, wherein the first network controller is configured to receive network data including an Internet Protocol address associated with the second virtual machine and to communicate with the second virtual machine by broadcasting a message using the second virtual machine's IP address; the second virtual machine is configured to receive said broadcasted message and respond back, setting a direct connection between the first and the second virtual machines, and wherein the bridge is configured to enable the first virtual machine in the first network to communicate with the second virtual machine in the second network, and after the bridge is created, the first and second virtual machines are effectively on the same layer 2 network segment.