Routers preferably select routes with lower administrative distance when multiple paths are available to the destination. When a router has two or more paths to a destination with equal cost metrics, then the router forwards the packets using all paths equally called equal-cost load balancing.
So, to balance the load multiple routes are needed through a single routing protocol. The protocol should have an equal administrative distance to a destination when forwarding packets.
The router calculates multiple routes to a destination with metrics, and the shortest path is installed in the routing table. If the destination has more than one path with the same administrative distance and a metric value; all least-metric and same routes are installed in the routing table.
We can configure EIGRP to install multiple paths even if the metric is not equal. This is the only protocol that supports unequal cost load balancing. The Cisco router uses two types for balancing the network load, per-destination basis, and per-packet basis. Balancing the load also depending on the switching mechanism configured on the router interface.
Per-destination load balancing
In this type, the router distributes the packets based on the destination address and distribute all packets for a specific destination over the first path, and uses the second path for the second destination on that same network. For most Cisco routers, per-destination load-balancing is the default technique.
Per-Packet load balancing
In this type, the router sends one packet for the same destination over the first path, and the second packet for the same destination over the second path, and so on. Per-Packet guarantees equal load across all links.
The forwarding process determines the outgoing interface for each packet from the routing table and selects the least used interface. This also ensures equal use of all links. The video below demonstrates the process of per-packet type.