The technique you employ depends on what you are going to use the information for, and what level of information you have access to. I'd always interrogate the routers for this sort of information if I could, however I no longer have access to the PE routers so I cannot actually get past the customer edge and it is not an option for me.

Traceroute is a possibility, but it is far too slow to be used in reality.

So, you have to compromise and balance your choice between complexity, reliability and the impact on your environment.