# Patent

## Title
System and method for optimally configuring border gateway selection for transit traffic flows in a computer network

## Abstract

A system for, and method of, configuring border gateway selection for transit traffic flows in a computer network. In one embodiment, the system includes: (1) a border gateway modeler that builds a model of cooperating border gateways, the model including capacities of the border gateways and (2) a traffic flow optimizer, associated with the border gateway modeler, that initially assigns traffic to the border gateways in accordance with a generalized assignment problem and subsequently reassigns the traffic to the border gateways based on cost until the capacities are respected.

## Background
TECHNICAL FIELD OF THE INVENTION
The present invention is directed, in general, to computer networks and, more specifically, to a system and method for optimally configuring border gateway selection for transit traffic flows in a computer network.
BACKGROUND OF THE INVENTION
The primary responsibility of an Internet Service Provider (ISP) is to provide transit service from its set of customers to the remainder of the Internet and to bring traffic from its own upstream providers and peers destined to its customers. The interface from the ISP to the customers, upstream providers, and peers is through a set of border routers of the ISP. Currently, a border gateway protocol (BGP) allows border gateways (“border router” and “border gateway” will be used interchangeably) to be selected to carry transit traffic flows.
This responsibility is balanced with an objective of the ISP to minimize the resources used on its network in carrying transit traffic. The ISP wishes to get traffic “on its way” toward its ultimate destination as quickly as possible.
A poorly designed selection of border routers for the flows of traffic through the ISP can result in numerous problems. Ingress and/or egress traffic from/to neighbors may exceed the capacity of the selected border routers and its links, causing the ISP to fail to meet its responsibility. On the other side, underutilization of the potential capacity at border routers, or carrying traffic across the ISP network longer than necessary results in inefficient use of costly resources of the ISP.
Unfortunately, ISPs today have few tools or algorithms to help with this problem. Policies governing inter-domain routing and border router selection are arrived at manually through applying intuition, ad-hoc methods and constant tuning.
Accordingly, what is needed in the art is a better way to determine a selection of border routers used for ingress and egress of transit traffic that reduces, and ideally minimizes, provider network utilization and better balances the load of traffic flows from neighbors across the selected border routers by respecting capacity constraints.
SUMMARY OF THE INVENTION
To address the above-discussed deficiencies of the prior art, the present invention provides a system for, and method of, configuring border gateway selection for transit traffic flows in a computer network. In one embodiment, the system includes: (1) a model of the computer network that includes border routers and their capacities, and distances between the border routers and (2) a traffic flow optimizer, associated with the model. Given input data for transit traffic to the computer network, the traffic flow optimizer uses approximation techniques for integer programs and novel algorithms to improve (and advantageously maximize) resource usage and decrease (and advantageously minimize) cost in the computer network represented by the model.
The present invention is the first to address the problem of optimizing the cost of routing traffic through a provider's network while also considering load balancing based on the capacity of the border routers. Other work in BGP policy has focused on providing guidelines to assure stability of Internet routing (see, L. Gao and J. Rexford, “Stable Internet Routing Without Global Coordination,” Proceedings of ACM SIGMETRICS, June 2000; and R. Govindan and A. Reddy, “An Analysis of Internet Inter-domain Topology and Route Stability,” INFOCOM '97, April 1997, both incorporated herein by reference). The present invention, however, is best viewed as a form of traffic engineering. In contrast, previous work in this area has centered on intra-domain routing and the setting of weights for OSPF traffic across the provider network (see B. Fortz and M. Thorup, “Internet Traffic Engineering by Optimizing OSPF Weights,” Proceedings of IEEE INFOCOM, 2000, pp. 519–528, incorporated herein by reference). The present invention is the first to take traffic engineering as a means of providing the right information to optimally set BGP policy to control inter-domain transit traffic flow.
In one embodiment of the present invention, the traffic flow optimizer assumes a single egress point for all traffic intended for a given address. Given this assumption, the optimization problem becomes an instance of what is known to those skilled in the pertinent art as the generalized assignment problem (GAP). The approximation algorithm may violate the capacity constraints of the border routers, so in a second phase, the traffic flow optimizer moves traffic from violated routers to routers with spare capacity. Traffic is moved so as to minimize the cost.
In one embodiment of the present invention, the traffic flow optimizer assumes multiple egress points can be used for traffic to a given address. However, these multiple egress points should respect the proximity constraints of the BGP. The traffic flow optimizer formulates this problem as an integer program then solves the linear program relaxation of the integer program. Approximation techniques are then used to round the linear program solution to an integer solution. The integer solution may violate proximity and capacity constraints, so, in a final phase, the traffic flow optimizer moves traffic from violated routers to routers with spare capacity. Again, traffic is moved so as to minimize the cost.
The foregoing has outlined, rather broadly, preferred and alternative features of the present invention so that those skilled in the art may better understand the detailed description of the invention that follows. Additional features of the invention will be described hereinafter that form the subject of the claims of the invention. Those skilled in the art should appreciate that they can readily use the disclosed conception and specific embodiment as a basis for designing or modifying other structures for carrying out the same purposes of the present invention. Those skilled in the art should also realize that such equivalent constructions do not depart from the spirit and scope of the invention in its broadest form.



BRIEF DESCRIPTION OF THE DRAWINGS
For a more complete understanding of the present invention, reference is now made to the following descriptions taken in conjunction with the accompanying drawings, in which:
FIGS. 1A–1D together illustrate examples of optimal assignments for single and multiple egress cases;
FIG. 2 illustrates a pseudo-code listing of a greedy heuristic for the generalized assignment problem;
FIG. 3 illustrates a pseudo-code listing of an iterative heuristic for single egress selection;
FIG. 4 illustrates a psuedo-code listing for step 7 of a multiple egress selection heuristic;
FIG. 5 illustrates a block diagram of one embodiment of a system for configuring border gateway selection for transit traffic flows in a computer network constructed according to the principles of the present invention; and
FIG. 6 illustrates a method of managing a computer network carried out according to the principles of the present invention.



DETAILED DESCRIPTION
BGP and Inter-Domain Routing
To understand how to control the selection of border routers used for inter-domain routing of transit traffic flows and the input information available to solve the problem, one should first understand BGP and its use in inter-domain routing (see, Y. Rekhter and T. Li, “A Border Gateway Protocol 4,” Internet-Draft (RFC1771), February 1998; and J. W. Stewart III, “BGP4: Inter-Domain Routing in the Internet,” Addison-Wesley, 1999, both incorporated herein by reference).
The area of network infrastructure under a single technical and administrative control defines the boundaries of an Autonomous System (AS). Typically, an ISP is associated with a single AS. ASes interconnect via dedicated links and public network access points, and exchange routing reachability information through external BGP peering sessions. BGP itself is a distance vector protocol that allows import and export policies to modify the routing decision from the shortest-path default.
The unit of routability provided by BGP is the network prefix (or just prefix), which is an aggregation of IP addresses in a contiguous block (e.g., 10.20.30.0/24). A route advertisement is received from a neighbor AS over a BGP peering session and contains a prefix, an IP address of the next-hop, a multi-exit discriminator (MED) and a list of ASes along the path to the specified destination prefix. Receipt of an advertisement from a neighbor AS conveys the ability to egress data traffic toward the given prefix through that neighbor. Upon receiving an advertisement, a BGP speaker must decide whether or not to use this path and, if the path is chosen, whether or not to propagate the advertisement to neighboring ASes (after adding its own AS number to the AS path). When propagating an advertisement, the MED is used to differentiate the preference of the AS among a set of ingress routers.
BGP import policy allows an AS to favor one advertisement over another by assigning a local preference. The advertisement, with the assigned local preference, may then be disseminated among all the BGP speakers within the receiving AS1. An acceptance process then occurs wherein each BGP speaker picks the “best” route advertisement for each prefix. The decision criteria for the acceptance process proceeds as follows:

    1. Accept the advertisement with the highest local-preference.
    2. Break ties by accepting the advertisement with the shortest AS path.
    3. Break ties by accepting the advertisement with the smallest MED.
    4. Break ties by accepting the advertisement with the smallest intra-domain cost to the egress border router.
    5. Break any remaining tie by accepting the advertisement with the smallest next-hop address.


Note that, since step 4 employs intra-domain cost, two BGP speakers may select different best advertisements for the same prefix, favoring the “closest” (in cost) egress border router.
The import policy and decision process described above control the selection of the border router used to egress traffic for any particular prefix. BGP export policy allows an AS to control ingress traffic as advertisements are propagated to neighbor ASes. In particular, the export policy may choose not to readvertise a route to a neighbor at a particular border router, or it may assign a MED value, or it may prepend the current AS number to the AS path some number of times, effectively discouraging use of the route through the current border router.
Problem Detail
Recall that the unit of routability for BGP, and thus the association of traffic to an ingress border router and to an egress border router, is the network prefix. The problem addressed in this paper becomes: for each neighbor and each prefix the ISP must transit traffic for, select an ingress border router and an egress border router for that traffic with the objective of optimizing network utilization. This selection must be accomplished respecting ingress and egress capacity constraints of the border routers, thus balancing prefixes between routers where such constraints would be violated.
A common approach to improving network resource utilization is to egress incoming traffic as quickly as possible. This is essentially equivalent to minimizing the total distance traversed by transit traffic within the ISP network, which in some sense represents the “cost” incurred by the ISP to carry the transit traffic. The focus is on minimizing this cost.
For each neighbor AS ingressing traffic for a particular prefix, a single ingress border router is selected. If a neighbor AS is connected to the provider through multiple border routers, different border routers may be selected for different prefixes, but a single prefix is not “split” among multiple ingress routers to the same neighbor. This allows the control necessary to account for all traffic for the prefix to ingress at the desired border router, which is natural given the prefix as the basic unit assigned to selected border routers. BGP export policies are employed to ensure that the proper advertisement is only propagated from the selected ingress router. The details will now be covered.
Problem Variants
Two variants of the problem distinguish themselves in how egress traffic is constrained to an egress border router.
In the first, simpler, variant, a single egress router is selected for each prefix. Thus, for all neighbors ingressing traffic destined for that prefix, traffic will egress from the same border router. This problem variant is referred to herein as Single Egress Selection (SES). Though simplified, SES is not an unreasonable simplification given the manner in which BGP operates. Given a set of advertisements for the same prefix, the acceptance process executed at all BGP speakers will select the same “best” route provided the tie-breaking procedure does not come down to step 4, intra-domain cost.
In practice, it is possible that egressing traffic for a prefix at multiple egress routers could improve network utilization. This is because the BGP acceptance process breaks ties between multiple candidate egress routers for a prefix (in step 4) based on the intra-domain cost to each router. The Multiple Egress Selection (MES) variant of the problem allows the egress for a given prefix to differ for two different neighbors. However, for any given neighbor, it is still the case that only a single egress router is selected for a particular prefix.
For both problem variants, mechanisms for controlling egress router selection through BGP are detailed below.
In addition to available topological information, including the set of border routers and their capacities, the set of neighbor connections, and the set of intra-domain distances, and the BGP provided information of the advertisements and prefixes, available traffic information is assumed to be available. Whether measured or estimated, this specifies the transit traffic from each neighbor AS to each prefix.
This router selection problem is, for purposes of the present discussion, assumed to be an off line problem, which is already quite challenging. Most of the information cited above is relatively static. For instance, in C. Labovitz, G. R. Malan and F. Jahanian, “Internet Routing Instability,” in Proceedings of ACM SIGCOMM, 1997 (incorporated herein by reference), it is claimed that only a very small portion of BGP route advertisement updates each day reflect network events such as router failures and leased line disconnectivity. In fact, a majority of BGP updates were found to consist entirely of pathological duplicate withdrawals. The exception is the expected traffic which prior work has shown to have a periodicity across times of day and days of the week. This could be handled by solving the problem multiple times, once for each equivalence class of traffic pattern.
Results and Contributions
The present invention is the first to address the problem of optimizing the cost of routing traffic through a provider's network while also considering load balancing based on the capacity of the border routers. Other work in BGP policy has focused on providing guidelines to assure stability of Internet routing (Gao, et al., supra; and Govindan, et al., supra). The present invention, however, is best viewed as a form of traffic engineering. In contrast, previous work in this area has centered on intra-domain routing and the setting of weights for OSPF traffic across the provider network (Fortz, et al., supra). The present invention is the first to take traffic engineering as a means of providing the right information to optimally set BGP policy to control inter-domain transit traffic flow.
Problem formulations are specified as linear programs, and the generalized assignment problem (GAP) is a special case of formulations disclosed herein. Solving GAP is well-known to be NP-hard, so heuristics are presented for solving both the SES and the MES variants of the problem. Experiments show that the SES heuristic exhibits improvements of up to 26% over an intuitive heuristic based on routing the biggest jobs first.
System Model
For the transit provider AS under consideration, a set of neighbors A1,K ,AqA1 and a set of border routers b1,K ,bn linking the neighbors to the transit provider are given. Multiple neighbors may be connected to the AS through a given border router and each neighbor may be connected to the AS through multiple border routers.







TABLE I







Notation










Notation
Description







P1, K Pm
Set of network prefixes for




transit routing



A1, K, Aq
Set of AS neighbors



b1, K, bn
Set of border routers



Out(k)
Set of egress routers for Pk



In(h)
Set of ingress routers from




neighbor Ah



d(i, j)
Intra-domain distance




between bi and bj



t(h, k)
Traffic flow from




neighbor Ah to prefix Pk



Ci
Ingress bandwidth capacity




for router bi



Kj
Egress bandwidth capacity




for router bj



δ(h, k)
Ingress, egress router pair




for traffic from AS Ah to




prefix Pk










For each neighbor Ah, let In(h) denote the set of border routers through which Ah may ingress data traffic. Each border router bi, has an ingress capacity constraint Ci and an egress capacity constraint Ki. The intradomain topology provides the shortest path distance between any two border routers bi and bj, which is denoted by d(i, j).
The external BGP peering sessions at the border routers receive advertisements for network prefixes. Let PlK Pm denote the set of prefix advertisements received across all border routers and, for each such prefix Pk, let Out(k) denote the set of border routers at which an advertisement for Pk has been received. This notation is employed, since these are the border routers that may egress outgoing data traffic destined for Pk. Also, for simplicity of exposition, it is assumed that the set of prefixes are non-overlapping. Finally, traffic may be measured or estimated between each neighbor Ah and any destination prefix Pk. Let t(h,k) denote such traffic t(h,k). is set to zero for any neighbor Ah for which it is not desired to transit traffic destined for Pk.
Note that the capacity constraints, Ci and Kj are specified per router. The solutions presented herein can be extended in a straightforward manner to provide for capacities specified on a border interface granularity.
Given this notation (see Table I for a summary), the problem statement for the two problem variants discussed above may be formulated.
Problem Statement
The BGP router selection problem involves selecting a pair of ingress and egress routers for traffic from each neighbor AS to every advertised prefix such that the total cost of carrying transit traffic is minimized. It is assumed that all the traffic from a neighbor to a specific prefix ingresses at a single border router. This can be ensured in BGP by either (1) setting the export policy to only advertise the prefix at the selected ingress router, or (2) including a relatively low MED value in the advertisement at the router, or (3) artificially extending the length of the AS path attribute at routers different from the selected router. Further, the selection of both ingress and egress border routers must be consistent with the BGP route acceptance mechanism.
MES Problem: Compute an assignment function δ:({1,K,q},{1,K m})→({1,K,n},{1,K,n}) from (AS, prefix) pairs to (ingress, egress) router pairs such that Σh,kt(h,k)·d(δ(h,k)) is minimized, and δ satisfies the following constraints:
If δ(h,k)=(i,j), then i∈In(h) and j∈Out(k).
Ingress capacity constraints of routers are satisfied, that is, for all i, Σh,k:δ(h,k)=(i,l)t(h,k)≦Ci.
Egress capacity constraints of routers are satisfied, that is for all j, Σh,k:δ(h,k)=(l,j)t(h,k)≦Kj.
For a prefix Pk, if for some h,δ(h,k)=(i,j), then there does not exist a g,i′∈In(g) and l∈Q(i,j,k) such that δ(g,k)=(i′,l).
The objective function of the MES problem requires that the computed δ minimizes the total distance traversed by transit traffic within the network, which reflects the cost of transporting transit traffic. While the intra-domain shortest path distance d is used in the objective function, other distance measures such as the minimum number of hops could be substituted in lieu of d. Also, in the final constraint, Q is a utility function that is used to specify, for a given ingress and egress router pair bi and bj and a given prefix Pk, the set of alternative egress routers for Pk that are closer than bj. Thus Q(i,j,k) is defined as the set of routers {l|l∈Out(k)d(i,l)<d(i,j)}3. This final constraint, which is referred to as the proximity constraint, ensures that an (Ah,Pk) pair cannot be assigned an egress router bj if a g exists such that (Ag,Pk) is assigned to an egress router bl,l∈Q(i,j,k).
The proximity constraint ensures that the choice of ingress and egress routers made by δ are enforceable in the context of the BGP selection process. In order to enable a set of routers SOut(k) to egress traffic for Pk, the import policy at each router in S assigns an equal (but high) local-preference to the advertisement for Pk and manipulates the AS path so that they are equal. Thus, Step 4 of the BGP acceptance process is used to break ties, and each ingress router selects the closest router from S to egress traffic for Pk. The proximity constraint ensures that δ is indeed consistent with this choice.
The SES problem is identical to MES, except that the proximity constraint is replaced with the following constraint which forces all traffic for a prefix Pk to egress through a single egress router.

    For all g,h,δ(g,k)=δ(h,k).


The single egress constraint for each prefix Pk can be realized in BGP by setting a higher value for local-preference at the selected egress router for Pk in the import policy.
EXAMPLE 1
Consider the AS illustration in FIG. 1A having four border routers b1,K,b4. Routers b1 and b2 serve as ingress routers (so K1=K2=0) with capacity constraints C1=50 and C2=60, respectively. Routers b3 and b4 are egress routers (so C1=C2=0) with bandwidth constraints K3=75 and K4=50, respectively. The intra-domain distances between ingress and egress routers are as shown in FIG. 1A. Thus, d(1,3)=10 and d(1,4)=50. Two prefixes P1 and P2 are advertised at both egress routers, and so Out(1)=Out(2)={3,4}. Two AS neighbors A1 and A2 ingress data traffic through the ingress routers, so In(1)=In(2)={1,2}Finally, the amount of traffic from the AS neighbors to the destination prefixes is given by t(1,1)=t(2,2)=30,t(1,2)=15 and t(2,1)=25.
FIG. 1B depicts the optimal assignment δs for the single egress case. In the assignment, δs(1,1)=(1,3), δs(1,2)=(1,4), δs(2,1)=(2,3) and δs(2,2)=(2,4). Router b1 ingresses all the traffic from A1, while b2 ingresses all traffic from A2. Also, b3 egresses traffic for P1 and b4 egress traffic for P2. Assignment δs satisfies the ingress and egress capacity constraints of the routers, with traffic ingressing at b1 and b2 is 45 and 55, respectively, while the traffic egressing from b3 and b4 is 55 and 45, respectively. The total cost of transporting traffic is. Observe that b4 cannot be chosen to egress all 55 units of traffic for P1 since this would exceed its capacity constraint of 50. Similarly, alternate assignments like the one which selects b1 to ingress all traffic for P2 and b2 to ingress all traffic for P1, while meeting ingress capacity constraints, results in a substantially higher cost of 3350.
FIG. 1C illustrates the optimal assignment δm for the multiple egress case. Here, as for the single egress case above, b1 ingresses traffic from A1, b2 ingresses traffic from A2 and b3 egresses traffic for P1. However, egress traffic for P2 is split between b3 and b4, with b3 egressing traffic from A1 to P2 and b4 egressing traffic from A2 to P2. The new assignment δm has a cost of 1250 which is lower than the cost of 1850 for δs presented above. In this case, the traffic from A1 to P2 traverses a shorter distance d(1,3)=10 in δm compared to d(1,4)=50 in δs. Note that even though router b3 egresses more traffic (70 units) in δm, its capacity constraint of 75 is still not violated. Also, δm satisfies the proximity constraint since traffic for P2 from A1 and A2 egress at routers b3 and b4, respectively, which are closest to the respective ingress routers for the traffic. FIG. 1D illustrates an example of an assignment that does not satisfy the proximity constraint. The assignment is illegal because traffic from A2 to P1 ingresses at router b2 and egresses at router b3 even though a closer router b4 is egressing traffic for P1 (from A1).
Integer Program Formulation
The BGP router selection problem may be formulated as an integer program. For each prefix Pk and each neighbor ingressing traffic for Pk, Ah, an ingress border router bi,i∈In(h) and an egress border router bj,j∈Out(k) should be selected. A variable xijhk is defined to denote such selection, so xijhk=1 if bi is selected as the ingress router and bj is selected as the egress router for traffic from Ah to prefix Pk, and xijhk=0 otherwise.
The integer program for the BGP route advertisement problem is then formulated as follows:




  
    
      
        min
        ⁢
        
          
            ∑
            k
          
          ⁢
          
            
              ∑
              h
            
            ⁢
            
              
                ∑
                
                  i
                  ∈
                  
                    In
                    ⁡
                    
                      (
                      h
                      )
                    
                  
                
              
              ⁢
              
                
                  ∑
                  
                    j
                    ∈
                    
                      Out
                      ⁡
                      
                        (
                        k
                        )
                      
                    
                  
                
                ⁢
                
                  
                    x
                    ij
                    hk
                  
                  ·
                  
                    d
                    ⁡
                    
                      (
                      
                        i
                        ,
                        j
                      
                      )
                    
                  
                  ·
                  
                    t
                    ⁡
                    
                      (
                      
                        h
                        ,
                        k
                      
                      )
                    
                  
                
              
            
          
        
      
    
    
      
        (
        1
        )
      
    
  




subject to





  
    
      
        ∀
        
          j
          :
          
            
              
                ∑
                
                  k
                  :
                  
                    j
                    ∈
                    
                      Out
                      ⁡
                      
                        (
                        k
                        )
                      
                    
                  
                
              
              ⁢
              
                
                  ∑
                  h
                
                ⁢
                
                  
                    ∑
                    
                      i
                      ∈
                      
                        In
                        ⁡
                        
                          (
                          h
                          )
                        
                      
                    
                  
                  ⁢
                  
                    
                      x
                      ij
                      hk
                    
                    ·
                    
                      t
                      ⁡
                      
                        (
                        
                          h
                          ,
                          k
                        
                        )
                      
                    
                  
                
              
            
            ≤
            
              K
              j
            
          
        
      
    
    
      
        (
        2
        )
      
    
  
  
    
      
        ∀
        
          
            i
            ⁢
            
              
            
            ⁢
            
              
                ∑
                
                  
                    h
                    ⁢
                    
                      
                    
                    ⁢
                    i
                  
                  ∈
                  
                    In
                    ⁡
                    
                      (
                      h
                      )
                    
                  
                
              
              ⁢
              
                
                  ∑
                  k
                
                ⁢
                
                  
                    ∑
                    
                      j
                      ∈
                      
                        Out
                        ⁡
                        
                          (
                          k
                          )
                        
                      
                    
                  
                  ⁢
                  
                    
                      x
                      ij
                      hk
                    
                    ·
                    
                      t
                      ⁡
                      
                        (
                        
                          h
                          ,
                          k
                        
                        )
                      
                    
                  
                
              
            
          
          ≤
          
            C
            i
          
        
      
    
    
      
        (
        3
        )
      
    
  
  
    
      
        
          ∀
          k
        
        ,
        
          
            h
            :
            
              
                ∑
                
                  i
                  ∈
                  
                    In
                    ⁡
                    
                      (
                      h
                      )
                    
                  
                
              
              ⁢
              
                
                  ∑
                  
                    j
                    ∈
                    
                      Out
                      ⁡
                      
                        (
                        k
                        )
                      
                    
                  
                
                ⁢
                
                  x
                  ij
                  hk
                
              
            
          
          =
          1
        
      
    
    
      
        (
        4
        )
      
    
  




Equation (1) is the integer programming extension to the minimization objective noted for both problem variants in the problem statement. Likewise, equations (2) and (3) specify the egress and ingress capacity constraints in the integer program. Equation (4) is used to specify that, for any prefix and any neighbor to which that prefix must be advertised, the solution must include exactly one selected ingress router from the given neighbor and one selected egress router toward the destination prefix.
The formulation as presented thus far allows for multiple egress routers for a given prefix across different neighbors, but does not enforce the proximity constraint. To constrain the formulation further, an additional set of integer variables zjk is defined such that zjk=1 if bj is chosen as an egress router for traffic to prefix Pk for one or more ingress neighbors, and zjk=0 otherwise.

∀h,k,i,j:xijhk≦zjk  (5)

∀h,k,i,j:xijhk,zjk∈{0,1}  (6)

∀k,h,i∈In(h),

∀j∈Out(k),j′∈Q(i,j,k): zjk+xijhk≦1  (7)

Constraint (7) essentially captures the proximity constraint. This completes the integer programming formulation for the multiple egress selection.
To change the formulation for the single egress selection case, zjk is further constrained. To assure that for a prefix Pk, only a single egress is selected across all border routers, Equation 7 is replaced by the following:




  
    
      
        
          ∀
          
            k
            :
            
              
                ∑
                
                  j
                  ∈
                  
                    Out
                    ⁡
                    
                      (
                      k
                      )
                    
                  
                
              
              ⁢
              
                z
                j
                k
              
            
          
        
        =
        1
      
    
    
      
        (
        8
        )
      
    
  




Algorithms for Single Egress Variant

The SES problem can be shown to be a generalization of the generalized assignment problem (GAP) which is known to be NP-hard and has been well-studied in the operations research and theoretical computer science communities. See for example, J. H. Lin and J. S. Vitter, “∈-approximations with Minimum Packing Constraint Violation,” Proceedings of the 24th Annual ACM Symposium on the Theory of Computation, Victoria, Canada, May 1992, pp. 771–782; and D. B. Shmoys and E. Tardos, “An Approximation Algorithm for the Generalized Assignment Problem,” Mathematical Programming A, vol. 62, pp. 461–474, 1993, both incorporated herein by reference). The definition of GAP is as follows.
Generalized Assignment Problem: Given ξ jobs and φ machines, a processing time prs and cost crs for processing job r on machine s, and a total processing time Ts available for each machine s, compute an assignment ƒ:{1,K,ξ}→{1,K,φ} of jobs to machines such that:

    the total cost of processing jobs is minimized, that is, ΣrCrƒ(r) is minimal, and
    the processing time for jobs on each machine s does not exceed Ts, that is, Σr.ƒ(r)=sPrs≦Ts.


To show that SES is at least as difficult as GAP and thus also NP-hard, GAP is shown to be only a special case of SES. Consider the instance of SES where |Out(k)|=1 for every prefix Pk, and Kj for each egress router bj is very large. This corresponds to the case when there is only one egress router per prefix, and thus, egress routers for prefixes are held constant, as well as have unconstrained capacity. The resulting problem of computing ingress routers for each (Ah,Pk) pair is equivalent to GAP, where each ingress router bi corresponds to a machine with total processing time Ci, and each (Ah,Pk) pair corresponds to a job with processing time and cost on the machine for ingress router bi as follows (let bjk be the fixed egress router for prefix Pk)

    Processing time: t(h,k) if i∈In(h);∞ otherwise.
    Cost: d(i,jk)·t(h,k) if i∈In(h);∞ otherwise.


EXAMPLE 2
Revisiting Example 1, consider the AS in FIG. 1. Suppose that egress router b3 is selected to egress traffic for prefix P1 and egress router b4 is chosen to egress traffic for P2. Then, the problem of computing the optimal ingress routers for traffic from ASes A1 and A2 to prefixes P1 and P2 is equivalent to GAP. In the GAP instance, there are two machines 1 and 2 corresponding to ingress routers b1 and b2 with processing times T1=C1=50 and T2=C2=60. Further, there are four jobs corresponding to (Ah,Pk) pairs (1,1), (1,2), (2,1) and (2,2). The processing time of job (1,1) on both machines is t(1,1)=30, while the processing time of job (1,2) is t(1,2)=15. The cost of processing job (1,1) on machine 2 is d(2,3)·t(1,1)=600 (since b3 is egress router for P1), while that of processing job (1,2) on machine 1 is d(1,4)·t(1,2)=750 (since b4 is egress router for P2) Clearly, the optimal assignment for the GAP instance is also the optimal cost assignment for the SES instance with egress routers for P1 and P2 held constant at b3 and b4, respectively.
It can be also be shown that, if ingress routers for each (Ah,Pk) pair are held constant, then the problem of computing egress routers for each prefix can be mapped to GAP by considering each egress router bj to be a machine and each prefix Pk to be a job with processing time and cost Σht(h,k) and Σhd(ihk,j)·t(h,k), respectively on machine j (here, ihk is the ingress router for the pair(Ah,Pk)).
GAP is not only intractable, but also very difficult to solve approximately. Even ignoring costs (e.g., setting all job costs to 0), it is intractable to compute an assignment of jobs to machines such that the total processing time constraints of machines is not violated (see, J. K. Lenstra, D. B. Shmoys and E. Tardos, “Approximation Algorithms for Scheduling Unrelated Parallel Machines,” Mathematical Programming A, vol. 46, pp. 259–271, 1990, incorporated herein by reference). Thus, the only option available is to rely on heuristics to solve GAP, and its generalizations like SES.
The illustrated approach to solving the SES problem is iterative, and essentially relies on reducing it to GAP by fixing either the ingress or egress routers as described above. In each iteration, either the ingress or egress is held constant, and the resulting GAP instance is solved. The problem, however, is that existing algorithms for solving GAP do not guarantee that processing time constraints of machines will be met. Thus, in the following subsection, a heuristic for solving GAP without violating machine constraints should first be established, and subsequently use this as the building block for the illustrated SES heuristic.
Generalized Assignment Problem Heuristic
As mentioned above, much previous work has been performed on GAP, and good polynomial-time approximation algorithms for GAP exist that relax machine processing time constraints. Let C be the cost of the optimal solution to GAP that does not violate any capacity constraints. Then an (α,β) approximation algorithm for GAP is one that gives a solution with cost at most αC and with capacity constraints violated by, at most, a factor of β. The best known result is by Shmoys and Tardos, supra, where a (1,2) approximation algorithm is given. Lenstra, Shmoys and Tardos, supra, have also shown that it is NP-hard to obtain (1,β) approximation algorithm for GAP for β<3/2.
The algorithm of Shmoys and Tardos, supra, is based on first solving the LP relaxation of the integer programming formulation for GAP, and then rounding the fractional solution to a nearby integer solution. The total cost of the assignment computed by the Shmoys and Tardos algorithm is optimal, but, as noted above, the processing times of jobs assigned to a machine may exceed the machine's total processing capacity by at most a factor of 2 (thereby respecting a predetermined multiple of the capacities). FIG. 2 presents a greedy heuristic (Procedure GREEDY) that uses the assignment ƒ computed by the Shmoys Tardos algorithm as the basis to compute a new assignment ƒ′ that satisfies processing time constraints and still has a low cost.
In Procedure GREEDY, jobs on machines in which processing times constraints are violated are re-assigned to other machines with sufficient capacity to process the jobs. This process of rescheduling jobs from violated machines to non-violated machines is continued until either no violated machines remain or no more jobs on violated machines can be re-assigned. The critical issue is which jobs on violated machines should be chosen for migration and which machines they should be migrated to. A greedy approach is adopted in which, during each iteration, the job r and machine t for which transferring r to t results in the smallest increase in cost per unit decrease in the violation amount is chosen. Note that in Step 11, crt−crs is the increase in cost associated with re-assigning r from s to t, while min{prs,Us−Ts} is the decrease in the violation.
The time complexity of Procedure GREEDY can be shown to be O(ξ2·φ), but this is subsumed by the time complexity of the underlying Shmoys Tardos algorithm.
Single Egress Selection Problem Heuristic
The SES solution should compute the optimal cost assignment function δ from (h,k) pairs to (i,j) pairs, where i∈In(h) and j∈Out(k) are the ingress and egress routers, respectively, for traffic from AS Ah to prefix Pk. Further, the computed assignment δ should also satisfy the bandwidth constraints of ingress and egress routers, and assign all pairs involving a specific prefix to a single egress router. A key observation, made earlier in the section, is that if the egress (ingress) routers for traffic involving all (Ah,Pk) pairs were to be held constant, computing the minimum cost ingress (egress) routers that meet the constraints is essentially the GAP problem. Starting with an initial assignment of egress routers to (Ah,Pk) pairs, GAP can be iteratively invoked to first compute a set of good ingress routers (for the initial egress routers), and then fix the newly computed ingress routers to compute a better set of egress routers by invoking GAP again, and so forth.
This is the idea underlying the heuristic presented in FIG. 3. Instead of computing the optimal ingress and egress routers for (Ah,Pk) routers at the same time, the procedure computes them separately by fixing one or the other at their most recent values, and repeats this process for a sufficient number of iterations until the cost of the solution becomes stable.
The input parameter to Procedure SINGLEEGRESS is a counter that controls the number of iterations, where each iteration computes a new set of ingress/egress routers. The variable function δ keeps track of the most recent values of ingress and egress routers for (Ah,Pk) pairs, with δ(h,k)[1] and δ(h,k)[2] denoting the ingress and egress routers for the pair (Ah,Pk), respectively. For the initial assignment of egress routers to (Ah,Pk) pairs, ingress router capacity constraints are ignored. This can be shown to be equivalent to the GAP problem with individual prefixes corresponding to jobs, egress routers corresponding to machines and costs/processing times for jobs on machines as described in step 1. For this infinite ingress capacity preliminary step, note the calculation of the cost ckj of assigning job k (for prefix Pk) to machine j (for egress router bj). To minimize the overall cost, the ingress router bi,i∈In(h) that is closest to bj for the traffic from Ah to Pk is chosen. Also, the processing time pkj of job k is constant for all machines j, and is the totality of traffic directed to Pk from all the ASes. The assignment function ƒ as a result of solving GAP assigns prefixes to egress routers, which are captured in δ in step 2.
In the body of the while loop of the procedure, new ingress routers are computed in step 5 with egress routers held constant at their most recently computed values stored in δ( )[2], and new egress routers are computed in step 7 relative to the most recently computed ingress routers in δ( )[1]. δ values are updated to reflect the newly computed values in steps 6 and 8. Note that when computing egress routers in step 7, each prefix is treated as a separate job, but in the computation of ingress routers in step 5, each (AS, prefix) pair becomes a separate job. This is because of the single egress constraint which is asymmetric and requires all (Ah,Pk) pairs involving the same prefix to be assigned to a single egress router, while different (Ah,Pk) pairs with identical prefixes or ASes, can be mapped to different ingress routers.
Algorithms for Multiple Egress Variant
An iterative approach similar to the one used for the single egress case (see FIG. 3) can also be used to compute multiple egress routers for each prefix. The high-level idea is again to fix one of ingress or egress routers for (Ah,Pk) pairs, and then compute the other, and to repeat this process for a certain number of iterations. However, since prefixes can now have multiple egress routers, the simple approach of solving an instance of GAP with each prefix as a job as is done in step 7 of Procedure SINGLEEGRESS is not available. Instead, in this section, a new heuristic is proposed that for fixed ingress routers δ(h,k)[1], computes multiple egress routers for each prefix such that for each (Ah,Pk) pair, the traffic from Ah towards Pk egresses through the egress router for Pk that is closest to δ(h,k)[1], and egress router bandwidth constraints are not violated.
Procedure MULTIPLEEGRESS is similar to Procedure SINGLEEGRESS except for steps 5 and 7. step 1 which computes an initial assignment of egress routers for prefixes can be used as is. This is because the single egress router computed for each prefix in step 1 of SINGLEEGRESS satisfies both the bandwidth constraint as well as the constraint that traffic for each (Ah,Pk) pair egress through the router for Pk that is closest to the ingress router for (Ah,Pk). step 5 of SINGLEEGRESS computes a single ingress router for each (Ah,Pk) pair when the egress router for it is held constant at δ(h,k)[2]. To handle multiple egress routers per prefix, Procedure MULTIPLEEGRESS requires only a slight modification to the c(h,k),i of assigning job (h,k) to ingress router bi. This is needed to reflect the fact that (Ah,Pk) cannot be assigned to ingress router bi if there is an egress router for Pk that is closer to bi than δ(h,k)[2] f. Thus, c(h,k),i=d(i,δ(h,k)[2])·t(h,k) if i∈In(h) and for every g,δ(g,k)∉Q(i,j,k); otherwise, c(h,k),i=∞. Recall from above that Q(i,j,k) denotes the set of egress routers in Out(k) that are closer to bi than bj.
The remainder of this section focuses on developing a heuristic for step 7 that involves computing an egress router for each (Ah,Pk) pair when the ingress router for it is held constant at δ(h,k)[1].
Integer Program Formulation for Step 7
In the multiple egress case, for a given prefix Pk, different (Ah,Pk) pairs may be assigned different egress routers—this is a big departure from the single egress case where egress routers for all (Ah,Pk) pairs are identical for a given prefix. Thus, instead of a single job per prefix, a separate job (h,k) should be defined for each (Ah,Pk) pair. A simple approach would be to solve GAP to compute egress routers in the same way ingress routers were solved in step 5 of Procedure SINGLEEGRESS.
The problem with using GAP in this manner is that it does not incorporate the additional proximity constraint which states that an (Ah,Pk) pair cannot be assigned an egress router bj if a g exists such that (Ag,Pk) is assigned to an egress router b1,l∈Q(i,j,k) Fortunately, the proximity constraint can be captured in an integer program, whose linear relaxation can subsequently be solved and rounded (using the Shmoys Tardos technique for GAP from Shmoys and Tardos, supra, to yield a better solution than simply solving GAP to compute the egress routers. Suppose that variable yjhk is 1 if bj is chosen as the egress router for traffic from AS Ah to prefix Pk, where the ingress router is held constant at δ(h,k)[1]. The following integer program captures all the constraints on the selection of egress routers (for fixed ingress routers), while minimizing cost.




  
    
      
        min
        ⁢
        
          
            ∑
            k
          
          ⁢
          
            
              ∑
              h
            
            ⁢
            
              
                ∑
                
                  j
                  ∈
                  
                    Out
                    ⁡
                    
                      (
                      k
                      )
                    
                  
                
              
              ⁢
              
                
                  y
                  j
                  hk
                
                ·
                
                  d
                  ⁡
                  
                    (
                    
                      
                        
                          δ
                          ⁡
                          
                            (
                            
                              h
                              ,
                              k
                            
                            )
                          
                        
                        ⁡
                        
                          [
                          1
                          ]
                        
                      
                      ,
                      j
                    
                    )
                  
                
                ·
                
                  t
                  ⁡
                  
                    (
                    
                      h
                      ,
                      k
                    
                    )
                  
                
              
            
          
        
      
    
    
      
        (
        9
        )
      
    
  




subject to the following constraints:





  
    
      
        
          ∀
          h
        
        ,
        
          
            k
            :
            
              
                ∑
                
                  j
                  ∈
                  
                    Out
                    ⁡
                    
                      (
                      k
                      )
                    
                  
                
              
              ⁢
              
                y
                j
                hk
              
            
          
          =
          1
        
      
    
    
      
        (
        10
        )
      
    
  
  
    
      
        ∀
        
          j
          :
          
            
              
                ∑
                
                  k
                  :
                  
                    j
                    ∈
                    
                      Out
                      ⁡
                      
                        (
                        k
                        )
                      
                    
                  
                
              
              ⁢
              
                
                  ∑
                  h
                
                ⁢
                
                  
                    y
                    j
                    hk
                  
                  ·
                  
                    t
                    ⁡
                    
                      (
                      
                        h
                        ,
                        k
                      
                      )
                    
                  
                
              
            
            ≤
            
              K
              j
            
          
        
      
    
    
      
        (
        11
        )
      
    
  




∀g,h∀k∀j∈Out(k):





  
    
      
        
          
            
              ∑
              
                l
                ∈
                
                  (
                  
                    
                      Out
                      ⁡
                      
                        (
                        k
                        )
                      
                    
                    -
                    
                      Q
                      ⁡
                      
                        (
                        
                          
                            
                              δ
                              ⁡
                              
                                (
                                
                                  h
                                  ,
                                  k
                                
                                )
                              
                            
                            ⁡
                            
                              [
                              1
                              ]
                            
                          
                          ,
                          j
                          ,
                          k
                        
                        )
                      
                    
                  
                  )
                
              
            
            ⁢
            
              y
              l
              hk
            
          
          +
          
            
              ∑
              
                l
                ∈
                
                  Q
                  ⁡
                  
                    (
                    
                      
                        
                          δ
                          ⁡
                          
                            (
                            
                              h
                              ,
                              k
                            
                            )
                          
                        
                        ⁡
                        
                          [
                          1
                          ]
                        
                      
                      ,
                      j
                      ,
                      k
                    
                    )
                  
                
              
            
            ⁢
            
              y
              l
              gk
            
          
        
        ≤
        1
      
    
    
      
        (
        12
        )
      
    
  




∀h,k,j:yjhk∈{0,1}  (13)

Without Constraint (12), the remaining constraints essentially reduce to GAP, with costs and processing times for jobs (h,k) and machines j as described for the GAP-based approach earlier in this subsection. Constraint (12) captures the proximity constraint by ensuring that if for some h,k and j∈Out(k), the egress router for (Ah,Pk) is not selected from Q(δ(h,k)[1],j,k) (that is, the egress router for (Ah,Pk) is chosen from Out(k)−Q(δ(h,k)[1],j,k)), then for all g, the egress router for (Ag,Pk) cannot be chosen from Q(δ(h,k)[1],j,k). Note that the optimal fractional solution to the linear relaxation of the above integer program is a feasible solution to the LP without Constraint (12), which is essentially GAP. Thus, the LP rounding technique of Shmoys and Tardos can be used to compute an assignment of (Ah,Pk) pairs to egress routers from the optimal fractional solution to the LP comprising of Constraints (9)–(12), since this fractional solution is a feasible solution to GAP.
Heuristic for Step 7
The assignment of (Ah,Pk) pairs to egress routers obtained as a result of rounding the optimal fractional solution for the LP consisting of Constraints (9)–(12) has two basic problems: (1) The capacity constraints of egress routers may be violated (by at most a factor of 2), and (2) the proximity constraints may be violated. A Procedure MULTIPLEEGRESSSTEP7 attempts to remedy this by using heuristics to reassign (Ah,Pk) pairs to egress routers such that both capacity as well as proximity constraints are met. The pseudo-code for this procedure is set forth in FIG. 4. Procedure MULTIPLEEGRESSSTEP7 accepts as an input parameter the assignment δ for which δ( )[1] stores the most recently computed ingress router for each (Ah,Pk) pair. It computes in δ( )[2] new egress routers for each (Ah,Pk) pair without modifying any of the input ingress router assignments. Further, Procedure MULTIPLEEGRESSSTEP7 attempts to ensure that the returned assignment δ satisfies both capacity as well as proximity constraints.
As discussed earlier, the assignment ƒ computed in step 2 may not meet capacity and proximity constraints. Suppose that for each prefix Pk, ƒp(k) is the set of all egress routers for prefix Pk (step 3). Then, for the ingress routers specified by δ( )[1] and for egress routers for prefixes as in ƒp(k), a unique assignment δ( )[2]exists that maps each (Ah,Pk) pair to an egress router, and that satisfies the following two properties: (1) δ satisfies proximity constraints, and (2) for all h,k,δ(h,k)[2]∈ƒp(k). To see this, suppose for an (Ah,Pk) pair, j∈ƒp(k) is the egress router closest to δ(h,k)[1], the ingress router for the pair. Then δ(h,k)[2]=j satisfies the above two properties. A function called compute egress in MULTIPLEEGRESSSTEP7 returns such a δ( )[2].
Procedure MULTIPLEEGRESSSTEP7 iteratively applies one of two basic transformations to δ to reduce the total violation amount. The first is to delete a violated egress router j from ƒp(k) for a prefix Pk. This has the effect of diverting all the egress traffic for Pk passing through j to other routers, thus decreasing the degree to which j is violated. Note, however, that the violation amount of other routers carrying the re-directed traffic from j could increase. The second primitive transformation is to add an egress router j that satisfies capacity constraints to ƒp(k) for a prefix Pk. This has the potential to reduce the violation amount by assigning to j, egress traffic for Pk passing through other violated egress routers. It is straightforward to observe that addition of router j to ƒp(k) can cause the violation amount for only j (and no other router) to increase. Procedure MULTIPLEEGRESSSTEP7 repeatedly applies one of the two transformations to δ until no capacity constraints are violated or there is no remaining transformation for reducing the violation amount.
In Procedure MULTIPLEEGRESSSTEP7 Vjδ=max{0,Σh,k δ(h,k)[2]=jt(h,k)−Kj} represents the amount by which capacity of egress router j is violated, and Cδ=ΣhΣkt(h,k)·d(δ(h,k)[1],δ(h,k)[2]) represents the cost of transporting traffic from ASes to prefixes. In each iteration of the main loop of the procedure, the prefix Pk and egress router j is chosen for which the increase in cost per unit decrease in violation amount is minimum; that is, if δ′ is the new assignment (that satisfies proximity constraints) after deleting or inserting j from ƒp(k), then




  
    
      C
      j
      
        δ
        ′
      
    
    -
    
      C
      j
      δ
    
  
  
    
      ∑
      l
    
    ⁢
    
      
        V
        l
        δ
      
      ⁢
      
        
      
      ⁢
      
        
          ∑
          l
        
        ⁢
        
          V
          l
          
            δ
            ′
          
        
      
    
  




is minimum. An egress router j is a candidate for addition/deletion from ƒp(k) only if (1) the operation results in a decrease in the overall amount of violation of the capacity constraints of egress routers, and (2) the operation does not cause an egress router that previously satisfied capacity constraints to now violate them.

Finally, for a prefix Pk, only egress routers j that violate capacity constraints are candidates for deletion, while for insertion only routers that satisfy capacity constraints are candidates.
Bressoud, et al., supra, demonstrates that the worst-case complexity of Procedure MULTIPLEEGRESSSTEP7 is O(n2·m·q·(m+log n)).
Turning now to FIG. 5, illustrated is a block diagram of one embodiment of a system, generally designated 500, for configuring border gateway selection for transit traffic flows in a computer network constructed according to the principles of the present invention.
The system 500 includes a border gateway modeler 510. The border gateway modeler 510 builds a model 530 of cooperating border gateways. The model 530 includes capacities of the border gateways as described above.
The system 500 further includes a traffic flow optimizer 520. The traffic flow optimizer is associated with the border gateway modeler 510 and analyzes traffic thus. First, the traffic flow optimizer 520 assigns traffic to the border gateways in accordance with GAP. Next, the traffic flow optimizer 520 reassigns the traffic to the border gateways based on cost until the capacities are respected (i.e., such that no capacities are violated). In the illustrated embodiment of the present invention, the system 500 is embodied in a sequence of software instructions executable in a computer. The heuristics of FIGS. 2 and 3 are examples of the processes that can be carried out within the system 500.
Turning now to FIG. 6, illustrated is a method, generally designated 600, of managing a computer network carried out according to the principles of the present invention. The method 600 begins in a start step 610, wherein it is desired to improve, and advantageously optimize, the operation of the border routers of a computer network (which may be an AS). The method 600 may be carried out upon configuration of the network or during operation of the computer network. During operation, the method 600 may be carried out, e.g., per a predetermined schedule, periodically according to a predetermined interval, in response to computer network operating conditions or upon explicit command.
Once started, the method 600 calls for the collecting of route advertisement information from border routers in the computer network (a step 620). The method 600 further calls for the retrieving of existing policy information regarding each of the border routers (a step 630). The method further calls for the collecting of traffic information regarding each of the border routers (a step 640). The steps 620, 630 640 can be carried out in any desired order. Further, the method 600 may call for the collection of further data from the computer network as may be advantageous to a particular application.
Next, in a step 650, the method calls for employing the route advertisement information, the existing policy information and the traffic information to compute updated policy information. This may be performed in accordance with the above general teachings or in any other advantageous manner. Finally, to ensure that the computer network operates in accordance with the updated policy information, the method 600 calls in step 660 for the replacing of the existing policy information with the updated policy information. In this manner, it is expected that traffic through the computer network will be decreased, and perhaps minimized. The method ends in an end step 670.
Although the present invention has been described in detail, those skilled in the art should understand that they can make various changes, substitutions and alterations herein without departing from the spirit and scope of the invention in its broadest form.

## Claims

1. A system for configuring border gateway selection for transit traffic flows in a computer network, comprising:
a border gateway modeler that builds a model of cooperating border gateways, said model including capacities of said border gateways; and
a traffic flow optimizer, associated with said border gateway modeler, that initially assigns traffic to said border gateways in accordance with a generalized assignment problem and subsequently reassigns said traffic to said border gateways based on cost until said capacities are respected, wherein said cost is associated with route advertisement information comprising a network prefix, an Internet Protocol address of a next-hop, a multi-exit discriminator, and a list of autonomous systems along a path to a specified destination network prefix.

2. The system as recited in claim 1 wherein said cooperating border gateways are associated with an autonomous system.

3. The system as recited in claim 1 wherein said traffic flow optimizer assumes a single egress point for traffic intended for a given address.

4. The system as recited in claim 1 wherein said traffic flow optimizer assumes multiple egress points for traffic intended for a given address.

5. The system as recited in claim 1 wherein said traffic flow optimizer reassigns said traffic to said border gateways by solving a linear programming relaxation of an integer programming formulation for said generalized assignment problem.

6. The system as recited in claim 1 wherein said capacities are selected from the group consisting of:
ingress capacities, and
egress capacities.

7. The system of claim 1, wherein said traffic flow optimizer is further configured to:
a) accept an advertisement among a plurality of advertisements with the highest local preference;
b) if a tie occurs in (a), break the tie among the plurality of advertisements that are tied in the highest local preference by accepting an advertisement of the plurality of advertisements with a shortest associated system path;
c) if a tie occurs in (b), break the tie among the plurality of advertisements that are tied in their shortest associated system path by accepting an advertisement of the plurality of advertisements with a smallest multi-exit discriminator;
d) if a tie occurs in (c), break the tie among the plurality of advertisements that are tied in their smallest multi-exit discriminator by accepting an advertisement with the smallest intra-domain cost to an egress border router; and
e) if a tie occurs in (d), break the tie among the plurality of advertisement that are tied in their smallest intra-domain cost to an egress border router by accepting an advertisement with the smallest next-hop address.

8. A system for configuring border gateway selection for transit traffic flows in a computer network, comprising:
a border gateway modeler that builds a model of cooperating border gateways including capacities thereof; and
a traffic flow optimizer, associated with said border gateway modeler, that initially assigns traffic to said border gateways in accordance with a generalized assignment problem and subseguenily reassigns said traffic to said border gateways based on cost until said capacities are respected, wherein said traffic flow optimizer holds certain of said capacities constant while reassigning said traffic to said border gateways.

9. The system as recited in claim 8, wherein said traffic flow optimizer selects a single egress of said traffic for reassignment to said border gateways.

10. The system as recited in claim 8, wherein said traffic flow optimizer selects multiple egresses of said traffic for reassignment to said border gateways.

11. The system as recited in claim 8, wherein said traffic flow optimizer reassigns said traffic to said border gateways based on cost until proximity constraints and said capacities are respected.

12. A method of configuring border gateway selection for transit traffic flows in a computer network, comprising:
building a model of cooperating border gateways, said model including capacities of said border gateways;
initially assigning traffic to said border gateways in accordance with a generalized assignment problem; and
subsequently reassigning said traffic to said border gateways based on cost until said capacities are respected, wherein said cost is associated with route advertisement information comprising a prefix, an Internet protocol address of a next-hop, a multi-exit discriminator, and a list of autonomous systems along a path to a specified network destination prefix.

13. The method as recited in claim 12 wherein said cooperating border gateways are associated with an autonomous system.

14. The method as recited in claim 12 wherein said initially assigning comprises assuming a single egress point for traffic intended for a given address.

15. The method as recited in claim 12 wherein said initially assigning comprises assuming multiple egress points for traffic intended for a given address.

16. The method as recited in claim 12 wherein said subsequently reassigning comprises reassigning said traffic to said border gateways by solving a linear programming relaxation of an integer programming formulation for said generalized assignment problem.

17. The method as recited in claim 12 wherein said capacities are selected from the group consisting of:
ingress capacities, and
egress capacities.

18. A method of configuring border gateway selection for transit traffic flows in a computer network, comprising:
building a model of cooperating border gateways including capacities thereof;
initially assigning traffic to said border gateways in accordance with a generalized assignment problem; and
subsequently reassigning said traffic to said border gateways based on cost until said capacities are respected, wherein said subsequently reassigning comprises holding certain of said capacities constant.

19. The method as recited in claim 18 wherein said subsequently reassigning comprises selecting a single egress of said traffic for reassignment to said border gateways.

20. The method as recited in claim 18 wherein said subsequently reassigning comprises selecting multiple egresses of said traffic for reassignment to said border gateways.

21. The method as recited in claim 18 wherein said subsequently reassigning said traffic to said border gateways based on cost until proximity constraints and said capacities are respected.

22. A method of managing a computer network, comprising:
collecting route advertisement information from border routers in said computer network, wherein said route advertisement information comprises a network prefix, an Internet Protocol address of a next-hop, a multi-exit discriminator, and a list of autonomous systems along a path to a specified destination network prefix;
retrieving existing policy information regarding each of said border routers;
collecting traffic information regarding each of said border routers;
employing said route advertisement information, said existing policy information and said traffic information to compute updated policy information; and
replacing said existing policy information with said updated policy information to decrease traffic through said computer network.

23. The method as recited in claim 22 wherein said method is carried out repeatedly during an operation of said computer network.

24. The method as recited in claim 22 wherein said method is repeated at user-defined intervals during an operation of said computer network.

25. The method as recited in claim 22 wherein said computer network is an autonomous system.

26. The method as recited in claim 22 wherein said employing comprises assuming a single egress point for traffic intended for a given address.

27. The method as recited in claim 22 wherein said employing comprises assuming multiple egress points for traffic intended for a given address.