Complex, end-to-end network services are set up via the configuration method: each component has a finite number of configuration parameters each of which is set to definite values. End-to-end
network service requirements can be on
connectivity, security, performance and fault-tolerance. A number of subsidiary requirements are created that constrain, for example, the protocols to be used, and the logical structures and associated policies to be set up at different protocol
layers. By performing different types of reasoning with these requirements, different configuration tasks are accomplished. These include configuration synthesis, configuration error diagnosis, configuration error fixing, reconfiguration as requirements or components are added and deleted, and requirement
verification. A method of performing
network configuration management by model finding formalizes and automates such reasoning using a logical
system called
Alloy. Given a first-order logic formula and
a domain of interpretation,
Alloy tries to find whether the formula is satisfiable in that domain, i.e., whether it has a model.
Alloy is used to build a Requirement
Solver that takes as input a set of network components and requirements upon their configurations and determines component configurations satisfying those requirements. This Requirement
Solver is used in different ways to accomplish the above reasoning tasks.