SSFNet and Routing Simulation
-
Upload
yeo-fernandez -
Category
Documents
-
view
23 -
download
4
description
Transcript of SSFNet and Routing Simulation
![Page 1: SSFNet and Routing Simulation](https://reader036.fdocuments.in/reader036/viewer/2022062408/56813250550346895d98cb64/html5/thumbnails/1.jpg)
SSFNet and Routing Simulation
BJ Premore
Dartmouth College
![Page 2: SSFNet and Routing Simulation](https://reader036.fdocuments.in/reader036/viewer/2022062408/56813250550346895d98cb64/html5/thumbnails/2.jpg)
Overview
• What is SSFNet?
• Building a Model
• Protocol Packages
• A Routing Study
![Page 3: SSFNet and Routing Simulation](https://reader036.fdocuments.in/reader036/viewer/2022062408/56813250550346895d98cb64/html5/thumbnails/3.jpg)
What is SSFNet?
• Modern software for modeling and simulation of large networks
• Java-based
• IP packet-level granularity
![Page 4: SSFNet and Routing Simulation](https://reader036.fdocuments.in/reader036/viewer/2022062408/56813250550346895d98cb64/html5/thumbnails/4.jpg)
Features• Fully Integrated Network Environment
– many detailed network components included– components all inter-operable
• Scalability– designed to handle large, complex simulations– achievable simulation sizes vary by model and
hardware
• Configurability– all components have multiple configurable attributes– sometimes above and beyond actual implementations
• And more ...– repeatability– random number package (CERN Colt)– plotting– monitoring
![Page 5: SSFNet and Routing Simulation](https://reader036.fdocuments.in/reader036/viewer/2022062408/56813250550346895d98cb64/html5/thumbnails/5.jpg)
SSFNet Architecture
SSFNet = SSF Network Models- not independent
SSF = Scalable Simulation Framework- a standard for discrete-event simulation of large, complex systems
DML = Domain Modeling Language- model configuration
![Page 6: SSFNet and Routing Simulation](https://reader036.fdocuments.in/reader036/viewer/2022062408/56813250550346895d98cb64/html5/thumbnails/6.jpg)
Simulation Layers
SSF Simulator API
C++ C Java
CSSF RacewayDaSSF SimulatorImplementations
implements implements implements
SSFNet NetworkComponents
enhances
Model InstancesDML
configures
![Page 7: SSFNet and Routing Simulation](https://reader036.fdocuments.in/reader036/viewer/2022062408/56813250550346895d98cb64/html5/thumbnails/7.jpg)
IDE Package
SSF
CSSFDaSSF
Simulator API
SSFNet
C++ C Java
NetworkComponents
implements implements implements
enhances
configures
DML Model Instances
Raceway SimulatorImplementations
![Page 8: SSFNet and Routing Simulation](https://reader036.fdocuments.in/reader036/viewer/2022062408/56813250550346895d98cb64/html5/thumbnails/8.jpg)
SSFNet Layer
SSF
DML
CSSF RacewayDaSSF
Simulator API
SimulatorImplementations
SSFNet
C++ C Java
NetworkComponents
Model Instances
implements implements implements
enhances
configures
![Page 9: SSFNet and Routing Simulation](https://reader036.fdocuments.in/reader036/viewer/2022062408/56813250550346895d98cb64/html5/thumbnails/9.jpg)
Network Components
physical entities
linkrouterhost
logical containers
Net
protocol graph
protocols
BGP
OSPF
FTP client
HTTP client
Sockets
IP TCP
- each is a Java class or Java package- includes state, behavior, config info
![Page 10: SSFNet and Routing Simulation](https://reader036.fdocuments.in/reader036/viewer/2022062408/56813250550346895d98cb64/html5/thumbnails/10.jpg)
Building a Model
• think hierarchically
• understand NHI addressing
![Page 11: SSFNet and Routing Simulation](https://reader036.fdocuments.in/reader036/viewer/2022062408/56813250550346895d98cb64/html5/thumbnails/11.jpg)
DML Layer
SSF
CSSF RacewayDaSSF
Simulator API
SimulatorImplementations
SSFNet
C++ C Java
NetworkComponents
implements implements implements
enhances
configures
Model InstancesDML
![Page 12: SSFNet and Routing Simulation](https://reader036.fdocuments.in/reader036/viewer/2022062408/56813250550346895d98cb64/html5/thumbnails/12.jpg)
Basic DML Properties
• goal: simplicity
• attribute/value pairs
• hierarchical
• extensibility
• substitution
![Page 13: SSFNet and Routing Simulation](https://reader036.fdocuments.in/reader036/viewer/2022062408/56813250550346895d98cb64/html5/thumbnails/13.jpg)
Basic DML Examples
• attribute/value pairs– simple attributes
• cat Morris• bandwidth 1.544Mb• random_string “a1b 2$#[ _4bs”
– nested attributes• cat [ name Morris ]• cat [ name Morris age “10 years” ]
cat [ name Morris age “10 years” color [ primary orange secondary white pattern stripes ]]
![Page 14: SSFNet and Routing Simulation](https://reader036.fdocuments.in/reader036/viewer/2022062408/56813250550346895d98cb64/html5/thumbnails/14.jpg)
1
1
1
2
DML Examplehost [ id 1 interface [ id 1 ]]router [ id 2 interface [ idrange [ from 1 to 4 ] ]]link [ attach 1(1) attach 2(1)]
23 4
![Page 15: SSFNet and Routing Simulation](https://reader036.fdocuments.in/reader036/viewer/2022062408/56813250550346895d98cb64/html5/thumbnails/15.jpg)
DML: The Protocol Stack
protocol graph
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 ] ]]
IP
TCP
Sockets
BGP
![Page 16: SSFNet and Routing Simulation](https://reader036.fdocuments.in/reader036/viewer/2022062408/56813250550346895d98cb64/html5/thumbnails/16.jpg)
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 cannot have id• local vs. global
– local link need not attach to global NHI address– networks and hosts may be abbreviated or omitted
![Page 17: SSFNet and Routing Simulation](https://reader036.fdocuments.in/reader036/viewer/2022062408/56813250550346895d98cb64/html5/thumbnails/17.jpg)
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
![Page 18: SSFNet and Routing Simulation](https://reader036.fdocuments.in/reader036/viewer/2022062408/56813250550346895d98cb64/html5/thumbnails/18.jpg)
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) ]]
1 2
34
1
11
1
1 2
345
6
5
1
2
1
1
61
2 3
54
5
1
2
![Page 19: SSFNet and Routing Simulation](https://reader036.fdocuments.in/reader036/viewer/2022062408/56813250550346895d98cb64/html5/thumbnails/19.jpg)
From Installation to Execution
• download distribution from www.ssfnet.org
• unzip in location of your choice
• set CLASSPATH environment variable
• while in ssfnet/ directory, type make– builds and validates
• use favorite editor to create DML model
• execute it: java SSF.Net.Net runtime dml-file
![Page 20: SSFNet and Routing Simulation](https://reader036.fdocuments.in/reader036/viewer/2022062408/56813250550346895d98cb64/html5/thumbnails/20.jpg)
SSFNet Protocol Models
• IP (simplified)• TCP (validated)• UDP• Sockets• OSPF (two versions)• BGP• HTTP and FTP clients• Widgets
![Page 21: SSFNet and Routing Simulation](https://reader036.fdocuments.in/reader036/viewer/2022062408/56813250550346895d98cb64/html5/thumbnails/21.jpg)
Applications
• IPsec, MPLS at NIST
• SNMP and NFS client/server at SHAI
• BGP route flap dampening
• in university courses
![Page 22: SSFNet and Routing Simulation](https://reader036.fdocuments.in/reader036/viewer/2022062408/56813250550346895d98cb64/html5/thumbnails/22.jpg)
A Routing Study
• a general inquiry into routing dynamics• not as well-understood as other protocols
• distributed behavior more complex than end-to-end
• some parameters pulled "out of the blue sky"• ubiquitously used in Internet• using the BGP model in SSFNet
• full-fledged routing models not previously available
![Page 23: SSFNet and Routing Simulation](https://reader036.fdocuments.in/reader036/viewer/2022062408/56813250550346895d98cb64/html5/thumbnails/23.jpg)
Routing Basics
• forwarding vs. routing
0 1 2
1128.42.0.1
2129.44.100.1
0192.14.155.13
1129.17.29.32
DirectionDestination
![Page 24: SSFNet and Routing Simulation](https://reader036.fdocuments.in/reader036/viewer/2022062408/56813250550346895d98cb64/html5/thumbnails/24.jpg)
• Two-level routing hierarchy
Routing Basics
Midd
Dartmouth
UMaine
MIT
![Page 25: SSFNet and Routing Simulation](https://reader036.fdocuments.in/reader036/viewer/2022062408/56813250550346895d98cb64/html5/thumbnails/25.jpg)
• BGP used for inter-domain routing
Routing Basics
Midd
Dartmouth
UMaine
MIT
![Page 26: SSFNet and Routing Simulation](https://reader036.fdocuments.in/reader036/viewer/2022062408/56813250550346895d98cb64/html5/thumbnails/26.jpg)
• a simplified view
Routing Basics
BGP
BGP
BGP
BGP
![Page 27: SSFNet and Routing Simulation](https://reader036.fdocuments.in/reader036/viewer/2022062408/56813250550346895d98cb64/html5/thumbnails/27.jpg)
What is BGP?
• BGP is a distributed all-points preferred path algorithm, essentially
• the glue that holds the Internet together
![Page 28: SSFNet and Routing Simulation](https://reader036.fdocuments.in/reader036/viewer/2022062408/56813250550346895d98cb64/html5/thumbnails/28.jpg)
• routing algorithm– 1. Learn neighbors– 2. Share reachability information with neighbors– 3. Continue sharing updated reachability information
• incremental updates• advertisements• withdrawals
• decisions• neighbors paths + policy
• rate limiting• Minimum Route Advertisement Interval (MRAI)
BGP Basics
may serve asimplicit withdrawals
![Page 29: SSFNet and Routing Simulation](https://reader036.fdocuments.in/reader036/viewer/2022062408/56813250550346895d98cb64/html5/thumbnails/29.jpg)
SSFNet BGP• Based on RFCs
• RFC 1771: BGP-4 and latest drafts• RFC compliant implementation• Includes some RFC-specified extensions (Route
Reflection)• Has features similar to those used by vendors (policy-
based filtering)
![Page 30: SSFNet and Routing Simulation](https://reader036.fdocuments.in/reader036/viewer/2022062408/56813250550346895d98cb64/html5/thumbnails/30.jpg)
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
![Page 31: SSFNet and Routing Simulation](https://reader036.fdocuments.in/reader036/viewer/2022062408/56813250550346895d98cb64/html5/thumbnails/31.jpg)
Validation Methodology
• No standards, create our own suite
• Basic behavior in simple topologies– Peering session maintenance (Hold & KeepAlive timer
operation)– Route advertisement and withdrawal– Route selection– Reflection– Internal BGP
• General behavior in complex topologies– End-to-end data delivery– Exercises basic behaviors as well
• Policy testing– Converging and non-converging gadgets [Griffin 1999]
![Page 32: SSFNet and Routing Simulation](https://reader036.fdocuments.in/reader036/viewer/2022062408/56813250550346895d98cb64/html5/thumbnails/32.jpg)
BGP Convergence
• Given a change in the network, how long does it take for all BGP speakers to return to a stable state?
![Page 33: SSFNet and Routing Simulation](https://reader036.fdocuments.in/reader036/viewer/2022062408/56813250550346895d98cb64/html5/thumbnails/33.jpg)
• no convergence bound– persistent oscillations possible
[Varadhan, Govindan, Estrin 1997]
• empirical measurements– lots of updates!– convergence not so good ...
[Labovitz et al, 1997-2000]
Previous Work
![Page 34: SSFNet and Routing Simulation](https://reader036.fdocuments.in/reader036/viewer/2022062408/56813250550346895d98cb64/html5/thumbnails/34.jpg)
• overall– better understand dynamic behavior of BGP
• how does rate limiting impact convergence?
• precise analytical model?– seems unlikely ...– so we use simulation– and start small
Goals
![Page 35: SSFNet and Routing Simulation](https://reader036.fdocuments.in/reader036/viewer/2022062408/56813250550346895d98cb64/html5/thumbnails/35.jpg)
• simple topologies, simple policies
Experiments
line
ring
clique grid
focus
![Page 36: SSFNet and Routing Simulation](https://reader036.fdocuments.in/reader036/viewer/2022062408/56813250550346895d98cb64/html5/thumbnails/36.jpg)
• UP phase– advertise a single destination
• DOWN phase– withdraw a single destination
Experiments
clique
![Page 37: SSFNet and Routing Simulation](https://reader036.fdocuments.in/reader036/viewer/2022062408/56813250550346895d98cb64/html5/thumbnails/37.jpg)
– size– rate-limiting interval– min & max processing times– link delay– sender-side loop detection– withdrawal rate limiting– jitter– continuous rate-limiting– random number seed index
Model Parameters
![Page 38: SSFNet and Routing Simulation](https://reader036.fdocuments.in/reader036/viewer/2022062408/56813250550346895d98cb64/html5/thumbnails/38.jpg)
Experiment DMLNet [ # 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
![Page 39: SSFNet and Routing Simulation](https://reader036.fdocuments.in/reader036/viewer/2022062408/56813250550346895d98cb64/html5/thumbnails/39.jpg)
Experiment DMLrouter [ id 1 graph [ ProtocolSession [ name test use SSF.OS.BGP4.Widgets.Advertiser workload_file /home/bj/blah start_time 50 ] 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" ] ]]
![Page 40: SSFNet and Routing Simulation](https://reader036.fdocuments.in/reader036/viewer/2022062408/56813250550346895d98cb64/html5/thumbnails/40.jpg)
Experiment DMLProtocolSession [ 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) ... ]]
![Page 41: SSFNet and Routing Simulation](https://reader036.fdocuments.in/reader036/viewer/2022062408/56813250550346895d98cb64/html5/thumbnails/41.jpg)
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 ... ]
![Page 42: SSFNet and Routing Simulation](https://reader036.fdocuments.in/reader036/viewer/2022062408/56813250550346895d98cb64/html5/thumbnails/42.jpg)
Average Convergence Timeclique size 15
![Page 43: SSFNet and Routing Simulation](https://reader036.fdocuments.in/reader036/viewer/2022062408/56813250550346895d98cb64/html5/thumbnails/43.jpg)
Average Convergence Timeclique size 15
![Page 44: SSFNet and Routing Simulation](https://reader036.fdocuments.in/reader036/viewer/2022062408/56813250550346895d98cb64/html5/thumbnails/44.jpg)
Average Total Updatesclique size 15
![Page 45: SSFNet and Routing Simulation](https://reader036.fdocuments.in/reader036/viewer/2022062408/56813250550346895d98cb64/html5/thumbnails/45.jpg)
Average Total Updatesclique size 15
![Page 46: SSFNet and Routing Simulation](https://reader036.fdocuments.in/reader036/viewer/2022062408/56813250550346895d98cb64/html5/thumbnails/46.jpg)
Observed optimal values much lower than values used in practice!
converg
ence
tim
e
0
rate-limiting interval (sec)30
penalty
Generalized Results forConvergence Time
![Page 47: SSFNet and Routing Simulation](https://reader036.fdocuments.in/reader036/viewer/2022062408/56813250550346895d98cb64/html5/thumbnails/47.jpg)
• more realistic topologies and policies
• route flap dampening• long-term oscillations
• internal AS topologies
• multiple destinations
• per-route vs. per-peer MRAI
• accurate processing time models
Continuing Work
![Page 48: SSFNet and Routing Simulation](https://reader036.fdocuments.in/reader036/viewer/2022062408/56813250550346895d98cb64/html5/thumbnails/48.jpg)
SOS
• Scripts for Organizing Simulations
• Create families and groups of experiments
• Specify DML template, parameter values, and extractors
• Automatically generates DML, runs sets of experiments, extracts desired measurements
• Stores results in database
![Page 49: SSFNet and Routing Simulation](https://reader036.fdocuments.in/reader036/viewer/2022062408/56813250550346895d98cb64/html5/thumbnails/49.jpg)
Documentation References
SSFNet & DML(info & tutorials)
http://www.ssfnet.org/
SSFNet BGPhttp://www.cs.dartmouth.edu/~beej/bgp/
DML(tutorial)
http://www.cs.dartmouth.edu/~beej/talks/