Metarouting Timothy G. Griffin Joo Lus Sobrinho - - PowerPoint PPT Presentation

metarouting
SMART_READER_LITE
LIVE PREVIEW

Metarouting Timothy G. Griffin Joo Lus Sobrinho - - PowerPoint PPT Presentation

Metarouting Timothy G. Griffin Joo Lus Sobrinho Computer Laboratory Instituto deTelecomunicaes University of Cambridge Instituto Superior Tcnico Cambridge, UK Lisbon, Portugal SIGCOMM


  • Metarouting Timothy G. Griffin João Luís Sobrinho Computer Laboratory Instituto deTelecomunicações University of Cambridge Instituto Superior Técnico Cambridge, UK Lisbon, Portugal SIGCOMM August 23, 2005

  • Computer Science is Largely about Abstractions Capturing (almost) Instances all instances Parsers Yacc Data Management SQL-based systems Systems + application code Routing Protocols Metarouting (??)

  • Why do this? • No one-size-fits-all IGP – BGP is now a w idely used IGP! • Hard to define, standardize, and deploy new routing protocols (or minor modifications to existing protocols) – Just standardize Metarouting language and leave it up to operator community to standardize protocols using high-level specs… • It’s fun!

  • Idea #1 Let’s try something radical -- keep these separate! Protocol = Mechanism + Policy + …. ??? … • How are routing • How are the messages attributes of a exchanged and propagated? route (example: Link- described? State, Path Vector) • How does configuration • How are attach path adjacencies characteristics? established? • … • How are best routes selected? • …

  • Idea #2 • Use “Routing Policy Algebras” as basis for Policy Component – “Netw ork Routing w ith Path Vector Protocols: Theory and Applications” João Sobrinho. SIGCOMM 2003 (to appear in ToN Oct. 2005) m m + n n Generalize Shortest Paths λ σ λ σ λ σ

  • Routing Policy Algebras How paths are transformed by application of labels L : link labels Σ Σ + L : A = ( Σ , <=, L, , O ) How paths are described and compared A subset of signatures that Σ : path signatures can be associated <= is a preference relation over Σ : <= w ith originated A (complete) x, y in Σ , x <= y or y <= x (or both) (complete) x, y in , x <= y or y <= x (or both) routes. A (transitive) x, y, z in Σ , if x <= y and y <= z (transitive) x, y, z in , if x <= y and y <= z then x <= z then x <= z

  • Example --- Addition (ADD) max label max signature Σ ADD(3, 6) φ 1 2 3 4 5 6 φ φ 1 2 3 4 5 6 L φ 2 φ φ 3 4 5 6 3 φ φ φ φ 4 5 6 ADD(n, m) is SM if 0 < n <= m

  • Guarantees? We w ant protocols that are nice! � always converge, for every network state � unique solution (perhaps modulo some ≅ class) � no forwarding loops (after convergence)

  • Correctness A Monotonicity (M): σ ε Σ/φ , λ ε L σ <= λ σ A Strict Monotonicity (SM): σ ε Σ/φ , λ ε L σ < λ σ Isotonicity (I): σ,β ε Σ/φ , λ ε L σ <= β � λ σ <= λ β A I Assoc. SM vectoring Link-state with generalized Dijkstra Link-state with local vector simulation

  • An algebra for OSPF? (hand-coded from careful reading of RFC 2328) ε (1 (1, ε ε, σ) (1, (1 (1 (1, v ), σ) σ) (1 (1, (2 (2, v) , σ , σ) (2 (2, ε ε, σ) (2, (1 (2 (1, v ), σ) σ) (2 (2, (2 (2, v) , σ , σ) (1, λ ) (1, ε , ε , , λ ε) (1, ε , ε , , λ σ) (1 (1, (1 (1, v ), λ λ σ σ) (1, (1, (2 (2, v ), λ λ σ σ) (2, ε , ε , , λ σ) (2, (2, (1 (1, v ), λ λ σ σ) (2, (2, (2 (2, v ), λ λ σ σ) (1 (1, (1 (1, v ), λ λ ε) ε) (1, (1 (1, v ), ), λ λ ) φ φ φ φ φ φ φ φ φ φ φ φ (1, (2 (2, v ), ), λ λ ) (1 (1, (2 (2, v) , λ ε) ε) φ φ φ φ φ φ φ φ φ φ φ φ (2, λ ) φ (2, ε , ε , , λ ε) (2, ε , ε , , λ σ) (2 (2, (1 (1, v ), λ λ σ σ) (2 (2, (2 (2, v ), λ λ σ σ) φ φ (2, (1 (1, v ), ), λ λ ) φ φ φ φ φ φ φ φ φ φ φ φ (2, (1 (2 (1, v ), λ λ ε) ε) (2, (2 (2 (2, v) , λ ε) ε) (2, (2 (2, v ), ), λ λ ) φ φ φ φ φ φ φ φ φ φ φ φ <{1,2}, λ > = “normal” route <1, …> = intra-area route <2, …> = inter-area route <{1,2}, <1, v>, λ > = type I external <{1,2}, <2, v>, λ > = type II external

  • Routing Algebras are a good start, but… • The algebraic framew ork does not, by itself, provide a w ay of constructing new and complex algebras. – Algebra definition is hard… – Proofs are tedious… – Modifications to an algebra’s definitions are difficult to manage…

  • Idea #3 Routing Algebra Meta-Language (RAML) A ::= (base algebras) B | Op(A) (unary operator) | A Op A (binary operators) • “Abstract syntax” for generating new Algebras • Goals – Want to automatically derive properties (M, SM, …) of the algebra represented by an RAML expression from properties of base algebras and preservation properties of operators – Simplicity – Expressiveness

  • Lexical Product A B Preservation properties A B A B ( σ 1, σ 2) (λ1, λ2) ( λ 1 σ 1, λ 2 σ 2) M M M SM SM M SM SM (φ, _) = (_, φ) = φ (φ, _) = (_, φ) = φ Preference is Lexical order This suggests a design pattern for SM: A1 A2 … Ai A(i+1) … An all M SM don’t care SM

  • Point-w ise application? Preservation properties A B A B A B ( σ 1, σ 2) SM SM M SM M M λ1 ( λ 1 σ 1, σ 2) M SM M λ2 ( σ1 , λ 2 σ 2) M M M κ (A) A κ (A) σ 1 A B = κ (A) κ (B) M M λ λ 1 σ 1 SM M κ σ1

  • Scoped Product Preservation properties A B A B A B ( σ 1, σ 2) SM SM SM ( λ 1, σ 3) ( λ 1 σ 1, σ 3) SM M M λ2 ( σ1 , λ 2 σ 2) B Can be used to implement IBGP/EBGP-like “information hiding” A B B

  • Programmatic Labels A = ( Σ , 8 , L, , 0 ) prog(A) = ( Σ , 8 , L, , 0 ) λ ::= λ λ ::= λ | λ1; λ2 | | λ1; λ2 | reject reject | | if if π π then then λ1 λ1 else else λ2 λ2 (if π π then then λ1 λ1 else else λ2) λ2) σ (if λ σ λ σ = λ σ λ σ (λ1; λ2) (λ1; λ2) σ = λ1 (λ2 λ1 (λ2 σ) ) λ1 λ1 σ if σ if π( π(σ) reject σ = φ = reject λ2 λ2 σ σ o.w o.w . A prog(A) prog M M SM SM

  • MyFirstIGP m et apol i cy M yI G P { pr ogr am at i c { prog( distance : ADD(2000, 2000) l ex { at t r i but e di st ance { l abel l i nk- wei ght { m ode l ocal ; def aul t : 1 router-path: SimpleSeq(1000, 30) } dat a { addi t i on 2000 2000 ; } bandwidth: WIDTH(10000) } at t r i but e r out er - pat h { l abel r out er - i d { m ode l ocal nodal ; } tags: TAGS(string[100])) dat a { Sequence I Pv4; } } at t r i but e bandwi dt h { l abel l i nk- bandwi dt h { m ode l ocal ; This is SM } dat a { W I DTH 1000; } } at t r i but e t ags { dat a { TAG S st r i ng[ 100] ; } } } } }

  • Using MyIGP… pol i cy m pol i cy m y- expor t { y- expor t { m m et apol i cy M et apol i cy M yI G yI G P; P; i f ( em i f ( em pt y( r out er - pat h) ) { pt y( r out er - pat h) ) { i nser t t ags “ sal es cent er NE” i nser t t ags “ sal es cent er NE” } } BG BG P- 17 { P- 17 { r out er - i d 10. 20. 20. 11; r out er - i d 10. 20. 20. 11; m m echani sm echani sm l i nk- st at e har d- st at e l i nk- st at e har d- st at e nei ghbor 10. 10. 10. 10 { nei ghbor 10. 10. 10. 10 { m m et apol i cy et apol i cy M M yI G yI G P; P; pol i cy m pol i cy m y- i m y- i m por t { por t { i m i m por t [ set l i nk- bandwi dt h O por t [ set l i nk- bandwi dt h O C- 12; C- 12; m m et apol i cy et apol i cy M M yI G yI G P; P; m m y- i m y- i m por t ] ; por t ] ; i f ( “ dat a cent er ” i n t ags) { i f ( “ dat a cent er ” i n t ags) { expor t m expor t m y- expor t ; y- expor t ; i f ( bandwi dt h < O i f ( bandwi dt h < O C- 12) { C- 12) { } } set l i nk- wei ght 100; set l i nk- wei ght 100; } } el se { } el se { set l i nk- wei ght 10 set l i nk- wei ght 10 } } } el se { } el se { set l i nk- wei ght 20; set l i nk- wei ght 20; } } }

  • A Metarouting Specification, Label Modalities An RAML expression RP = <E, M , LM> A set of mechanisms that can be bound to adjacencies

  • Ongoing, Future Work • RAML – More operators… • At the “protocol level” • Inter-operation operators • Implementation – Using XORP (w w w .xorp.org) • With Mark Handley (UCL) and others – Hijack BGP – Routing Metaprotocol

  • Disjuntion (“Injection”) Preservation properties A B τ A B τ A B σ 1 σ 2 SM SM SM SM M M λ1 λ 1 σ 1 φ M SM M λ2 λ 2 σ 2 φ M M M ι τ(σ) τ(σ) φ

  • … at the “protocol level” ? = <A, M1 M1 , LM1> <B, M2 M2 , LM2> < , M1 + M2 M1 + M2 , LM1 + LM2> A B τ τ Not sure what “+” means Nice way of thinking about “administrative distance” … Perhaps OSPF is really something like <AREAS, Path-Vector Path-Vector , LM1> <ADD, Link-State Link-State , LM2>