+ All Categories
Home > Documents > Inter-domain Routing Simulation by SSFNet Wang Lijun Tsinghua University Jul 3, 2006.

Inter-domain Routing Simulation by SSFNet Wang Lijun Tsinghua University Jul 3, 2006.

Date post: 31-Dec-2015
Category:
Upload: jemimah-french
View: 216 times
Download: 2 times
Share this document with a friend
35
Inter-domain Routing Simulation by SSFNet Wang Lijun Tsinghua University Jul 3, 2006
Transcript

Inter-domain Routing Simulation by SSFNet

Wang LijunTsinghua University

Jul 3, 2006

Inter-domain Routing

• Autonomous system– ISP, University, Company, e.g. CERNET, CHI

NACOM– About more than 19,000 ASes– Glued together by BGP

• Border Gateway Protocol– Flexibility– Scalability– Stability

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

What is SSFNet

• SSFNet is a Java SSF-based simulator of Internet protocol

• Features– IP packet-level granularity– all components have multiple configurable attr

ibutes– components all inter-operable– designed to handle large, complex simulation

s

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

Simulation Layers

SSF Simulator API

C++ C Java

CSSF RacewayDaSSF SimulatorImplementations

implements implements

SSFNet NetworkComponents

enhances

Model InstancesDML

configures

IDE Package

SSF

CSSFDaSSF

Simulator API

SSFNet

C++ C Java

NetworkComponents

implements implements implements

enhances

configures

DML Model Instances

Raceway SimulatorImplementations

SSFNet Layer

SSF

DML

CSSF RacewayDaSSF

Simulator API

SimulatorImplementations

SSFNet

C++ C Java

NetworkComponents

Model Instances

implements implements implements

enhances

configures

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, configure info

DML Layer

SSF

CSSF RacewayDaSSF

Simulator API

SimulatorImplementations

SSFNet

C++ C Java

NetworkComponents

implements implements implements

enhances

configures

Model InstancesDML

DML Example

1

1

1

2

host [ id 1 interface [ id 1 ]]router [ id 2 interface [ idrange [ from 1 to 4 ] ]]link [ attach 1(1) attach 2(1)]

23 4

• Attribute/Value pairs– Simple attributes– Nested attributes

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

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

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

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

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

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

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

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" ] ]]

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) ... ]]

Experiment DMLbgpoptions [ # 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

References

http://www.ssfnet.org

http://bj.premore.net/edu/talks/

Modify RFD to improve BGP routing convergence

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

Route Flap Damping

• Penalty value– Increase a predefined value when route

changes– Decrease exponentially when route is stable

Objectives

• Relative stable routes converge fast

• Suppressing persistently flapping routes

• Reducing the communication overhead

• Compatible with current method

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 ?

Design Overview

Receive Update

Judge cause

suppression mark ?

BGP session broken ?

Apply RFD

Invalid routes suppression

BGP protocol behavior ?

No Yes

• 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

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

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 A

S 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 exponent

ially, 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

Simulation – convergence time

Simulation – communication overhead

Simulation – partial deployment (1)

Simulation – partial deployment (2)

Thank you


Recommended