1. A computer-implemented method for controlling a virtual network, the method comprising: analyzing, by a controller, header content of packet traffic, the packet traffic corresponding to one or more virtual machines run on a computer; querying, by the controller, a plurality of virtual extensible local area network (VXLAN) switches being different from the controller so as to determine at least one topology of the virtual network, and in response to determining the at least one topology, identifying at least one address corresponding to the at least one port so as to direct the packet traffic therethrough; and performing, by the controller, flow routing of the packet traffic through a virtual network based on the analyzing overlay virtual network identifiers or virtual extensible local area network (VXLAN) identifiers in the header content.