There has been a recent revival of interest in how genetic interactions evolve, spurred on by an increase in our knowledge of genetic interactions at the molecular level. Empirical work on genetic networks has revealed a surprising amount of robustness to perturbations, suggesting that robustness is an evolved feature of genetic networks. Here, we derive a general model for the evolution of canalization that can incorporate any form of perturbation. We establish an upper bound to the strength of selection on canalization that is approximately equal to the fitness load in the system. This method makes it possible to compare different forms of perturbation, including genetic, developmental, and environmental effects. In general, load that arises from mutational processes is low because the mutation rate is itself low. Mutation load can create selection for canalization in a small network that can be achieved through dominance evolution or gene duplication, and in each case selection for canalization is weak at best. In larger genetic networks, selection on genetic canalization can be reasonably strong because larger networks have higher mutational load. Because load induced through migration, segregation, developmental noise, and environmental variance is not mutation limited, each can cause strong selection for canalization.