Date post: | 31-Dec-2015 |
Category: |
Documents |
Upload: | jemimah-french |
View: | 216 times |
Download: | 2 times |
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
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