Segment Routing

Segment Routing has some similarities with IP/MPLS, but labels are used to identify path segments as opposed to individual label switch paths. This reduces the label state stored in each intermediate node, and also eliminates the need for a label mapping protocol like LDP or RSVP-TE. Some capability is lost as a result, and segment routing may / may not evolve over the long term to fill in those capability caps. As an approach to networking that is source-routed, there are other interesting aspects of segment routing, especially in the context of programmatic, controller-based traffic engineering.

IETF Standards:

Other sources of information:

Random Notes:

  • Segment routing is source-routed
  • A source node uses an ordered list of instructions, called segments
  • A segment can represent any instruction
  • A segment can be local or global
  • Flows can be restricted to a specific topology, with per-flow state only at the ingress
  • SR can be used in an MPLS network with no change to the dataplane
  • In a MPLS network, a segment is a MPLS label
  • In a MPLS network, an ordered list is a MPLS label stack
  • SR can be used in an IPv6 network with a new type of header
  • An ordered list, is an ordered list of IPv6 addresses in the routing header
  • In SRv6, the active segment is the DA
  • The next active segment is indicated by a pointer in the new routing header
  • A segment is often referred to by its segment ID (SID)
  • SR supports distributed, centralized, and hybrid control plane
  • Distributed:
    • Segements are allocated and signalled by IS-IS, OSPF, or BGP
    • Node individually decides to steer packets
    • Node individually computes policy
  • Centralized
    • Segments allocated and instantied by controller
    • Controller computes policies
    • Programming options are not restricted, but could be Netconf, PCEP, or BGP
    • The number of SR controllers is not restricted
    • A controller can discover instantiated an unallocated SIDs at each node
  • Hybrid
    • Complements distributed with controller
    • Likely options between controller and node are PCEP & BGP, but there are no restrictions
  • Hosts may be part of a SR domain
  • SR architecture can be instantiated on various data planes: MPLS, IPv6,…
  • SR MPLS: No change to the data plane
  • SRv6: SR header (SRH)
  • IGP-based distributed control plane
    • IGP-adjacency segment
    • IGP-prefix segment
  • BGP
    • BGP peering segment
    • BGP-prefix segment
  • Headend binds a SID (BSID: binding segment) to a policy (ordered list)
  • Prefix-SID Algorithm
    • Shortest path first: midpoint may implement local policy
    • Strict shortest path first: routers must ignore local policy (except FRR)
    • Source SR node must not use SSPF if path goes through a router where SSPF is not supported
  • Multicast is out of scope for the initial architecture
  • Binding SID (BSID) allow the policy attached to the BSID to be changed, without impacting the nodes using the BSID.
  • Each global segment MUST be bound to a unique index or address within an SR domain