1 / 23

Modeling the Border Gateway Protocol

This presentation outlines the background and motivation of BGP, as well as the development approach and features of BGP++. It also discusses the problem-prone characteristics of BGP and the future plans for BGP++.

lewisadam
Download Presentation

Modeling the Border Gateway Protocol

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. Modeling the Border Gateway Protocol Xenofontas Dimitropoulos George Riley Georgia Institute of Technology

  2. Outline • BGP background and motivation. • Modeling BGP. • BGP++ development approach. • BGP++ features. • Work in progress and future plans. MANIACS

  3. BGP routers What is BGP ? • is the default interdomain routing protocol of the Internet. • “is the glue that holds the Internet together”. • is a protocol of critical importance. MANIACS

  4. BGP increased interest • BGP does not work well. • Delayed convergence • Divergence issues • Incompatible vendor implementations • Misbehavior of flap dampening • Correlation between worm propagation and Internet instability. • 20-25% of paths are inflated. Taken from Craig Labovitz, G. Robert Malan, Farham Jahanian MANIACS

  5. BGP problem prone characteristics Distributed nature of BGP Irregular abrupt growth of the Internet “BGP is not a well understood protocol” Flexibility left to the operator in the form of policies MANIACS

  6. Outline • BGP background and motivation. • Modeling BGP, • BGP++ development approach. • BGP++ features. • Work in progress and future plans. MANIACS

  7. Zebra deamon bgpd ripd ospfd bgpd Unix routing table ns node GNU Zebra software architecture Agent Port Classifier Add. Classifier Figure 1. Zebra bgpd and ns-2 integration. What is BGP++ ? • C++ implementation of BGPv4, developed for ns-2. • BGP++ is GNU Zebra bgpd patched to work with ns-2. MANIACS

  8. Development Approach Outline • To incorporate GNU Zebra bgpd in ns-2: • Convert C code to C++. • Interleave Zebra scheduler with simulator scheduler. • Use FullTcp API instead of BSD sockets. • Modify configuration and logging facilities MANIACS

  9. Convert C code to C++. • C functions are converted into C++ functions, members of the BGP class. • C global variables are converted into member variables of the BGP class. MANIACS

  10. main() { } main() { } initializations initializations select() fetch execute execute Zebra bgpd vs ns-2 scheduling Multiplex IO streams Scheduler queue MANIACS

  11. ns2 scheduler queue bgpd start event bgp_main() pre_select() post_select() Interleaved scheduling main() { } initializations select() execute MANIACS

  12. Replace BSD sockets with TcpFull • Dynamically tear up/down of tcp connections. • Slightly modify tcp-full to notify the application when the connection moves: • From SYN_RCVD to ESTABLISHED • From SYN_SENT to ESTABLISHED • From ESTABLISHED to CLOSE_WAIT MANIACS

  13. Further modifications • Modify Zebra facilities to support OO environment, e.g. logging and configuration. • Get rid of all unnecessary features, e.g. telnet interface. • Dig in the code. MANIACS

  14. Outline • BGP background and motivation. • Modeling BGP, • BGP++ development approach. • BGP++ features. • Work in progress and future plans. MANIACS

  15. BGP++ configuration ns-2 BGP routers set r [new BgpRegistry] set fin 400 ; # finish time set BGP1 [new Application/Route/Bgp] $BGP1 register $r $BGP1 finish-time $fin $BGP1 config-file /sth/bgpd1.conf $BGP1 attach-node $n1 configuration configuration configuration configuration configuration configuration .tcl MANIACS

  16. BGP++ configuration • Use router configuration commands that are used by Zebra to configure simulated routers. • Approximately 320 supported commands. • Only few new ns-2 commands added. MANIACS

  17. Configuring BGP instances [xdimi@enzo example1]$ more bgpd1.conf !Local AS and local IP address router bgp 1 bgp router-id 192.38.14.1 !Neighbors neighbor 192.38.14.2 remote-as 2 !Networks advertised network 190.0.0.0 mask 255.0.0.0 network 189.0.0.0 mask 255.0.0.0 log file bgpd1.log MANIACS

  18. Run time configuration instead of telnet interface. $ns at 10 “$BGP1 execute \”no neighbor 192.38.14.2\”” $ns at 15 “$BGP3 execute \”show ip bgp\”” $ns at 20 “$BGP2 execute \”neighbor 192.38.14.3 \ advertisement-interval 20\”” MANIACS

  19. BGP++, configuring policies • Route Maps “route-map” • Access Lists “ip access-list” • Community Lists “ip community-list” • AS path access lists “ip as-path access-list” • Prefix Lists “ip prefix list” MANIACS

  20. Validation • Run several simple validation tests. • Recreate same topology in lab and compare. • Minimum modifications on “core” of Zebra software. MANIACS

  21. Future Work • Use BGP++ with pdns to see how large we can get. • Examine BGP convergence time at scales. • Integrate BGP++ with GTNetS. MANIACS

  22. Recap • Big scale simulations are necessary in BGP research. • BGP++: a BGP implementation for ns-2 • Development approach. • Features MANIACS

  23. Questions ? MANIACS

More Related