Because most network operators use LOCAL_PREF heavily, and no amount of AS_PATH prepending will be able fight that with any reasonable success. You can still achieve some success with AS_PATH prepending, but with the way content is getting distributed around the world, it is becoming as useful as running a Squid cache yourself these days. When you have multiple transit providers, you are really implicitly accepting that forwarding asymmetry is now part of your life. You will have full control of your outbound forwarding, but return forwarding will be a coin toss. You can guarantee this, to some degree, if you also have lots of peering, as most peers will prefer to return traffic to you via peering and not via their transit providers. But even this is not always a sure thing, especially in situations where a network you are peering with is doing Remote Peering. Ultimately, the level of influence you have on the remote network’s forwarding decision, especially if you are not peering, is slim. Our solution to this has been to focus on the “typically large” transit providers, announce routes consistently to them, and ensure we have the same port capacity to each one. Even with those attributes, we can’t get perfect load sharing, because we provide customers the ability to decide which transit providers (and exchange points) they want their routes to transit, or not. So the only routing we can consistently guarantee is our own routes. We can’t guarantee customers will let their routes exit all transit or peering points, so we just make sure we have ample capacity across all such relationships. I understand that not all networks may have the ability to do this for financial reasons, but if you can only afford to have one or two transit providers, your best bet is to leverage the existing BGP tools as best you can, even though the results will not be perfect. Mark.