49
SSFNet and Routing Simulation BJ Premore Dartmouth College

SSFNet and Routing Simulation BJ Premore Dartmouth College

Embed Size (px)

Citation preview

Page 1: SSFNet and Routing Simulation BJ Premore Dartmouth College

SSFNet and Routing Simulation

BJ Premore

Dartmouth College

Page 2: SSFNet and Routing Simulation BJ Premore Dartmouth College

Overview

• What is SSFNet?

• Building a Model

• Protocol Packages

• A Routing Study

Page 3: SSFNet and Routing Simulation BJ Premore Dartmouth College

What is SSFNet?

• Modern software for modeling and simulation of large networks

• Java-based

• IP packet-level granularity

Page 4: SSFNet and Routing Simulation BJ Premore Dartmouth College

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 BJ Premore Dartmouth College

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 BJ Premore Dartmouth College

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 BJ Premore Dartmouth College

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 BJ Premore Dartmouth College

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 BJ Premore Dartmouth College

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 BJ Premore Dartmouth College

Building a Model

• think hierarchically

• understand NHI addressing

Page 11: SSFNet and Routing Simulation BJ Premore Dartmouth College

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 BJ Premore Dartmouth College

Basic DML Properties

• goal: simplicity

• attribute/value pairs

• hierarchical

• extensibility

• substitution

Page 13: SSFNet and Routing Simulation BJ Premore Dartmouth College

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 BJ Premore Dartmouth College

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 BJ Premore Dartmouth College

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 BJ Premore Dartmouth College

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 BJ Premore Dartmouth College

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 BJ Premore Dartmouth College

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 BJ Premore Dartmouth College

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 BJ Premore Dartmouth College

SSFNet Protocol Models

• IP (simplified)• TCP (validated)• UDP• Sockets• OSPF (two versions)• BGP• HTTP and FTP clients• Widgets

Page 21: SSFNet and Routing Simulation BJ Premore Dartmouth College

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 BJ Premore Dartmouth College

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 BJ Premore Dartmouth College

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 BJ Premore Dartmouth College

• Two-level routing hierarchy

Routing Basics

Midd

Dartmouth

UMaine

MIT

Page 25: SSFNet and Routing Simulation BJ Premore Dartmouth College

• BGP used for inter-domain routing

Routing Basics

Midd

Dartmouth

UMaine

MIT

Page 26: SSFNet and Routing Simulation BJ Premore Dartmouth College

• a simplified view

Routing Basics

BGP

BGP

BGP

BGP

Page 27: SSFNet and Routing Simulation BJ Premore Dartmouth College

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 BJ Premore Dartmouth College

• 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 BJ Premore Dartmouth College

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 BJ Premore Dartmouth College

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 BJ Premore Dartmouth College

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 BJ Premore Dartmouth College

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 BJ Premore Dartmouth College

• 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 BJ Premore Dartmouth College

• 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 BJ Premore Dartmouth College

• simple topologies, simple policies

Experiments

line

ring

clique grid

focus

Page 36: SSFNet and Routing Simulation BJ Premore Dartmouth College

• UP phase– advertise a single destination

• DOWN phase– withdraw a single destination

Experiments

clique

Page 37: SSFNet and Routing Simulation BJ Premore Dartmouth College

– 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 BJ Premore Dartmouth College

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 BJ Premore Dartmouth College

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 BJ Premore Dartmouth College

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 BJ Premore Dartmouth College

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 BJ Premore Dartmouth College

Average Convergence Timeclique size 15

Page 43: SSFNet and Routing Simulation BJ Premore Dartmouth College

Average Convergence Timeclique size 15

Page 44: SSFNet and Routing Simulation BJ Premore Dartmouth College

Average Total Updatesclique size 15

Page 45: SSFNet and Routing Simulation BJ Premore Dartmouth College

Average Total Updatesclique size 15

Page 46: SSFNet and Routing Simulation BJ Premore Dartmouth College

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 BJ Premore Dartmouth College

• 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 BJ Premore Dartmouth College

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 BJ Premore Dartmouth College

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/