49
SSFNet and Routing Simulation BJ Premore Dartmouth College

SSFNet and Routing Simulationhelper.ipam.ucla.edu/publications/cntut/cntut_1501.pdf · 2003. 10. 14. · SSF Simulator API C++ C Java DaSSF CSSF Raceway Simulator Implementations

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SSFNet and Routing Simulationhelper.ipam.ucla.edu/publications/cntut/cntut_1501.pdf · 2003. 10. 14. · SSF Simulator API C++ C Java DaSSF CSSF Raceway Simulator Implementations

SSFNet and Routing Simulation

BJ Premore

Dartmouth College

Page 2: SSFNet and Routing Simulationhelper.ipam.ucla.edu/publications/cntut/cntut_1501.pdf · 2003. 10. 14. · SSF Simulator API C++ C Java DaSSF CSSF Raceway Simulator Implementations

Overview

• What is SSFNet?

• Building a Model

• Protocol Packages

• A Routing Study

Page 3: SSFNet and Routing Simulationhelper.ipam.ucla.edu/publications/cntut/cntut_1501.pdf · 2003. 10. 14. · SSF Simulator API C++ C Java DaSSF CSSF Raceway Simulator Implementations

What is SSFNet?

• Modern software for modeling and simulation of large networks

• Java-based

• IP packet-level granularity

Page 4: SSFNet and Routing Simulationhelper.ipam.ucla.edu/publications/cntut/cntut_1501.pdf · 2003. 10. 14. · SSF Simulator API C++ C Java DaSSF CSSF Raceway Simulator Implementations

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 Simulationhelper.ipam.ucla.edu/publications/cntut/cntut_1501.pdf · 2003. 10. 14. · SSF Simulator API C++ C Java DaSSF CSSF Raceway Simulator Implementations

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 Simulationhelper.ipam.ucla.edu/publications/cntut/cntut_1501.pdf · 2003. 10. 14. · SSF Simulator API C++ C Java DaSSF CSSF Raceway Simulator Implementations

Simulation Layers

SSF Simulator API

C++ C Java

CSSF RacewayDaSSFSimulatorImplementations

implements implements implements

SSFNetNetworkComponents

enhances

Model InstancesDML

configures

Page 7: SSFNet and Routing Simulationhelper.ipam.ucla.edu/publications/cntut/cntut_1501.pdf · 2003. 10. 14. · SSF Simulator API C++ C Java DaSSF CSSF Raceway Simulator Implementations

IDE Package

SSF

CSSFDaSSF

Simulator API

SSFNet

C++ C Java

NetworkComponents

implements implements implements

enhances

configures

DML Model Instances

RacewaySimulatorImplementations

Page 8: SSFNet and Routing Simulationhelper.ipam.ucla.edu/publications/cntut/cntut_1501.pdf · 2003. 10. 14. · SSF Simulator API C++ C Java DaSSF CSSF Raceway Simulator Implementations

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 Simulationhelper.ipam.ucla.edu/publications/cntut/cntut_1501.pdf · 2003. 10. 14. · SSF Simulator API C++ C Java DaSSF CSSF Raceway Simulator Implementations

Network Components

physical entities

linkrouter

host

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 Simulationhelper.ipam.ucla.edu/publications/cntut/cntut_1501.pdf · 2003. 10. 14. · SSF Simulator API C++ C Java DaSSF CSSF Raceway Simulator Implementations

Building a Model

• think hierarchically

• understand NHI addressing

Page 11: SSFNet and Routing Simulationhelper.ipam.ucla.edu/publications/cntut/cntut_1501.pdf · 2003. 10. 14. · SSF Simulator API C++ C Java DaSSF CSSF Raceway Simulator Implementations

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 Simulationhelper.ipam.ucla.edu/publications/cntut/cntut_1501.pdf · 2003. 10. 14. · SSF Simulator API C++ C Java DaSSF CSSF Raceway Simulator Implementations

Basic DML Properties

• goal: simplicity

• attribute/value pairs

• hierarchical

• extensibility

• substitution

Page 13: SSFNet and Routing Simulationhelper.ipam.ucla.edu/publications/cntut/cntut_1501.pdf · 2003. 10. 14. · SSF Simulator API C++ C Java DaSSF CSSF Raceway Simulator Implementations

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 Morrisage “10 years”color [

primary orangesecondary whitepattern stripes

]]

Page 14: SSFNet and Routing Simulationhelper.ipam.ucla.edu/publications/cntut/cntut_1501.pdf · 2003. 10. 14. · SSF Simulator API C++ C Java DaSSF CSSF Raceway Simulator Implementations

1

1

1

2

DML Examplehost [id 1interface [ id 1 ]

]router [id 2interface [ idrange [ from 1 to 4 ] ]

]link [attach 1(1)attach 2(1)

]

23 4

Page 15: SSFNet and Routing Simulationhelper.ipam.ucla.edu/publications/cntut/cntut_1501.pdf · 2003. 10. 14. · SSF Simulator API C++ C Java DaSSF CSSF Raceway Simulator Implementations

DML: The Protocol Stack

protocol graph

router [graph [ProtocolSession [name bgpuse SSF.OS.BGP4.BGPSession

]ProtocolSession [name ospfuse SSF.OS.OSPF.sOSPF

]ProtocolSession [name tcpuse SSF.OS.TCP.tcpSessionMaster

]ProtocolSession [name ipuse SSF.OS.IP

]]

]

IP

TCP

Sockets

BGP

Page 16: SSFNet and Routing Simulationhelper.ipam.ucla.edu/publications/cntut/cntut_1501.pdf · 2003. 10. 14. · SSF Simulator API C++ C Java DaSSF CSSF Raceway Simulator Implementations

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 Simulationhelper.ipam.ucla.edu/publications/cntut/cntut_1501.pdf · 2003. 10. 14. · SSF Simulator API C++ C Java DaSSF CSSF Raceway Simulator Implementations

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 Simulationhelper.ipam.ucla.edu/publications/cntut/cntut_1501.pdf · 2003. 10. 14. · SSF Simulator API C++ C Java DaSSF CSSF Raceway Simulator Implementations

HierarchyExample 2

Net [Net [ id 1 ... ] # 2 hosts + 1 routerNet [ id 2 ... ] # 4 hosts + 1 routerlink [ 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 Simulationhelper.ipam.ucla.edu/publications/cntut/cntut_1501.pdf · 2003. 10. 14. · SSF Simulator API C++ C Java DaSSF CSSF Raceway Simulator Implementations

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 Simulationhelper.ipam.ucla.edu/publications/cntut/cntut_1501.pdf · 2003. 10. 14. · SSF Simulator API C++ C Java DaSSF CSSF Raceway Simulator Implementations

SSFNet Protocol Models

• IP (simplified)

• TCP (validated)

• UDP

• Sockets

• OSPF (two versions)

• BGP

• HTTP and FTP clients

• Widgets

Page 21: SSFNet and Routing Simulationhelper.ipam.ucla.edu/publications/cntut/cntut_1501.pdf · 2003. 10. 14. · SSF Simulator API C++ C Java DaSSF CSSF Raceway Simulator Implementations

Applications

• IPsec, MPLS at NIST

• SNMP and NFS client/server at SHAI

• BGP route flap dampening

• in university courses

Page 22: SSFNet and Routing Simulationhelper.ipam.ucla.edu/publications/cntut/cntut_1501.pdf · 2003. 10. 14. · SSF Simulator API C++ C Java DaSSF CSSF Raceway Simulator Implementations

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 Simulationhelper.ipam.ucla.edu/publications/cntut/cntut_1501.pdf · 2003. 10. 14. · SSF Simulator API C++ C Java DaSSF CSSF Raceway Simulator Implementations

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 Simulationhelper.ipam.ucla.edu/publications/cntut/cntut_1501.pdf · 2003. 10. 14. · SSF Simulator API C++ C Java DaSSF CSSF Raceway Simulator Implementations

• Two-level routing hierarchy

Routing Basics

Midd

Dartmouth

UMaine

MIT

Page 25: SSFNet and Routing Simulationhelper.ipam.ucla.edu/publications/cntut/cntut_1501.pdf · 2003. 10. 14. · SSF Simulator API C++ C Java DaSSF CSSF Raceway Simulator Implementations

• BGP used for inter-domain routing

Routing Basics

Midd

Dartmouth

UMaine

MIT

Page 26: SSFNet and Routing Simulationhelper.ipam.ucla.edu/publications/cntut/cntut_1501.pdf · 2003. 10. 14. · SSF Simulator API C++ C Java DaSSF CSSF Raceway Simulator Implementations

• a simplified view

Routing Basics

BGP

BGP

BGP

BGP

Page 27: SSFNet and Routing Simulationhelper.ipam.ucla.edu/publications/cntut/cntut_1501.pdf · 2003. 10. 14. · SSF Simulator API C++ C Java DaSSF CSSF Raceway Simulator Implementations

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 Simulationhelper.ipam.ucla.edu/publications/cntut/cntut_1501.pdf · 2003. 10. 14. · SSF Simulator API C++ C Java DaSSF CSSF Raceway Simulator Implementations

• 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 Simulationhelper.ipam.ucla.edu/publications/cntut/cntut_1501.pdf · 2003. 10. 14. · SSF Simulator API C++ C Java DaSSF CSSF Raceway Simulator Implementations

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 Simulationhelper.ipam.ucla.edu/publications/cntut/cntut_1501.pdf · 2003. 10. 14. · SSF Simulator API C++ C Java DaSSF CSSF Raceway Simulator Implementations

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 Simulationhelper.ipam.ucla.edu/publications/cntut/cntut_1501.pdf · 2003. 10. 14. · SSF Simulator API C++ C Java DaSSF CSSF Raceway Simulator Implementations

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 Simulationhelper.ipam.ucla.edu/publications/cntut/cntut_1501.pdf · 2003. 10. 14. · SSF Simulator API C++ C Java DaSSF CSSF Raceway Simulator Implementations

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 Simulationhelper.ipam.ucla.edu/publications/cntut/cntut_1501.pdf · 2003. 10. 14. · SSF Simulator API C++ C Java DaSSF CSSF Raceway Simulator Implementations

• 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 Simulationhelper.ipam.ucla.edu/publications/cntut/cntut_1501.pdf · 2003. 10. 14. · SSF Simulator API C++ C Java DaSSF CSSF Raceway Simulator Implementations

• 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 Simulationhelper.ipam.ucla.edu/publications/cntut/cntut_1501.pdf · 2003. 10. 14. · SSF Simulator API C++ C Java DaSSF CSSF Raceway Simulator Implementations

• simple topologies, simple policies

Experiments

line

ring

clique grid

focus

Page 36: SSFNet and Routing Simulationhelper.ipam.ucla.edu/publications/cntut/cntut_1501.pdf · 2003. 10. 14. · SSF Simulator API C++ C Java DaSSF CSSF Raceway Simulator Implementations

• UP phase

– advertise a single destination

• DOWN phase

– withdraw a single destination

Experiments

clique

Page 37: SSFNet and Routing Simulationhelper.ipam.ucla.edu/publications/cntut/cntut_1501.pdf · 2003. 10. 14. · SSF Simulator API C++ C Java DaSSF CSSF Raceway Simulator Implementations

– 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 Simulationhelper.ipam.ucla.edu/publications/cntut/cntut_1501.pdf · 2003. 10. 14. · SSF Simulator API C++ C Java DaSSF CSSF Raceway Simulator Implementations

Experiment DML

Net [ # the all-encompassing Netfrequency 1000000000 # nanosecond simulation frequencyrandomstream [

generator MersenneTwisterstream 165123420046345823reproducibility_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 Simulationhelper.ipam.ucla.edu/publications/cntut/cntut_1501.pdf · 2003. 10. 14. · SSF Simulator API C++ C Java DaSSF CSSF Raceway Simulator Implementations

Experiment DML

router [id 1graph [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 Simulationhelper.ipam.ucla.edu/publications/cntut/cntut_1501.pdf · 2003. 10. 14. · SSF Simulator API C++ C Java DaSSF CSSF Raceway Simulator Implementations

Experiment DML

ProtocolSession [name bgp use SSF.OS.BGP4.BGPSession autoconfig falseconnretry_time 120min_as_orig_time 15reflector falseneighbor [

as 2 address 1(7)use_return_address 1(1)hold_time 90keep_alive_time 30mrai 10infilter [ _extends .filters.permit_all ]outfilter [ _extends .filters.permit_all ]

]neighbor [

as 3 address 1(1)...

]]

Page 41: SSFNet and Routing Simulationhelper.ipam.ucla.edu/publications/cntut/cntut_1501.pdf · 2003. 10. 14. · SSF Simulator API C++ C Java DaSSF CSSF Raceway Simulator Implementations

Experiment DML

bgpoptions [ # define global BGP optionsshow_conn_estab true # show connection establishmentshow_snd_update true # show when updates are sentssld false # no sender-side loop detectionauto_advertise falseshow_fwd_table_add trueshow_rcv_notif trueshow_socket_events falseshow_state_changes falseglobal_ebgp_mrai 20startup_jitter_bound 0.1# about 50 more...

]

Page 42: SSFNet and Routing Simulationhelper.ipam.ucla.edu/publications/cntut/cntut_1501.pdf · 2003. 10. 14. · SSF Simulator API C++ C Java DaSSF CSSF Raceway Simulator Implementations

Average Convergence Timeclique size 15

Page 43: SSFNet and Routing Simulationhelper.ipam.ucla.edu/publications/cntut/cntut_1501.pdf · 2003. 10. 14. · SSF Simulator API C++ C Java DaSSF CSSF Raceway Simulator Implementations

Average Convergence Timeclique size 15

Page 44: SSFNet and Routing Simulationhelper.ipam.ucla.edu/publications/cntut/cntut_1501.pdf · 2003. 10. 14. · SSF Simulator API C++ C Java DaSSF CSSF Raceway Simulator Implementations

Average Total Updatesclique size 15

Page 45: SSFNet and Routing Simulationhelper.ipam.ucla.edu/publications/cntut/cntut_1501.pdf · 2003. 10. 14. · SSF Simulator API C++ C Java DaSSF CSSF Raceway Simulator Implementations

Average Total Updatesclique size 15

Page 46: SSFNet and Routing Simulationhelper.ipam.ucla.edu/publications/cntut/cntut_1501.pdf · 2003. 10. 14. · SSF Simulator API C++ C Java DaSSF CSSF Raceway Simulator Implementations

Observed optimal values much lower than values used in practice!

conv

erge

nce

tim

e

0rate-limiting interval (sec)

30

penalty

Generalized Results forConvergence Time

Page 47: SSFNet and Routing Simulationhelper.ipam.ucla.edu/publications/cntut/cntut_1501.pdf · 2003. 10. 14. · SSF Simulator API C++ C Java DaSSF CSSF Raceway Simulator Implementations

• 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 Simulationhelper.ipam.ucla.edu/publications/cntut/cntut_1501.pdf · 2003. 10. 14. · SSF Simulator API C++ C Java DaSSF CSSF Raceway Simulator Implementations

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 Simulationhelper.ipam.ucla.edu/publications/cntut/cntut_1501.pdf · 2003. 10. 14. · SSF Simulator API C++ C Java DaSSF CSSF Raceway Simulator Implementations

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/