Title: Interdomain Routing Simulation by SSFNet
1Inter-domain Routing Simulation by SSFNet
- Wang Lijun
- Tsinghua University
- Jul 3, 2006
2Inter-domain Routing
- Autonomous system
- ISP, University, Company, e.g. CERNET, CHINACOM
- About more than 19,000 ASes
- Glued together by BGP
- Border Gateway Protocol
- Flexibility
- Scalability
- Stability
3Research 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
4What is SSFNet
- SSFNet is a Java SSF-based simulator of Internet
protocol - Features
- IP packet-level granularity
- all components have multiple configurable
attributes - components all inter-operable
- designed to handle large, complex simulations
5SSFNet 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
6Simulation Layers
DML
Model Instances
configures
Network Components
SSFNet
enhances
Simulator Implementations
CSSF
Raceway
DaSSF
implements
implements
C
C
Java
SSF
Simulator API
7IDE Package
DML
Model Instances
configures
Network Components
SSFNet
enhances
Simulator Implementations
CSSF
DaSSF
Raceway
implements
implements
implements
C
C
Java
SSF
Simulator API
8SSFNet Layer
DML
Model Instances
configures
Network Components
SSFNet
enhances
Simulator Implementations
CSSF
Raceway
DaSSF
implements
implements
implements
C
C
Java
SSF
Simulator API
9Network Components
- each is a Java class or Java package - includes
state, behavior, configure info
protocols
IP
TCP
Sockets
FTP client
BGP
HTTP client
OSPF
10DML Layer
DML
Model Instances
configures
Network Components
SSFNet
enhances
Simulator Implementations
CSSF
Raceway
DaSSF
implements
implements
implements
C
C
Java
SSF
Simulator API
11DML Example
host id 1 interface id 1 router
id 2 interface idrange from 1 to 4
link attach 1(1) attach 2(1)
- Attribute/Value pairs
- Simple attributes
- Nested attributes
1
2
1
1
2
4
3
12The Protocol Stack
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
BGP
Sockets
TCP
IP
protocol graph
13NHI Addressing
- Internal format for model-building convenience
- NNN ... NH(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
14Hierarchy 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
15HierarchyExample 2
Net Net id 1 ... 2 hosts 1 router
Net id 2 ... 4 hosts 1 router link
attach 15(4) attach 25(5)
2
1
2
1
1
1
1
1
1
2
6
1
6
5
5
5
5
3
4
4
3
4
2
2
3
1
1
1
16Execution
- Download distribution
- www.ssfnet.org
- ssfnet_raceway1.tar.gz
- Build and validate
- /ssfnet/make
- Create and execute DML model
- java SSF.Net.Net runtime dml-file
17SSF.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
18Experiment DML
Net the all-encompassing Net frequency
1000000000 nanosecond simulation frequency
randomstream generator MersenneTwister
stream 165123420046345823 reproducibility_leve
l timeline Net id 1 AS_status boundary
router ... Net id 2 AS_status boundary
router ... ... link attach 11(1)
attach 21(7) delay 0.01 link attach 11(2)
attach 31(7) delay 0.01 ... bgpoptions
... define global BGP options end of the
all-encompassing Net
19Experiment 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"
20Experiment DML
ProtocolSession 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) ...
21Experiment 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 ...
- Output data in simulation
- Parameters configure BGP behavior
22References
- http//www.ssfnet.org
- http//bj.premore.net/edu/talks/
23Modify RFD to improve BGP routing convergence
24Problem 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
25Route Flap Damping
- Penalty value
- Increase a predefined value when route changes
- Decrease exponentially when route is stable
26Objectives
- Relative stable routes converge fast
- Suppressing persistently flapping routes
- Reducing the communication overhead
- Compatible with current method
27Basic 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 ?
28Design Overview
- 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
Receive Update
Judge cause
suppression mark ?
BGP session broken?
BGP protocol behavior ?
No
Yes
Apply RFD
Invalid routes suppression
29Neighboring 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
30Invalid Routes Suppression
- Characteristics of invalid routes
- The interval between successive invalid routes is
MRAI - Maximal duration of path exploration is MRAIn, n
is the longest AS 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 exponentially, with half life is MRAI - If a suppressed route keeps stable for kMRAI,
release the route - If suppressed routes changes, just reset the
reuse timer, i.e. route is suppressed for
constant time, kMRAI, after the last change
31Simulation convergence time
32Simulation communication overhead
33Simulation partial deployment (1)
34Simulation partial deployment (2)
35Thank you