Title: Investigation of Global Network Routing Behavior
1Investigation of GlobalNetwork Routing Behavior
- BJ Premore
- Dartmouth College
- Prof. David Nicol, Advisor
- October 30, 2000
- In collaboration with
- Jim Cowie, Renesys Corporation
- Tim Griffin, ATT Labs-Research
- Andy Ogielski, Renesys Corporation
- and several other colleagues
2Overview
- Objectives
- To better understand the dynamics of BGP
behaviors (route fluctuations, failure modes,
convergence) - Provide the ability to explore the global impact
of implementation tradeoffs, as well as
non-standard extensions/modifications to the
protocol - Combined use of the black box (Internet
measurements) approach and the glass box approach
(simulations) - Implementation and Functionality
- SSFNet BGP-4 architecture
- Finite state machine, peering session
establishment, timing, iBGP, route reflection,
messages and path attributes, decision process
route selection, policy-based filtering, feedback - Validation
- Research Applications
- Timing (Min Route Adver), route flapping (timing
again), policy interaction convergence, much
much more
3loose confederation of independent networks (ASes)
Global Internet
the only glue that holds it all together
BGP
4- most of the conventional wisdom about
- routing convergence is not accurate
Craig Labovitz, Leiden 2000
5Interior vs. Exterior Routing Protocols
Interior Gateway Protocols (IGP) inside
autonomous systems
Exterior Gateway Protocols (EGP) between
autonomous systems
AS 701
UUNet
OSPF, IS-IS, RIP, EIGRP, ...
BGP
Metric Based
Policy Based
ATT WorldNet
Bell Labs
AS 144
AS 7018
Tim Griffin, Leiden 2000
6AS graphs obscure topology!
The AS graph may look like this.
Tim Griffin, Leiden 2000
7What to do?
black box
glass box
transparent and complete simulation model of
BGP routing on a global scale
multi-router monitoring of BGP routing tables and
route updates
These approaches are complementary
8Pros and Cons
- We cant
- expect to model real-world routers perfectly with
every detail - We can
- capture the most important characteristics
- change and tweak the protocol
- explore consequences of fundamental design of BGP
- explore proposed and novel protocol extensions
- evaluate and analyze collective behavior on a
large-scale
9SSF, Raceway and SSFNet
- SSF
- Modern software for modeling and simulation of
very large networks - Raceway
- A fast Java implementation of SSF
- SSFNet
- A collection of packages for building IP network
models - Hosts, routers, networks, major Internet
protocols - Compositional approach to large network design
with CIDR-compliant automatic IP address
allocation - Includes our BGP-4 implementation
10SSF.OS.BGP4
- 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)
11SSF.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
12Package SSF.OS.BGP4 Organization
BGPSession
PeerEntry
PeerEntry
RIBIn
LocRIB
RIBOut
RIBOut
RIBIn
Policy Rule (inbound)
Timers ConnRetry KeepAlive Hold MinAdver
Policy Rule (outbound)
13Validation 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
14(No Transcript)
15(No Transcript)
16(No Transcript)
17Interesting Possibilities
- Sender-side loop detection Labovitz 1999
- Better value for MinAdver timer?
- Improved route flap dampening?
- Policy studies
- How do various configurations affect convergence?
- Test effects of policy changes before deployment
- EGP-IGP interaction studies
- Are there instability side-effects?
- Is it safe to convert between different cost
metrics?
18CDF of BGP Routing Table Convergence Times
Craig Labovitz, Leiden 2000
New Route Long-gtShort Fail-over
Short-gtLong Fail-Over
Failure
- Less than half of Tdown events converge within
two minutes - Tup/Tshort and Tdown/Tlong form equivalence
classes - Long tailed distribution (up to 15 minutes)
19End-to-End Impact of Failover
Craig Labovitz, Leiden 2000
- ICMP loss to 100 randomly chosen web sites with
VIF source address of our probe - Tlong/Tshort exhibit similar relationship as
before
20An Experiment with SSF.OS.BGP4
- The Model
- Topology full mesh of N ASes, each with just 1
router - No route filtering
- Shortest path is best
- Advertise, Withdraw, Wait and Watch
- Wait for system to reach stable state, then
- AS 1 advertises a bogus destination to everyone
else - Wait for system to reach a stable state again,
then - AS 1 tells everyone that the bogus route is not
reachable through it any more - Wait for system to reach a stable state again
214
5
1
bogus
3
2
N 10 20 30 40 50
longest path 9 20 28 40 46
convergence time after withdrawal (sec) 150
480 720 1080 1260
avg updates due to withdrawal (range) 59.50
(35-84) 269.55 (58-397) 539.10 (118-892)
945.20 (160-1647) 1423.66 (196-2377)
22. . . 1610.040778415 bgp_at_381 snd update to
bgp_at_21 wdsbogus 1610.040778415 bgp_at_381 snd
update to bgp_at_201 wdsbogus 1610.040778415
bgp_at_381 snd update to bgp_at_321
wdsbogus 1610.040778415 bgp_at_381 snd update
to bgp_at_441 wdsbogus 1610.040890567 bgp_at_321
snd update to bgp_at_381 nlribogus,asp32 44 34 38
4 22 2 20 48 10 26 12 6 16 36 8 14 24 28 41 18 51
21 33 45 43 35 3 5 47 23 31 37 49 25 46 39 7 27
13 9 29 11 15 17 50 19 42 40 30 1 1610.040890567
bgp_at_321 snd update to bgp_at_441
wdsbogus 1610.040907352 bgp_at_441 snd update
to bgp_at_381 wdsbogus 1610.040907352 bgp_at_441
snd update to bgp_at_341 nlribogus,asp44 38 34 32
4 22 2 20 48 10 26 12 6 16 36 8 14 24 28 41 18 51
21 33 45 43 35 3 5 47 23 31 37 49 25 46 39 7 27
13 9 29 11 15 17 50 19 42 40 30 1 1610.050930294
bgp_at_441 snd update to bgp_at_321 wdsbogus . . .
23Future Work
- Add features
- Route flap dampening
- Communities
- Etc.
- Do experiments
- Look for better timer values
- How policy affects convergence
- Improve route flap dampening
- Test extensions and other proposed modifications
- Much much more
24Information
- SSF/Raceway and SSFNet
- http//www.ssfnet.org/
- SSF.OS.BGP4
- http//www.cs.dartmouth.edu/beej/research/bgp/jav
a/ - (or follow link from ssfnet.org)
25SSF.OS.BGP4 Primary Classes
- BGP session
- An instance of BGP on a router (BGP speaker)
- Primary BGP engine configuration, FSM, timing,
decision process, updates - Contains peer entries, RIB (In, Out, Local), Min
AS Origination Timer - PeerEntry
- Represents a peer ( associated peering session)
- Contains filters (incoming and outgoing) and
timers (ConnRetry, KeepAlive, Hold, MinAdver) - AdjRIBIn, LocRIB, AdjRIBOut
- MinAdverTimer, EventTimer
- Policy.Rule
26Coming Soon
- Aggregation
- Route flap dampening
- Several extensions
- Communities
- Confederations
- Etc.
27This sample DML code configures an AS with a
single router running BGP. It performs explicit
configuration of all BGP attributes. It is taken
from the goodgadget validation test.
(continued next page)
Net id 1 AS_status boundary
router id 1 graph
ProtocolSession name bgp use
SSF.OS.BGP4.BGPSession autoconfig
false connretry_time 120
min_as_orig_time 15 reflector false
neighbor as 0 address 1(1)
use_return_address 1(1) hold_time 90
keep_alive_time 30 min_adver_time 30
infilter give low priority to routes learned
from 0 clause
precedence 1 predicate
action primary
permit atom attribute
local_pref type set value 80
outfilter _extends .filters.permit_all
28 neighbor as 2 address
1(2) use_return_address 1(2)
hold_time 90 keep_alive_time 30 min_adver_time
30 infilter give high priority to
routes learned from 2 clause
precedence 1 predicate
action
primary permit atom
attribute local_pref type set value 100
outfilter _extends .filters.permit_all
neighbor as
3 address 1(2) use_return_address 1(3)
hold_time 90 keep_alive_time 30
min_adver_time 30 infilter deny
all routes learned from 3 clause
precedence 1 predicate action primary deny
outfilter
_extends .filters.permit_all
ProtocolSession name socket use
SSF.OS.Socket.socketMaster
ProtocolSession name tcp use
SSF.OS.TCP.tcpSessionMaster
ProtocolSession name ip use SSF.OS.IP
interface idrange from 0 to 3
host id 101 _extends .basic_host
link attach 1(0) attach 101(0) delay 0.001