A computer-implemented method for virtually routing a data stream from a source to a destination through a plurality of interconnected routers (440, 442, 444) of a network, comprising: (a) receiving at an edge router of the network an initial packet in the data stream; in response to the receipt of the initial packet of the data stream: (b) transmitting the initial packet from the edge router along a default path to a virtual routing server and from the virtual routing server to the destination, wherein the transmitting transmits the initial packet with routing instructions indicating to downstream routers (440, 442, 444) from the virtual routing server to the destination how to route the initial packet to the destination, wherein the virtual routing server is operable to populate routing tables in the routers (440, 442, 444) of the network; (c) after the virtual routing server receives the initial packet, determining at the virtual routing server an other path, wherein the other path is through a plurality of interconnected routers (440, 442, 444) from the source to the destination and does not include the virtual routing server; (d) for respective routers (440, 442, 444) along the other path, determining a routing table indicating to which port the router is to route data from the data stream such that the data from the data stream will be routed along the other path determined in (c); (e) for each of the respective routers (440, 442, 444), transmitting the routing table determined in (d) to configure the router; repeatedly until the respective routers (440, 442, 444) are configured to route data from the data stream along the other path: (f) receiving at the edge router an additional packet of the data stream; and (g) transmitting along the default path to the virtual routing server the additional packet with the routing instructions indicating to the downstream routers (440, 442, 444) how to route the additional packet to the destination, when the respective routers (440, 442, 444) are configured to route data from the data stream along the other path: receiving at the edge router another additional packet of the data stream, and transmitting the another additional packet along the other path not including the virtual routing server. (a) receiving at an edge router of the network an initial packet in the data stream; (b) transmitting the initial packet from the edge router along a default path to a virtual routing server and from the virtual routing server to the destination, wherein the transmitting transmits the initial packet with routing instructions indicating to downstream routers (440, 442, 444) from the virtual routing server to the destination how to route the initial packet to the destination, wherein the virtual routing server is operable to populate routing tables in the routers (440, 442, 444) of the network; (c) after the virtual routing server receives the initial packet, determining at the virtual routing server an other path, wherein the other path is through a plurality of interconnected routers (440, 442, 444) from the source to the destination and does not include the virtual routing server; (d) for respective routers (440, 442, 444) along the other path, determining a routing table indicating to which port the router is to route data from the data stream such that the data from the data stream will be routed along the other path determined in (c); (e) for each of the respective routers (440, 442, 444), transmitting the routing table determined in (d) to configure the router; (f) receiving at the edge router an additional packet of the data stream; and (g) transmitting along the default path to the virtual routing server the additional packet with the routing instructions indicating to the downstream routers (440, 442, 444) how to route the additional packet to the destination,