A method of optimizing paths in a network environment containing a virtual network device, the virtual network device including a first physical network device and a second physical network device , connected using a virtual network device layer link , wherein the virtual network device is connected to an adjacent network device over a bundle of links, and the first physical network device is configured with a service module, the method comprising: determining, at the second physical network device , that a first data packet belongs to a first data flow; determining, at the second physical network device , that the first data flow is being processed by the service module on the first physical network device ; transmitting, by the second physical network device , the first data packet belonging to the first data flow to the first physical network device over the virtual network device layer link ; determining, by the first physical network device , the adjacent network device from which the second physical network device received the first data packet; determining a subset of links directly connecting the first physical network device and the adjacent network device from the bundle of links; and transmitting a network message to the adjacent network device identifying the subset of links directly connected to the first physical network device , and instructing the adjacent network device to transmit subsequent data packets from the first data flow to the virtual network device, using only the determined subset of links directly connected to the first physical device ; in response to receiving the network message, configuring a hash function on the adjacent network device to only return hash values corresponding to the determined subset of links directly connected to the first physical network device when processing the subsequent data packets belonging to the first data flow; and transmitting, by the adjacent network device , subsequent data packets from the first data flow to the virtual network device, using only the determined subset of links directly connected to the first physical network device . determining, at the second physical network device , that a first data packet belongs to a first data flow; determining, at the second physical network device , that the first data flow is being processed by the service module on the first physical network device ; transmitting, by the second physical network device , the first data packet belonging to the first data flow to the first physical network device over the virtual network device layer link ; determining, by the first physical network device , the adjacent network device from which the second physical network device received the first data packet; determining a subset of links directly connecting the first physical network device and the adjacent network device from the bundle of links; and transmitting a network message to the adjacent network device identifying the subset of links directly connected to the first physical network device , and instructing the adjacent network device to transmit subsequent data packets from the first data flow to the virtual network device, using only the determined subset of links directly connected to the first physical device ; in response to receiving the network message, configuring a hash function on the adjacent network device to only return hash values corresponding to the determined subset of links directly connected to the first physical network device when processing the subsequent data packets belonging to the first data flow; and transmitting, by the adjacent network device , subsequent data packets from the first data flow to the virtual network device, using only the determined subset of links directly connected to the first physical network device . <EOS>