1 / 24

Metarouting

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

daxia
Download Presentation

Metarouting

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. timothy.griffin@cl.cam.ac.uk Metarouting Timothy G. Griffin Computer Laboratory University of Cambridge Cisco Routing Research Symposium August 2006

  2. 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

  3. … 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.

  4. 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

  5. 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

  6. Routing Algebras “Network Routing with Path Vector Protocols: Theory and Applications” João Sobrinho. SIGCOMM 2003 m m + n n Generalize Shortest Paths

  7. Routing Algebras An ordered set of signatures is a set of policy labels Is policy application function

  8. Important Properties Monotonicity (M) Strict monotonicity (SM) Isotonicity (I) (SI) Strict isotonicity

  9. 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

  10. 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

  11. 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…

  12. 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)

  13. Some Examples: Lexicographic Product

  14. 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!

  15. Disjoint Label Union Same order Structure

  16. 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

  17. Local Preference, Origin Preference (Always M, SI)

  18. Scoped Product

  19. Scoped Product : Property Preservation SM M M SM SM SM These rules can be automatically derived

  20. Area Product

  21. Area Product : Property Preservation M M M SM SM SM These rules can be automatically derived

  22. 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

  23. 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>)

More Related