We present an interdomain routing protocol based on a new hierarchy, referred to as the viewserver hierarchy, The protocol satisfies policy and ToS constraints, adapts to dynamic topology changes including failures that partition domains, and scales well to a large number of domains without losing detail (unlike the usual scaling technique of aggregating domains into superdomains), Domain-level views are maintained by special nodes called viewservers, Each viewserver maintains a view of a surrounding precinct, Viewservers are organized hierarchically. To obtain domain-level source routes, the views of one or more viewservers are merged (up to a maximum of twice the levels in the hierarchy), We also present a model for evaluating interdomain routing protocols, and apply this model to compare our viewserver hierarchy against the simple approach where each node maintains a domain-level view of the entire internetwork, Our results indicate that the viewserver hierarchy finds many short valid paths and reduces the amount of memory requirement by two orders of magnitude.