Implementing new Topology Mapping Primitives Guillermo Baltra - - PowerPoint PPT Presentation

implementing new topology mapping primitives
SMART_READER_LITE
LIVE PREVIEW

Implementing new Topology Mapping Primitives Guillermo Baltra - - PowerPoint PPT Presentation

Implementing new Topology Mapping Primitives Guillermo Baltra Prior Work Primitives for Active Internet Topology Mapping: Toward High-Frequency Characterization, Beverly, R., Berger, A., Xie, G., IMC 2010. Demonstrated the ability of


slide-1
SLIDE 1

Implementing new Topology Mapping Primitives

Guillermo Baltra

slide-2
SLIDE 2

Prior Work

“Primitives for Active Internet Topology Mapping: Toward High-Frequency Characterization”, Beverly, R., Berger, A., Xie, G., IMC 2010.

  • Demonstrated the ability of each primitive to generate

significant probing savings. Fewer probes implies potential to:

– Improve quality of topologies as currently inferred – Additional results with same probing bugdet, e.g. alias resolution . – Perform more complete/detailed probing – Increase feasible frequency (i.e. speed) of full-topology inferences

slide-3
SLIDE 3

Subnet Centric Probing (SCP)

  • Adapt the number of probes to the degree of

subnetting to avoid wasted probing.

  • Discover internal structure of networks.
  • Leverage BGP as coarse structure.
slide-4
SLIDE 4
  • Ref. [1]
slide-5
SLIDE 5
  • Ref. [1]
slide-6
SLIDE 6

Subnet Centric Probing (SCP)

  • 3 separable problems via a unified

methodology:

  • 1. Select destinations.
  • 2. Select sources.
  • 3. Stopping criterion.
slide-7
SLIDE 7

Least Common Prefix (LCP)

  • Iteratively pick destinations within prefix that

are maximally distant (in subnetting sense)

  • 2 numerically consecutive IP addresses more

likely to share paths.

  • But address “distance” can be misleading: e.g.

18.255.255.100 vs 19.0.0.4 vs. 18.0.0.5

slide-8
SLIDE 8

Least Common Prefix (LCP)

  • Use knowledge of how networks are provisioned and

subnetted. Easier to believe A and B in different subnets Than A’ and B’ in different subnets. A’ B’ A B

18.0.0.0/8 18.0.0.0/8

slide-9
SLIDE 9

Least Common Prefix (LCP)

16.255.255.255 16.0.0.0

/8

slide-10
SLIDE 10

Least Common Prefix (LCP)

16.255.255.255 16.0.0.0 16.128.0.0

16.128.0.0/9 16.0.0.0/9 /9 /9

slide-11
SLIDE 11

Least Common Prefix (LCP)

16.255.255.255 16.0.0.0 16.128.0.0

/9 /9

slide-12
SLIDE 12

LCP and Target Determination

16.255.255.255 16.0.0.0 16.128.0.0

/9 /9

16.191.255.254 16.63.255.254

Center IP address in address range is selected as target for each smaller network

slide-13
SLIDE 13

LCP and Target Determination

16.192.0.0/10 /10 /10

/9

16.191.255.254 16.63.255.254 16.223.255.254 16.159.255.254 16.128.0.0/10 16.255.255.255 16.0.0.0

slide-14
SLIDE 14

Edit Distance Metric

  • Pairwise probing from same source.
  • Compares full traces.
  • Load-balancing artificially distorts ED for some paths.
  • Doesn’t take benefit from previous traces to the same

prefix.

  • In practice: recurse all the way down to /32s.
  • Note: this occurs even when using Paris-style
  • traceroute. Paris ensures determinism over per-flow

load balanced path to a given destination. SCP uses different destinations as part of its exploration algorithm.

slide-15
SLIDE 15

#

Monitor Hop Destination Legend:

/8

Load-balancer

5 6 4 3 1 2

16.0.0.0 16.255.255.255

Threshold = 2

Trace Nr. 1 Trace Nr. 2 Pairwise probing:

slide-16
SLIDE 16

#

Monitor Hop Destination Legend:

/8

Load-balancer

5 6 4 3 1 2

16.0.0.0 16.255.255.255

Threshold = 2

Trace Nr. 1 Trace Nr. 2 Pairwise probing:

slide-17
SLIDE 17

#

Monitor Hop Destination Legend:

/8

Load-balancer

5 6 4 3 1 2

16.0.0.0 16.255.255.255

Threshold = 2 Edit Distance = 4

Trace Nr. 1 Trace Nr. 2 Pairwise probing:

slide-18
SLIDE 18

/9 #

Monitor Hop Destination Legend:

/9

Load-balancer

1 2

16.0.0.0 16.255.255.255

Threshold = 2

3 4 5 6

Trace Nr. 1 Trace Nr. 2 Pairwise probing:

slide-19
SLIDE 19

/9 #

Monitor Hop Destination Legend:

/9

Load-balancer

1 2

16.0.0.0 16.255.255.255

Threshold = 2

3 4 5 6

Trace Nr. 1 Trace Nr. 2 Pairwise probing:

slide-20
SLIDE 20

/9 #

Monitor Hop Destination Legend:

/9

Load-balancer

1 2

16.0.0.0 16.255.255.255

Threshold = 2 Edit Distance = 3

3 4 5 6

Trace Nr. 1 Trace Nr. 2 Pairwise probing:

slide-21
SLIDE 21

/10 #

Monitor Hop Destination Legend:

/9

Load-balancer

1 2

16.0.0.0 16.255.255.255

Threshold = 2

3 4 5 6 /10

Trace Nr. 1 Trace Nr. 2 Pairwise probing:

slide-22
SLIDE 22

/10 #

Monitor Hop Destination Legend:

/9

Load-balancer

1 2

16.0.0.0 16.255.255.255

Threshold = 2

3 4 5 6 /10

Trace Nr. 1 Trace Nr. 2 Pairwise probing:

slide-23
SLIDE 23

/10 #

Monitor Hop Destination Legend:

/9

Load-balancer

1 2

16.0.0.0 16.255.255.255

Threshold = 2 Edit Distance = 3

3 4 5 6 /10

Trace Nr. 1 Trace Nr. 2 Pairwise probing:

slide-24
SLIDE 24

/10 #

Monitor Hop Destination Legend:

/10

Load-balancer

1 2

16.0.0.0 16.255.255.255

Threshold = 2

3 4 5 6 /10 /10

Trace Nr. 1 Trace Nr. 2 Pairwise probing:

and so on…

slide-25
SLIDE 25

New Interface Discovery (NID)

  • Focus on destination AS:

– SCP’s objective is to discover structure within the destination

  • AS. SCP should base its operation on new structure (edges,

vertices) discovered in target AS.

  • Hops inside destination AS are added into a set to which

future traces will be compared.

  • Number of new hops discovered inside prefix is compared

to a threshold.

  • Traces sent to original prefix get all their hops inside the

prefix counted as newly discovered.

  • Not affected by load balancing as a stopping criterion.
  • Benefits from load balancing in terms of vertices and edges

learning.

slide-26
SLIDE 26

New Interface Discovery (NID)

  • Source Distribution:

– By focusing on target AS, we can distribute the source of each probe, as opposed to pairwise probing. Using multiple vantage points as part of SCP naturally helps discover AS ingress points.

  • Number of traces per prefix:

– For a pairwise probing, 2 traces need to be sent per prefix. This new method allows to sent as many probes as needed.

  • Maintain State:

– SCP’s recursive stopping criterion should consider all traces to a destination prefix, rather than just being pair-wise.

  • Future Improvements:

– Consider number of new edges.

slide-27
SLIDE 27

/16

VPs

Threshold = 1

3 inputs:

  • 1. Threshold
  • 2. Set of VPs
  • 3. Prefixes

A B C D

Output: Every trace is stored for later analysis.

slide-28
SLIDE 28

/16

VPs

Threshold = 1

Discovered Prefix-Vertices List: Monitors/Destinations Pairs Queue:

B C D A

slide-29
SLIDE 29

VPs

Threshold = 1

/17 /17

Discovered Prefix-Vertices List: Monitors/Destinations Pairs Queue:

B C D A

slide-30
SLIDE 30

VPs

Threshold = 1

/17

2 1

/17

Discovered Prefix-Vertices List: Monitors/Destinations Pairs Queue:

B C D A

B-1 | D-2

slide-31
SLIDE 31

VPs

Threshold = 1

/17

2 3 1 5 4

/17

Parent trace Discovered Prefix-Vertices List: Monitors/Destinations Pairs Queue:

B C D A

1 – 3 – 4 – 5 D-2

slide-32
SLIDE 32

VPs

Threshold = 1

/17

2

/17 /18

3 5

/18

4 1

Parent trace Discovered Prefix-Vertices List: Monitors/Destinations Pairs Queue:

B C D A

D-2 1 – 3 – 4 – 5

slide-33
SLIDE 33

VPs

Threshold = 1

2

/17

6

/18

3 5

/18

4 1 7

Parent trace Discovered Prefix-Vertices List: Monitors/Destinations Pairs Queue:

B C D A

D-2 | A-6 | C-7 1 – 3 – 4 – 5

slide-34
SLIDE 34

VPs

Threshold = 1

/17 /18 /17 /18

1 7 3 5

Parent trace

2

Parent trace

6 4

Discovered Prefix-Vertices List: Monitors/Destinations Pairs Queue:

A-6 | C-7 1 – 3 – 4 – 5

B C D A

slide-35
SLIDE 35

VPs

Threshold = 1

/17 /18 /17 /18

1 7 3 5

Parent trace

6 4

/18 /18

2

Parent trace Discovered Prefix-Vertices List: Monitors/Destinations Pairs Queue:

A-6 | C-7 1 – 3 – 4 – 5

B C D A

slide-36
SLIDE 36

VPs

Threshold = 1

/17 /18 /17 /18

1 7 3 5

Parent trace

6 4

/18 /18

2

Parent trace Discovered Prefix-Vertices List: Monitors/Destinations Pairs Queue:

A-6 | C-7 | etc… 1 – 3 – 4 – 5

B C D A

slide-37
SLIDE 37

VPs

Threshold = 1

/17

8 9 6

/18 /17

3 1 5 4 7 /18

Parent trace

/18 /18

Parent trace

2

Discovered Prefix-Vertices List: Monitors/Destinations Pairs Queue:

C-7 | etc… 1 – 3 – 4 – 5 – 6 – 8 – 9

B C D A

slide-38
SLIDE 38

VPs

Threshold = 1

/19 /17

3 1 5 4 7 /18

Parent trace

/18 /18

Parent trace

2

/19

8 9 6 B C D A

Discovered Prefix-Vertices List: Monitors/Destinations Pairs Queue:

C-7 | etc… 1 – 3 – 4 – 5 – 6 – 8 – 9

slide-39
SLIDE 39

VPs

Threshold = 1

/19 /17

3 1 5 4 7 /18

Parent trace

/18 /18

Parent trace

2

/19

8 9 6 B C D A

Discovered Prefix-Vertices List: Monitors/Destinations Pairs Queue:

C-7 | etc… 1 – 3 – 4 – 5 – 6 – 8 – 9

slide-40
SLIDE 40

VPs

Threshold = 1

/17 /18

1 7 3 4 5

Parent trace

/18 /18

Parent trace

2

/19 /19

8 9 6 B C D A

Discovered Prefix-Vertices List: Monitors/Destinations Pairs Queue:

etc… 1 – 3 – 4 – 5 – 6 – 8 – 9

slide-41
SLIDE 41

VPs

Threshold = 1

/17 /18

1 7 3 4 5

Parent trace

/18 /18

Parent trace

2

/19 /19

8 9 6 B C D A

Discovered Prefix-Vertices List: Monitors/Destinations Pairs Queue:

etc… 1 – 3 – 4 – 5 – 6 – 8 – 9

slide-42
SLIDE 42

NID Pseudo Code

  • Input:

– p/m: Destination prefix / mask – M: Set of monitors – τ: Threshold of new interfaces

  • Output:

– T: Set of path traces; initially empty

Algorithm 1: NID(p/m, M, τ)

1: I = empty set // global variable 2: T = empty set // global variable 3: SCP(p/m, M, τ)

slide-43
SLIDE 43

Algorithm 2: SCP(p/m, M, τ) 1: A = ASN(p/m) 2: (d1 , d2) = determine_targets(p/m) // LCP algorithm 3: (m1 , m2) = assign_monitors(M, p/m) // Random, VPS, IPS, Max. 4: t1 = trace(m1 , d1) 5: t2 = trace(m2 , d2) 6: T = T ∪ (t1 ∪ t2) 7: 𝑢1

′ = {interface i in t1|ASN(i) = A}

8: 𝑢2

′ = {interface i in t2|ASN(i) = A}

9: for j = 1 to 2 do 10: if 𝑢𝑘

′ is parent_trace then

11: if length(𝑢𝑘

′) > 0 then

12: 𝐽 = 𝐽 ∪ 𝑢𝑘

13: SCP(p/(m + 1), M, τ) 14: else: 15: if 𝑢𝑘

′ − 𝐽 ≥ 𝜐 then

16: 𝐽 = 𝐽 ∪ 𝑢𝑘

17: SCP(p/(m + 1), M, τ)

slide-44
SLIDE 44

Random Monitor Assignment

  • Each destinations gets a monitor assigned

randomly.

  • Uniform Distribution.
  • Random assignment of destinations to vantage

points is wasteful.

– E.g. empirically, the 16 /24’s in a /20 prefix are hit on average by 12 unique VPs. – 2 paths from 2 different monitors towards the same prefix might be too similar, and therefore it is inconvenient to assign the monitors consecutively.

slide-45
SLIDE 45

Vantage Point Spreading

  • New destinations are assigned to VPs not yet

used for probing the original BGP prefix

  • Uniform distribution of VPs when more

destinations than VPs.

  • Implementation: build list of all monitors in

random order for each prefix. Round robin for assignment.

Mon 1 Mon 2 Mon 3 … Mon N e.g. Some /16 prefix:

slide-46
SLIDE 46

Vantage Point Spreading

  • Issues:

– Early termination. – Doesn’t maximize the benefit of each probe in terms of new vertices learnt. – 90% of prefixes send less probes than the number

  • f available monitors.
slide-47
SLIDE 47

Prefixes: 1500 Monitors: 60 Method: Random

Number of Monitors used per Prefix

slide-48
SLIDE 48

Prefixes: 1500 Monitors: 60 Method: Random Zooming in ….

slide-49
SLIDE 49
  • Proposed Solution: Rank Ordering Methods

– Maximum Coverage and Ingress Point Spreading. – By carefully deciding the order in which monitors are assigned, the amount of new information learnt can be enhanced. – Pre-probing or previous data required as bootstrap.

Vantage Point Spreading

slide-50
SLIDE 50

Max Coverage: Intuition

Dst. Prefix /8 Dst. Prefix /8

  • 2 consecutive traces might share many hops,
  • thus forcing stop criterion too early.
  • The path might be too short and therefore

not maximizing the benefit of that particular probe.

  • Long path maximizes the number of

vertices learnt.

  • Greater chances of finding different

ingress routers. Monitor 1 Monitor 2 Monitor 1 Monitor 2 hops hops

slide-51
SLIDE 51

Max Coverage

  • IANA: /8 allocations by region.
  • Focuses in maximizing vertices outside

destination-AS.

  • Max hop count first vs. Min hop count first.
  • Abstract example:

– One IP address per each /8 prefix randomly selected. – Every monitor probes every destination address. – Traces are connected with each other forming the following network…

slide-52
SLIDE 52

1 2 3 4 5 6 RANK ORDER: 0 /8 1 /8 2 /8 3 /8 4 /8 VPs Destinations 254/8 255 /8

slide-53
SLIDE 53

1 /8 2 /8 3 /8 5 /8 254/8 255 /8 4 /8 RANK ORDER: Destinations 1 2 3 4 5 6 VPs

Each address of each /8 is selected and worked through the process ones, as this examples does for 4 /8.

slide-54
SLIDE 54

254/8 255 /8 1 /8 2 /8 3 /8 5 /8 1 2 3 4 5 6 VPs 4 /8

  • 1. Find the shortest path from

source to destination for all VPs.

  • 2. Find the longest path from all

the shortest paths.

RANK ORDER: 1 Destinations

slide-55
SLIDE 55

1 /8 2 /8 3 /8 5 /8 254/8 255 /8 254/8 255 /8 Destinations 1 2 3 4 5 6 VPs RANK ORDER: 1 6 4 /8

slide-56
SLIDE 56

254/8 255 /8 1 /8 2 /8 3 /8 5 /8 4 /8 RANK ORDER: Destinations 1 2 3 4 5 6 VPs 1 6 3

slide-57
SLIDE 57

254/8 255 /8 1 /8 2 /8 3 /8 5 /8 4 /8 RANK ORDER: Destinations 1 2 3 4 5 6 VPs 1 6 3 5

slide-58
SLIDE 58

254/8 255 /8 1 /8 2 /8 3 /8 5 /8 4 /8 RANK ORDER: Destinations 1 2 3 4 5 6 VPs 1 6 3 5 2

slide-59
SLIDE 59

254/8 255 /8 1 /8 2 /8 3 /8 5 /8 4 /8 RANK ORDER: Destinations 1 2 3 4 5 6 VPs 1 6 3 5 2 4

slide-60
SLIDE 60

MAX

  • Input:

– G: Graph built by pre-probed traces – M: Set of monitors – P: Set of each /8 prefix

  • Output:

– R: Set of ranked monitor lists per /8 prefix

slide-61
SLIDE 61

Algorithm 2: MAX(G, M, P) 1: for each prefix in P do 2: Y = ∅ (Set of shortest paths from monitors to selected destination) 3: destprefix = select one destination in P from G. 4: for each monitor in M do 5: t = shortest_path(monitor, destprefix, G) 6: Y = Y ∪ t 7: for each monitor in M do 8: m = max(Y) 9: append(m) to rprefix 10: delete all hops in m from all traces in Y 11: R = R ∪ rprefix

slide-62
SLIDE 62

Ingress Point Spreading (IPS)

  • Focuses in finding destination prefix ingress routers.
  • Builds a list of ranked monitors for each prefix from data

gathered by pre-probing.

  • Relates ‘monitor – first hop inside /8 prefix – destination’

for all traces in database.

  • First monitors in list are chosen from those that have a

unique first hop inside /8 prefix towards destination prefix.

  • Rest of list is filled with monitors that have a trace towards

the expansion of the original prefix, e.g. if the original prefix is /16, the expansion would be /15, /14,…, /8.

  • Needs more data than the Max Coverage method.
slide-63
SLIDE 63

IPS: Intuition

Dst. Prefix /16

/8

First hop inside /8 prefix Ingress router to destination prefix trace monitor By starting to probe with those monitors that have followed different paths into the destination prefix during pre-probing, increases the chances of finding destination prefix ingress router and thus delaying meeting stop criterion.

slide-64
SLIDE 64

1 2 3 4 5 6 RANK ORDER: Destinations VPs

slide-65
SLIDE 65

1 2 3 4 5 6 RANK ORDER: Destinations VPs

/16

Target prefix

slide-66
SLIDE 66

1 2 3 4 5 6 RANK ORDER: Destinations VPs

/8 /16 /8

slide-67
SLIDE 67

1 2 3 4 5 6 RANK ORDER: Destinations VPs

/8 /16 /8

1 2 3

slide-68
SLIDE 68

1 2 3 4 5 6 RANK ORDER: Destinations VPs

/8 /8 /15

1 2 4 3 5

slide-69
SLIDE 69

1 2 3 4 5 6 RANK ORDER: Destinations VPs

/8 /8 /14

1 2 4 6 3 5

slide-70
SLIDE 70
  • Avoid IPS early termination.
  • Ensure use of all ingress routers, and thus

possible paths.

  • Number of ingress routers approximated to

the closest power of 2.

IPS++

slide-71
SLIDE 71

IPS++

16.255.255.255 16.0.0.0

/8 Suppose current prefix has 3 ingress routers, then the closest power 2 is 4.

slide-72
SLIDE 72

IPS++

/10 /10 16.223.255.254 16.159.255.254 16.255.255.255 16.0.0.0 /10 /10 16.95.255.254 16.31.255.254

slide-73
SLIDE 73
  • utside /8 prefix
slide-74
SLIDE 74

Inside /8 prefix

slide-75
SLIDE 75

Ingress Point Spreading (IPS)

  • Input:

– T: Set of pre-probed traces – M: Set of monitors – p/m: Set of prefixes / masks

  • Output:

– R: Set of ranked monitor lists per prefix / mask

slide-76
SLIDE 76

Algorithm 3: IPS(T, M, p/m ) 1: {I} =⊥ (set of tuples formed by (monitor, first hop in destinations /8 prefix and destination) from each trace) 2: {J} = ⊥ (set of tuples formed by monitor, first hop in /8 prefix from traces with destination inside p/m and mask) 3: for each trace in T do 4: (src, dst) = source and destination of trace 5: D = /8 prefix of dst 6: hop = find first hop in trace inside D 7: I = I ∪ (src, hop, dst) 8: end for 9: for each prefix in p/m do 10: rprefix = ⊥ (array of tuples containing monitor and first hop) 11: for each monitor in M do 12: flag = False 13: for mask = m to 8 in steps = -1 do 14: if flag then 15: break // continue with next monitor

slide-77
SLIDE 77

16: for each tuple in I that contains monitor do 17: D = /mask prefix of dst in tuple 18: P = /mask prefix of p 19: if D == P then 20: append (src, hop, mask) to rprefix 21: flag = True 22: end for 23: end for 24: end for 25: delete tuples from rprefix with repeated monitors and first hops 26: sort(rprefix) // by mask from higher to lower 27: J = J ∪ rprefix 28: end for

slide-78
SLIDE 78

Results

0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

probes vertices edges fraction of naive /24 rand vps max ips ips++

slide-79
SLIDE 79

Results

5000 10000 15000 20000 25000 30000 35000 40000 ingress inside AS rand vps max ips ips++

slide-80
SLIDE 80

References:

  • 1. Beverly, R., Berger, A., Xie, G.: Primitives for

Active Internet Topology Mapping: Toward High-Frequency Characterization. In: Proc. IMC (2010).