1. A method of determining routes in a network comprising a plurality of nodes and a plurality of links interconnecting the nodes, the method comprising: partitioning the network into domains, each domain having a respective set of nodes and a respective network controller designated for the domain; populating a respective overall routing table at the respective network controller designated for each respective domain, each respective overall routing table comprising a respective nodal routing table associated with each respective node in the respective domain; distributing to each respective node in each respective domain the respective nodal routing table which is associated with that respective node; perceiving a change in link state in a first domain; determining a subset of nodes in the first domain that are affected by the change in link state; updating respective nodal routing tables for nodes in the first domain that are affected by the change in link state; and indicating the change in link state to at least one network controller designated for a domain other than the first domain.