1 / 35

Inter-domain Routing Simulation by SSFNet

Inter-domain Routing Simulation by SSFNet. Wang Lijun Tsinghua University Jul 3, 2006. Inter-domain Routing. Autonomous system ISP, University, Company, e.g. CERNET, CHINACOM About more than 19,000 ASes Glued together by BGP Border Gateway Protocol Flexibility Scalability Stability.

tender
Télécharger la présentation

Inter-domain Routing Simulation by SSFNet

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. Inter-domain Routing Simulation by SSFNet Wang Lijun Tsinghua University Jul 3, 2006

  2. Inter-domain Routing • Autonomous system • ISP, University, Company, e.g. CERNET, CHINACOM • About more than 19,000 ASes • Glued together by BGP • Border Gateway Protocol • Flexibility • Scalability • Stability

  3. Research on inter-domain routing • Collecting BGP data from Internet • Active method • Log BGP table and Update • Route Views Project • RIPE Routing Information Service • Simulation • SSFNet

  4. What is SSFNet • SSFNet is a Java SSF-based simulator of Internet protocol • Features • IP packet-level granularity • all components have multiple configurable attributes • components all inter-operable • designed to handle large, complex simulations

  5. SSFNet Architecture • SSF : Scalable Simulation Framework • a standard for discrete-event simulation of large, complex systems • DML : Domain Modeling Language • a standard for model configuration and verification • supports extensibility, inheritance and substitution of attributes • SSFNet : SSF Network Models • open-source Java models of protocols • network elements • assorted support classes

  6. Simulation Layers DML Model Instances configures Network Components SSFNet enhances Simulator Implementations DaSSF CSSF Raceway implements implements C++ C Java SSF Simulator API

  7. IDE Package DML Model Instances configures Network Components SSFNet enhances Simulator Implementations Raceway DaSSF CSSF implements implements implements C++ C Java SSF Simulator API

  8. SSFNet Layer DML Model Instances configures Network Components SSFNet enhances Simulator Implementations DaSSF CSSF Raceway implements implements implements C++ C Java SSF Simulator API

  9. physicalentities link router host logical containers Net protocol graph Network Components - each is a Java class or Java package - includes state, behavior, configure info protocols IP TCP Sockets FTP client BGP HTTP client OSPF

  10. DML Layer DML Model Instances configures Network Components SSFNet enhances Simulator Implementations DaSSF CSSF Raceway implements implements implements C++ C Java SSF Simulator API

  11. DML Example • Attribute/Value pairs • Simple attributes • Nested attributes host [ id 1 interface [ id 1 ] ] router [ id 2 interface [ idrange [ from 1 to 4 ] ] ] link [ attach 1(1) attach 2(1) ] 1 2 1 1 2 4 3

  12. The Protocol Stack router [ graph [ ProtocolSession [ name bgp use SSF.OS.BGP4.BGPSession ] ProtocolSession [ name ospf use SSF.OS.OSPF.sOSPF ] ProtocolSession [ name tcp use SSF.OS.TCP.tcpSessionMaster ] ProtocolSession [ name ip use SSF.OS.IP ] ] ] BGP Sockets TCP IP protocol graph

  13. NHI Addressing • Internal format for model-building convenience • N:N:N: ... :N:H(I) • N = network id • H = host id • I = interface id • top-level Net does not have id • local vs. global • local link need not attach to global NHI address • networks and hosts may be abbreviated or omitted

  14. Hierarchy Example Net [ host [ id 1 interface [ id 1 ] ] host [ id 2 interface [ id 1 ] ] link [ attach 1(1) attach 2(1) ] ] 1 2 1 1

  15. HierarchyExample 2 Net [ Net [ id 1 ... ] # 2 hosts + 1 router Net [ id 2 ... ] # 4 hosts + 1 router link [ attach 1:5(4) attach 2:5(5) ] ] 2 1 2 1 1 1 1 1 1 2 1 6 6 5 5 5 5 4 3 4 4 3 2 2 3 1 1 1

  16. Execution • Download distribution • www.ssfnet.org • ssfnet_raceway[1].tar.gz • Build and validate • ~/ssfnet/$:make • Create and execute DML model • java SSF.Net.Net runtime dml-file

  17. SSF.OS.BGP4 Functionality • Finite state machine, timers, RIB • TCP transport • Peering: exterior and interior • Route reflection • Messages and path attributes • Policy • filter based on path attribute • attribute modification • Monitoring of protocol operation • gather stats on practically any event of interest

  18. Experiment DML Net [ # the all-encompassing Net frequency 1000000000 # nanosecond simulation frequency randomstream [ generator MersenneTwister stream 165123420046345823 reproducibility_level timeline ] Net [ id 1 AS_status boundary router [ ... ] ] Net [ id 2 AS_status boundary router [ ... ] ] ... link [ attach 1:1(1) attach 2:1(7) delay 0.01 ] link [ attach 1:1(2) attach 3:1(7) delay 0.01 ] ... bgpoptions [ ... ] # define global BGP options ] # end of the all-encompassing Net

  19. Experiment DML router [ id 1 graph [ ProtocolSession [ name bgp use SSF.OS.BGP4.BGPSession autoconfig true ] ProtocolSession [ name socket use SSF.OS.Socket.socketMaster ] ProtocolSession [ name tcp use SSF.OS.TCP.tcpSessionMaster ] ProtocolSession [ name ip use SSF.OS.IP ] ProtocolSession [ name probe use SSF.OS.ProbeSession file "out.data" stream "bgpstream" ] ] ]

  20. Experiment DML ProtocolSession [ name bgp use SSF.OS.BGP4.BGPSession autoconfig false connretry_time 120 min_as_orig_time 15 reflector false neighbor [ as 2 address 1(7) use_return_address 1(1) hold_time 90 keep_alive_time 30 mrai 10 infilter [ _extends .filters.permit_all ] outfilter [ _extends .filters.permit_all ] ] neighbor [ as 3 address 1(1) ... ] ]

  21. Experiment DML bgpoptions [ # define global BGP options show_conn_estab true # show connection establishment show_snd_update true # show when updates are sent ssld false # no sender-side loop detection auto_advertise false show_fwd_table_add true show_rcv_notif true show_socket_events false show_state_changes false global_ebgp_mrai 20 startup_jitter_bound 0.1 # about 50 more ... ] • Output data in simulation • Parameters configure BGP behavior

  22. References http://www.ssfnet.org http://bj.premore.net/edu/talks/

  23. Modify RFD to improve BGP routing convergence

  24. Problem statement • Problem of BGP routing convergence • Path exploration • Path vector protocol • Lots of Invalid Update messages • Long convergence delay • RFD suppress relative stable routes falsely • Relative routes unavailable for a long time

  25. Route Flap Damping • Penalty value • Increase a predefined value when route changes • Decrease exponentially when route is stable

  26. Objectives • Relative stable routes converge fast • Suppressing persistently flapping routes • Reducing the communication overhead • Compatible with current method

  27. Basic ideas • Classify route change according different causes • Update from Network event, e.g. link down • Invalid Update from BGP protocol behavior • Apply different mechanisms to Update of different causes • How to differentiate ?

  28. Design Overview • Location causing route change • Original node • Intermediate connection • Only nodes near the causing location apply RFD to the route change • Other nodes apply methods different form RFD, invalid routes suppression Receive Update Judge cause BGP session broken? BGP protocol behavior ? suppression mark ? No Yes Apply RFD Invalid routes suppression

  29. Neighboring Nodes Suppression • For route change from the source node • If the neighboring nodes apply RFD to route change, remote nodes do not need to apply RFD to the route change • After neighboring nodes apply RFD to route change, insert “Suppression Mark” in the Update • Downstream nodes do not apply RFD to Update with suppression mark • For route change from the intermediate connection • Neighboring node of changing connection apply RFD to the route change • Insert “Suppression mark” in Update sending to downstream nodes

  30. Invalid Routes Suppression • Characteristics of invalid routes • The interval between successive invalid routes is MRAI • Maximal duration of path exploration is MRAI*n, n is the longest AS path • Route attributes, especially AS_PATH, are changed • Process on Invalid routes – similar but different from RFD • Penalize attribute change more than Withdrawal • The penalty of routes which are not suppressed decays exponentially, with half life is MRAI • If a suppressed route keeps stable for k*MRAI, release the route • If suppressed routes changes, just reset the reuse timer, i.e. route is suppressed for constant time, k*MRAI, after the last change

  31. Simulation – convergence time

  32. Simulation – communication overhead

  33. Simulation – partial deployment (1)

  34. Simulation – partial deployment (2)

  35. Thank you

More Related