One or more computer storage media storing computer executable instructions that, when executed by one or more processors, cause the one or more processors to: determine a predetermined maximum number of faults for at least one portion of a network; determine, for one or more individual links of a plurality of links, a communication capacity for each link in the at least one portion of the network; access a network topology of the at least one portion of the network, wherein the network topology includes at least an arrangement of network components in the network and network settings for the network; compute a traffic configuration for the at least one portion of the network such that the communication capacity of each link of the plurality of links in the at least one portion of the network is not exceeded by an amount of traffic communicated by the one or more individual links as long as a number of faults that actually occur in the at least one portion of the network is less than or equal to the predetermined maximum number of faults; and configure the at least one portion of the network based at least in part on the traffic configuration; and wherein the executable instructions further program the one or more processors to: generate a model of different combinations of possible faults based at least in part on the network topology of the at least one portion of the network and the predetermined maximum number of faults, wherein the model includes a first number of constraints associated with the different combinations of possible faults for the at least one portion of the network; the one or more computer storage media being characterized in that the executable instructions, when executed, cause the one or more processors to reduce the first number of constraints to a second number of constraints that is less than the first number of constraints using a sorting network prior to computing the traffic configuration for the at least one portion of the network. determine a predetermined maximum number of faults for at least one portion of a network; determine, for one or more individual links of a plurality of links, a communication capacity for each link in the at least one portion of the network; access a network topology of the at least one portion of the network, wherein the network topology includes at least an arrangement of network components in the network and network settings for the network; compute a traffic configuration for the at least one portion of the network such that the communication capacity of each link of the plurality of links in the at least one portion of the network is not exceeded by an amount of traffic communicated by the one or more individual links as long as a number of faults that actually occur in the at least one portion of the network is less than or equal to the predetermined maximum number of faults; and configure the at least one portion of the network based at least in part on the traffic configuration; and wherein the executable instructions further program the one or more processors to: generate a model of different combinations of possible faults based at least in part on the network topology of the at least one portion of the network and the predetermined maximum number of faults, wherein the model includes a first number of constraints associated with the different combinations of possible faults for the at least one portion of the network; the one or more computer storage media being characterized in that the executable instructions, when executed, cause the one or more processors to reduce the first number of constraints to a second number of constraints that is less than the first number of constraints using a sorting network prior to computing the traffic configuration for the at least one portion of the network.