In the last couple of years the awareness that the network somehow become too complex is rising more and more. Somehow the “stupid network” described by David Isenberg’s  become complex again… So it is time to turn the wheel one more time and to try to reduce the network state that has to be maintained and to try to shift the complexity in yet another direction.
Let’s track the network evolution
Consider the fact that before the complexity has been shifted from the network to the terminals so as a result we got quite capable end hosts instead of a dull telephones.
The initial packet networks were designed to sustain to a nuclear blast and the major concern in designing their architecture was network survivability. Now the world of networking is moved by a bit different business concerns. Such are the ability to utilize fully each network link, client isolation on common network infrastructure, ability to resist on DDOS attacks, selective performance, selective high availability.
Each one of those is not that easy to be achieved on pure IP network infrastructure. Some of those are possible to be fulfilled in pure MPLS based infrastructure and almost any could be fulfilled in MPLS + MPLS based network infrastructure. However that comes with its cost and the cost is the ability to maintain more and more network state in more and more complex control plane. So here comes the question can’t we somehow reduce the complexity of the issue with maintaining so many control plane protocols.
The answer is that there is such – why not connect all the nodes in a network to a controller make them all speak a common protocol with it through an out of band channel and then just let’s play with the controller.
Software Defined Networking
Ready set and done -> You got the openflow and SDN (Software Defined Networking). The idea is not new it somehow looks similar to the one of the intelligent telephony network described by Isenberg. In that one the network is controlled by intelligent nodes through a common protocol – SS7 (Signaling System No7) and its extensions (TCAP, INAP, MAP and so on).
It is important to understand that the SDN comes with its impact to the network quality attributes. Obviously it will reduce the network state maintained by each of the network nodes and will reduce the cost for achieving qualities such as network utilization, isolation, DDOS resistance, QOS and selective high availability on a per flow basis. However this will come on a certain cost. The cost will be inhibiting network survivability. Obviously there will be controllers that will have centralized control on the network state. The complexity of the current network will be shifted towards those nodes and it won’t be easy to make them high available, work with the required performance and able to resist on different kinds of network based attacks.
Most of us have sensed what happens with the telephony network on New Year or when there is a problem with the main telephony switch. Same will happen with the packet network.
Anyway what is Segment Routing
SR (Segment Routing) is currently (30.03.2013) described in an IETF draft. The draft is driven by CISCO systems and is supported by leading Telecom Companies. The nutshell is expressed in the draft itself.
Segment Routing (SR) enables any node to select any path (explicit or derived from IGPs SPT computations) for each of its traffic classes.The path does not depend on a hop-by-hop signaling technique (neither LDP nor RSVP). It only depends on a set of “segments” that are advertised by the IS-IS routing protocol. These segments act as topological sub-paths that can be combined together to form the desired path.
There are two forms of segments: node and adjacency. A node segment represents a path to a node. An adjacency segment represents a specific adjacency to a node. A node segment is typically a multi-hop path while an adjacency segment is a one-hop path. SR’s control-plane can be applied to IPv6 and MPLS dataplanes.
Segment Routing control-plane can be applied to the MPLS dataplane: a node segment to node N is instantiated in the MPLS dataplane as an LSP along the shortest-path (SPT) to the node. An adjacency segment is instantiated in the MPLS dataplane as a cross-connect entry pointing to a specific egress datalink.
As per its designers it clings to the network qualities by offering Scale and Simplicity.
– less protocols to operate
– less protocol interactions to troubleshoot
– avoid directed LDP sessions between core routers – deliver automated FRR for any topology
– avoid millions of labels in LDP database
– avoid millions of TE LSP’s in the network
– avoid millions of tunnels to configure
Segment Routing and SDN
The draft describes how SR brings some of the SDN qualities without the introduction of a centralized control point. However
at the same time both technologies could co-exist.
Some of the SDN requirements are:
- Guarantees of Tight SLA’s (FRR and bandwidth admission control).
- Efficient use of the network resources.
- Very high scaling to support application-based transactions.
Segment Routing (SR) is a compelling architecture to support SDN for the following reasons.
- SR supports a simple but efficient capacity planning process based on centralized optimization.
- SR optimizes network resources by providing a very simple support for ECMP-based shortest-path flows.
- SR provides for much better scaling than alternative solution: several orders of scaling gains have been illustrated in the simplicity and Capacity Planning sections.
- SR provides for guaranteed-FRR for any topology.
- SR provides for ultimate virtualization as the network does not contain any application state.The state is in the packet. It is encoded as a list of segments.
- SR provides for very frequent transaction-based application as the network does not hold any state for the SR-encoded flows.
More for Segment routing
 Isenberg D., Rise of the Stupid Network http://www.hyperorg.com/misc/stupidnet.html