Top Banner
SSFNet and Routing Simulation BJ Premore Dartmouth College
49

SSFNet and Routing Simulation BJ Premore Dartmouth College.

Jan 04, 2016

Download

Documents

Gilbert Morgan
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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/