240 likes | 391 Views
timothy.griffin@cl.cam.ac.uk. Metarouting. Timothy G. Griffin Computer Laboratory University of Cambridge. Cisco Routing Research Symposium August 2006. Today …. Small number of routing protocols Design, implementation, deployment, standardization long, slow process
E N D
timothy.griffin@cl.cam.ac.uk Metarouting Timothy G. Griffin Computer Laboratory University of Cambridge Cisco Routing Research Symposium August 2006
Today …. • Small number of routing protocols • Design, implementation, deployment, standardization long, slow process • BGP is being pressed into service as an IGP • No convergence guarantees • BGP Wedgies (RFC 4264) • Endless stream of BGP extensions • Cost Communities
… Tomorrow • Distinction between router configuration and protocol definition will vanish • Network Operators will define their own routing protocols • operator community will define standards when needed • Vendors will no longer implement routing protocols, but rather a standardized metalanguage for their specification. • Routing metalanguage and associated components are standardized in the IETF.
Metarouting(Griffin & Sobrinho, SIGCOMM 2005) • Routing Algebras (Sobrinho 2003) • Expressive framework • Specific algebraic properties required for correctness of each algorithm (Path-Vector, Link-State+Dijkstra) • A meta-language for Routing Algebras • Base algebras • Constructors • Property Preservation Rules • Properties of base algebras known, • Preservation rules for each constructor • Properties are derived much as types in a programming language • Metalanguage can be implemented on a router • Protocols defined via configuration
Firm Foundations Monoid Transformations (Gurney & Griffin, 2006) Monoid Endomorhisms (Minoux, 1976, Gondran & Minoux 2001) Path Algebras = Idempotent semirings (Carre’, Gondran & Minoux, many others, 1970s, 1980s) Sobrinho Routing Algebras Shortest Paths
Routing Algebras “Network Routing with Path Vector Protocols: Theory and Applications” João Sobrinho. SIGCOMM 2003 m m + n n Generalize Shortest Paths
Routing Algebras An ordered set of signatures is a set of policy labels Is policy application function
Important Properties Monotonicity (M) Strict monotonicity (SM) Isotonicity (I) (SI) Strict isotonicity
What makes these algorithms work? • Generalized Dijkstra (Think Link State) • Correctness proof uses monotonicity and isotonicity, • Loop-freedom for hop-by-hop forwarding uses strict monontonicity. • Generalized Bellman-Ford (Vectoring) • Convergence proof uses monotonicity, • Loop-freedom for hop-by-hop forwarding uses strict monotonicity
An algebra for OSPF? (hand-coded from careful reading of RFC 2328) e (1, e, s) (1, (1, v), s) (1, (2, v), s) (2, e, s) (2, (1, v), s) (2, (2, v), s) (1, l) (1, e , l e) (1, e , l s) (1, (1, v), l s) (1, (2, v), l s) (2, e , l s) (2, (1, v), l s) (2, (2, v), l s) (1, (1, v), l e) (1, (1, v), l) f f f f f f (1, (2, v), l) (1, (2, v), l e) f f f f f f (2, l) f (2, e , l e) (2, e , l s) (2, (1, v), l s) (2, (2, v), l s) f f (2, (1, v), l) f f f f f f (2, (1, v), l e) (2, (2, v), l e) (2, (2, v), l) f f f f f f <1, …> = intra-area route <2, …> = inter-area route <{1,2}, l> = “normal” route <{1,2}, <1, v>, l> = type I external <{1,2}, <2, v>, l> = type II external
Routing Algebras are a good start, but… • The algebraic framework does not, by itself, provide a way of constructing new and complex algebras. • Algebra definition is hard… • Proofs are tedious… • Modifications to an algebra’s definitions are difficult to manage…
Routing Algebra Meta-Language ::= • “Abstract syntax” for generating new Algebras • Key innovation: automatically derive properties (M, SM, …) of the algebra represented by an expression from properties of base algebras and preservation properties of operators • Other goals • Simplicity • Expressiveness A B (base algebras) | Op(A) (unary operator) | A Op A (binary operators)
Property Preservation with Lex Product M M M EQ,SI I I SM SM EQ,SI SI SI M SM SM EQ EQ EQ A design pattern: SM All at least M SM Don’t care!
Disjoint Label Union Same order Structure
Disjoint Union : Property Preservation M M M I I I SM M M SI I I M SM M I SI I SM SM SM SI SI SI
Local Preference, Origin Preference (Always M, SI)
Scoped Product : Property Preservation SM M M SM SM SM These rules can be automatically derived
Area Product : Property Preservation M M M SM SM SM These rules can be automatically derived
Ongoing, Future Work • Modeling • Forwarding, tunneling • Administrative distance • Protocol interaction • Protocol migration • Design and implementation of routing metalanguage • Relational algebra vs. SQL • Implementation on top of routing code base • Prototype with Quagga • Novel IGP design and testing
Example from Current Prototype let prefix : algebra = op(isolate(IPv4)) let lp3 : algebra = lp(min(0,3)) let cpp : algebra = fm(lp3) let node_path : algebra = slists(100, strings(20)) let community_set : algebra = tags(100, 20) let sp : algebra = add(1, 1000) let ebgp : algebra = lex < nlri : prefix, loc : cpp, path : node_path, comm : community_set, d : lp(sp), ipath : lp(node_path), icomm : lp(community_set) > let ibgp : algebra = lex < nlri : prefix, loc : op(cpp), path : op(node_path), comm : op(community_set), d : sp, ipath : node_path, icomm : community_set > let bgp_algebra : algebra = lunion <ebgp : ebgp, ibgp : ibgp> let bgp : protocol = make_protocol(<algebra = bgp_algebra, mechanism = PathVector>)