1 / 6

Metarouting

http://www.cl.cam.ac.uk/~tgg22/metarouting. Metarouting. Suppose You Need a New Interior Routing Protocol?. Cross between OSPF and BGP Arbitrary inter-area topology Area-level distances Complete Path lengths Area paths. Wait until IETF and vendors NEVER define and implement it.

chessa
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. http://www.cl.cam.ac.uk/~tgg22/metarouting Metarouting

  2. Suppose You Need a New Interior Routing Protocol? • Cross between OSPF and BGP • Arbitrary inter-area topology • Area-level distances • Complete Path lengths • Area paths • Wait until IETF and vendors NEVER define and implement it. • Use BGP as an IGP and hack something up that sort of approximates what you want and hope for the best. What can you do?

  3. Or Use Metarouting! let path_vector_algebra : kind = {StrictlyIncreasing} algebra let dijkstra_algebra : kind = {StrictlyMonotonic, StrictlyIncreasing} algebra let shortest_path : dijkstra_algebra = int_addition<lower=1, upper=1000> let area_paths : path_vector_algebra = simple_paths< max_length=100, elements = strings<max_length = 50> > let destinations : {CopyOnly} algebra = copy_only(prefix<afi=ipv4, safi=unicast>)

  4. … the interesting bits. let intra_area : dijkstra_algebra = lex < nlri : destinations, adistance : copy_only(shortest_paths), weight,distance : shortest_paths, path : copy_only(area_paths) > let inter_area : path_vector_algebra = route_maps( add_reject ( lex < nlri : destinations, aweight,adistance : shortest_paths, weight,distance : shortest_paths, link_info,path : area_paths > ) ) let my_igp : path_vector_algebra = label_union < outside : intra_area, inside : inter_area >

  5. Now, configure the protocol… router london_linx { routing { algebra my_igp { neigbor 10.10.10.01 { import = inside { weight = 17; } mechanism = link_state{method=dijkstra}; } neigbor 10.10.20.01 { import = inside { weight = 21; } mechanism = path_vector{method=soft_state}; } neigbor 10.10.30.01 { import = outside { link_info = <local = "UK", peer = "EMEA">; if ("NYCdata_center" in path and adistance < 1000 ) then { aweight = 100; weight = 1; } else { aweight = 1; weight = 100; } } mechanism = path_vector{method=hard_state}; } } } }

  6. Let Operators Decide • We don't know how to define generic IGPs for every network ----let the operators decide. • We don't know how to define IBGPs for every network ---let the operators decide. • We don't know how to fix EBGP or how to evolve it for changing requirements ---let the operators decide. • Operators can decide, if only they are given the right tools.

More Related