  To answer traffic engineering goals, current backbone networks use expensive
and sophisticated equipments, that run distributed algorithms to imple- ment
dynamic multi-path routing (e.g., MPLS tunnels and dynamic trunk rerout- ing).
We think that the same goals can be fulfilled using a simpler approach, where
the core of the backbone only implements many a priori computed paths, and most
adaptation to traffic engineering goals only takes place at the edge of the
network. In the vein of Software Defined Networking, edge adaptation should be
driven by a logically centralized controller that leverages the available paths
to adapt traffic load balancing to the current demands and network status. In
this article we present two algorithms to help building this vision. The first
one selects sets of paths able to support future load balancing needs and
adaptation to network faults. As the total number of required paths is very
important, and their continuous availability requires many FIB entries in core
routers, we also present a second algorithm that aggregates these paths in a
reduced number of trees. This second algorithm achieves better results than
previously proposed algorithms for path aggregation. To conclude, we show that
off-the-shelf equipment supporting simple protocols may be used to implement
routing with these trees, what shows that simplicity in the core can be
achieved by using only trivially available proto- cols and their most common
and unsophisticated implementation
