Top Banner
Traffic Steering using RUM DNS Abhijeet Rastogi Senior SRE @ Linkedin (Edge Performance & Traffic)
118

Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

Sep 08, 2018

Download

Documents

HoàngNhi
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

Traffic Steering using RUM DNS

To change the background image…

• Select the desired background from the “layout” drop-down menu located under the “home” toolbar

To change the speaker picture, right-click on the photo and select ”change picture…”...

• Go back to Picture Format tab in the top navigation

• Select Crop Tool, go to the drop down menu and select Mask to Shape or Crop to Shape (Depending on what version PowerPoint you have)

• Next, select circle shape under Basic Shapes

• If your circle shape does not look proportionate, go to Aspect Ratio under the Crop menu. Please select 1:1

Abhijeet RastogiSenior SRE @ Linkedin

(Edge Performance & Traffic)

Page 2: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

My Team

• Public DNS

• CDN Operations

• Load balancer & reverse proxy at PoPs and DCs

Page 3: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

Largest Professional Network

2

signups/second

500M+

Members

200+

Countries

Page 4: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

Problem Statement

SiteSpeed

Page 5: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

Problem Statement

SiteSpeed

• User Engagement

Page 6: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

Problem Statement

SiteSpeed

Page 7: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

Problem Statement

• Revenue

SiteSpeed

• User Engagement

Page 8: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

Agenda

CDN strategy POP Strategy RUM Steering Tooling

Page 9: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

Agenda

CDN strategy POP Strategy RUM Steering Tooling

Page 10: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

LinkedIn CDN Stats

>80%

Cache Hit Rate

>85%Origin bandwidth

offloaded

Page 11: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

LinkedIn CDN partners

Global China

Page 12: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

Multi CDN Strategy

• Redundancy: CDNs can be pulled out of rotation for planned & unplanned events

Benefits

• Performance: Having multiple options allows comparing and selecting the best CDN to each network in each geography in real time

• Capacity: Traffic spikes of all shapes and sizes can be handled

Page 13: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

Multi CDN Strategy(India CDN Performance)

Page 14: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

Multi CDN Strategy(US CDN Performance)

Page 15: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

Agenda

CDN strategy POP Strategy RUM Steering Tooling

Page 16: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

Point of Presence (POP)

Page 17: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

POP (Point of Presence)Typical DataCenter

LB/RP: TCP+SSL termination Application servers

Internet

Users

Page 18: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

POP (Point of Presence)Typical DataCenter

LB/RP: TCP+SSL termination Application serversUsers

Page 19: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

POP (Point of Presence)Typical DataCenter

LB/RP: TCP+SSL termination Application serversUsers

Page 20: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

POP (Point of Presence)Typical DataCenter

LB/RP: TCP+SSL termination Application serversUsers

Total: 2000ms

Page 21: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

TCP Window size, HTTP keepalive

POP (Point of Presence)Decouple LBs

LB/RP: TCP+SSL termination Application servers

Internet

Users

Internet

Page 22: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

POP (Point of Presence)Establish Backbone

LB/RP: TCP+SSL termination Application servers

Internet

Users

Backbone

TCP Window size, HTTP keepalive

Page 23: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

POP (Point of Presence)LBs become POP

POP Application servers

Internet

Users

Backbone

TCP Window size, HTTP keepalive

Page 24: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

POP (Point of Presence)LBs become POP

POPApplication serversUsers

Page 25: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

POP (Point of Presence)LBs become POP

POPApplication serversUsers

Page 26: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

POP (Point of Presence)LBs become POP

POPApplication serversUsers

Page 27: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

POP (Point of Presence)LBs become POP

POPApplication serversUsers

Total: 1100ms

Page 28: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

POP (Point of Presence)LBs become POP

POPApplication serversUsers

900ms gain!

Page 29: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

POP (Point of Presence)Cost effective

$$

$ $

Page 30: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

LinkedIn POP Footprint

San Jose

Los Angeles

Dallas

Miami

Ashburn

Dublin

London

Sao Paulo

Chicago

Hong Kong

15Singapore Sydney

Mumbai

Frankfurt

Seattle

POP Locations

Page 31: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

LinkedIn DataCenter Footprint

Texas

Virginia

Oregon

Singapore

Page 32: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

POP Benefit

Mumbai PoP

Sau Paulo PoP

Singapore PoP

Mumbai & Dublin PoP

Singapore & London

PoP

Page 33: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

Agenda

CDN strategy POP Strategy RUM Steering Tooling

Page 34: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

Multi DNSRoot Servers

$ dig +short +noshort NS linkedin.com | sort

linkedin.com. 58808 IN NS dns1.p09.nsone.net.

linkedin.com. 58808 IN NS dns2.p09.nsone.net.

linkedin.com. 58808 IN NS dns3.p09.nsone.net.

linkedin.com. 58808 IN NS dns4.p09.nsone.net.

linkedin.com. 58808 IN NS ns1.p43.dynect.net.

linkedin.com. 58808 IN NS ns2.p43.dynect.net.

linkedin.com. 58808 IN NS ns3.p43.dynect.net.

linkedin.com. 58808 IN NS ns4.p43.dynect.net.

$

NSOne

DynDNS

Page 35: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

● Performance

● Availability

Multi DNSBenefits

Page 36: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

Multi DNSDyn DDOS

Page 37: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

Multi DNSDyn DDOS

Page 38: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

Traffic Steering

How to select the best POP and CDN ?

Page 39: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

Traffic SteeringGeoDNS

Page 40: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

Traffic SteeringGeoDNS

Page 41: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

Traffic SteeringGeoDNS

Authoritative Nameserver

Local ResolverClient

Only knows resolver IP

Page 42: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

Traffic SteeringGeoDNS

EDNS Client Subnet (rfc7871)

# Ireland IP subnet➤ dig +short +noshort @dns1.p09.nsone.net. +client=50.7.155.0/24 media-lcdn.licdn.commedia-lcdn.licdn.com. 300 IN CNAME pop-tln1.media-src.linkedin.com.

# India IP Subnet➤ dig +short +noshort @dns1.p09.nsone.net. +client=183.82.18.0/24 media-lcdn.licdn.commedia-lcdn.licdn.com. 300 IN CNAME pop-tmu1.media-src.linkedin.com.

Page 43: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

Traffic SteeringGeoDNS

EDNS Client Subnet (rfc7871)

# Ireland IP subnet➤ dig +short +noshort @dns1.p09.nsone.net. +client=50.7.155.0/24 media-lcdn.licdn.commedia-lcdn.licdn.com. 300 IN CNAME pop-tln1.media-src.linkedin.com.

# India IP Subnet➤ dig +short +noshort @dns1.p09.nsone.net. +client=183.82.18.0/24 media-lcdn.licdn.commedia-lcdn.licdn.com. 300 IN CNAME pop-tmu1.media-src.linkedin.com.

Page 44: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

Traffic SteeringAnycast

Page 45: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

Traffic SteeringAnycast

Region/Country Performance

Illinois +20%

Florida +22%

Georgia +18%

Pennsylvania +10%

Page 46: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

Traffic SteeringAnycast

Region/Country Performance

Illinois +20%

Florida +22%

Georgia +18%

Pennsylvania +10%

Arizona -21%

Brazil -55%

New York -3%

Page 47: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

Traffic SteeringAnycast

Region/Country Performance

Illinois +20%

Florida +22%

Georgia +18%

Pennsylvania +10%

Arizona -21%

Brazil -55%

New York -3%Least # of hops != Least latency

Page 48: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

Traffic SteeringRUM (Real User Measurements) DNS

Page 49: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

Public DNS with RUM

Page 50: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

Traffic SteeringRUM DNS

Page 51: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

RUM Steering2 Phases

Measure Steer

Page 52: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

RUM SteeringMeasurement Phase

0. Visitor http://linkedin.com

Page 53: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

RUM SteeringMeasurement Phase

0. VisitorSite HTML: xx.css + yy.js + rum.js

http://linkedin.com

Page 54: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

RUM SteeringMeasurement Phase

0. VisitorSite HTML: xx.css + yy.js + rum.js

One time key:i2-nqoqjnfrqy.init.cedexis-radar.net

http://linkedin.com

1. Identify

Page 55: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

RUM SteeringMeasurement Phase

0. VisitorSite HTML: xx.css + yy.js + rum.js

One time key:i2-nqoqjnfrqy.init.cedexis-radar.net

1. Identify

http://linkedin.com

http:// /providers.json

Page 56: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

RUM SteeringMeasurement Phase

0. VisitorSite HTML: xx.css + yy.js + rum.js

RUM DNS Service

One time key:i2-nqoqjnfrqy.init.cedexis-radar.net

1. Identify

Key uniquely identifies this resolver

http://linkedin.com

http:// /providers.json

Page 57: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

RUM SteeringMeasurement Phase

0. VisitorSite HTML: xx.css + yy.js + rum.js

RUM DNS Service

One time key:i2-nqoqjnfrqy.init.cedexis-radar.net

1. Identify

Key uniquely identifies this resolver

CDN1

POP-X

CDN2

http://linkedin.com

http:// /providers.json

Page 58: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

RUM SteeringMeasurement Phase

0. VisitorSite HTML: xx.css + yy.js + rum.js

RUM DNS Service

One time key:i2-nqoqjnfrqy.init.cedexis-radar.net

1. Identify

2. Measure

Key uniquely identifies this resolver

CDN1

POP-X

CDN2

http://linkedin.com

https://<endpoint>/cdo/pass/r20.gif

http:// /providers.json

Page 59: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

http:// /providers.json

https://<endpoint>/cdo/pass/r20.gif

http://linkedin.com

RUM SteeringMeasurement Phase

0. VisitorSite HTML: xx.css + yy.js + rum.js

RUM DNS Service

One time key:i2-nqoqjnfrqy.init.cedexis-radar.net

1. Identify

2. Measure

Key is geo-located!CDN1

POP-X

CDN2

Page 60: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

RUM SteeringMeasurement Phase

0. VisitorSite HTML: xx.css + yy.js + rum.js

RUM DNS Service

One time key:i2-nqoqjnfrqy.init.cedexis-radar.net

1. Identify

2. Measure

Key uniquely identifies this resolver

CDN1

POP-X

CDN2

http://linkedin.com

https://<endpoint>/cdo/pass/r20.gif

http:// /providers.json

Page 61: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

RUM SteeringMeasurement Phase

0. VisitorSite HTML: xx.css + yy.js + rum.js

RUM DNS Service

One time key:i2-nqoqjnfrqy.init.cedexis-radar.net

1. Identify

2. Measure

3. Report

Key uniquely identifies this resolver

CDN1

POP-X

CDN2

http://linkedin.com

https://<endpoint>/cdo/pass/r20.gif

http:// /providers.json

Page 62: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

RUM SteeringMeasurement Phase

0. VisitorSite HTML: xx.css + yy.js + rum.js

RUM DNS Service

One time key:i2-nqoqjnfrqy.init.cedexis-radar.net

1. Identify

2. Measure

3. Report

Key uniquely identifies this resolver

CDN1

POP-X

CDN2

http://linkedin.com

https://<endpoint>/cdo/pass/r20.gif

http:// /providers.json

● Client’s IP address○ ASN○ Geolocation

(reporting/aggregation)○ Performance data for client

● Client’s resolver IP address○ Various clients/ASNs behind this

resolver○ Performance data for various

clients behind this resolver

Page 63: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

RUM SteeringMeasurement Phase

Page 64: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

RUM SteeringMeasurement Phase

Page 65: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

RUM SteeringMeasurement Phase

Page 66: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

RUM SteeringMeasurement Phase

Page 67: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

RUM SteeringMeasurement Phase

RUM DNS Service

Page 68: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

RUM SteeringMeasurement Phase

RUM DNS Service

Page 69: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

RUM SteeringSteering Phase

Page 70: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

RUM SteeringSteering Phase

1. DNS Request

RUM DNS Service

linkedin.com

Page 71: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

RUM SteeringSteering Phase

1. DNS Request

RUM DNS Service

linkedin.com

Resolver is identified

Page 72: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

RUM SteeringSteering Phase

1. DNS Request

2. Inspect RUM

RUM DNS Service

linkedin.com

Resolver is identified

Page 73: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

RUM SteeringSteering Phase

1. DNS Request

2. Inspect RUM

RUM DNS Service

linkedin.com

Resolver is identified

● If no ECS○ DNS resolver IP○ Aggregate performance data of

ASNs behind that resolver● If ECS

○ Subnet of client to return the right DNS response with high confidence score.

Page 74: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

RUM SteeringSteering Phase

1. DNS Request

2. Inspect RUM

3. DNS Response

RUM DNS Service

linkedin.com

Resolver is identified

DNS cached

Page 75: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

RUM SteeringSteering Phase

1. DNS Request

2. Inspect RUM

3. DNS Response

RUM DNS Service

linkedin.com

Resolver is identified

DNS cached

Page 76: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

RUM SteeringRUM DNS at LinkedIn

$ dig +short +noshort static.licdn.com

What happens when a client resolves our LICDN domain

Page 77: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

RUM SteeringRUM DNS at LinkedIn

$ dig +short +noshort static.licdn.com

static.licdn.com. 300 IN CNAME 2-01-2c3e-003d.cdx.cedexis.net.

Cedexis owned CNAME belonging to our account

Page 78: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

RUM SteeringRUM DNS at LinkedIn

$ dig +short +noshort static.licdn.com

static.licdn.com. 300 IN CNAME 2-01-2c3e-003d.cdx.cedexis.net.

2-01-2c3e-003d.cdx.cedexis.net. 300 IN CNAME cs627.wac.epsiloncdn.net.

Cedexis looks at RUM measurements and hands out the best from our CDNs

Page 79: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

RUM SteeringRUM DNS at LinkedIn

$ dig +short +noshort static.licdn.com

static.licdn.com. 300 IN CNAME 2-01-2c3e-003d.cdx.cedexis.net.

2-01-2c3e-003d.cdx.cedexis.net. 300 IN CNAME cs627.wac.epsiloncdn.net.

Low TTL so that clients pick up response changes faster

Page 80: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

RUM SteeringRUM DNS at LinkedIn

$ dig +short +noshort static.licdn.com

static.licdn.com. 300 IN CNAME 2-01-2c3e-003d.cdx.cedexis.net.

2-01-2c3e-003d.cdx.cedexis.net. 300 IN CNAME cs627.wac.epsiloncdn.net.

cs627.wac.epsiloncdn.net. 3600 IN A 192.229.237.53

$

CDN owned CNAME then resolves to an IP

Page 81: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

CDN RUM Steering

EdgecastAkamaiChinaCache

Cedexis

Quantil

Cedexis

LinkedIn CDN

Page 82: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

CDN RUM Steering

ChinaCacheQuantil

Cedexis

static.licdn.com. 300 IN CNAME 2-01-2c3e-003d.cdx.cedexis.net

static.licdn.com. 300 IN CNAME 2-01-2c3e-0040.cdx.cdxcn.cn

EdgecastAkamai

Cedexis

LinkedIn CDN

Page 83: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

POP RUM Steering

Brazil LondonLos Angeles

Cedexis

Hong Kong SydneyMumbai

www.linkedin.com. 300 IN CNAME 2-01-2c3e-003c.cdx.cedexis.net

Page 84: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

RUM SteeringBenefits of RUM DNS

Page 85: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

RUM SteeringBenefits of RUM DNS

Two CDNs having opposite performance throughout the day

Page 86: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

RUM SteeringBenefits of RUM DNS

RUM DNS always picks the best of the two CDNs

Page 87: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

Benefits of RUM DNS

RUM Steering

RUM DNS failing out a CDN automatically and shifting to others

Page 88: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

RUM SteeringRUM DNS vs GeoDNS

Page 89: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

RUM SteeringRUM DNS vs GeoDNS (DNS Resolver in US)

DNS Resolver of a large chip manufacturing company.

Page 90: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

RUM SteeringRUM DNS vs GeoDNS (DNS Resolver in US)

RUM Steering correctly to specific PoPs at different times.

Page 91: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

RUM SteeringRUM DNS vs GeoDNS (India)

RUM DNS circumvents GeoIP inaccuracies in India

GeoDNS RUM DNS

Page 92: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

RUM SteeringRUM DNS vs GeoDNS (Vietnam)

Vietnam equidistant from Hong Kong and Singapore

Page 93: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

RUM SteeringRUM DNS vs GeoDNS (Vietnam)

Vietnam correctly routed to a blend of POPs

Singapore POP Hong Kong POP

Page 94: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

RUM SteeringRUM DNS vs GeoDNS (Vietnam)

Viettel sees 50% latency improvement

RUM DNS GeoDNS

Page 95: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

Philippines closer to Hong Kong than Sydney.

RUM SteeringRUM DNS vs GeoDNS (Philippines)

Philippines

Hong Kong

Sydney

Page 96: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

RUM SteeringRUM DNS vs GeoDNS (Philippines)

Philippines Globe Telecom routed to the correct POP

Hong Kong POPGeoDNS RUM DNS Sydney POP

Page 97: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

RUM SteeringClosing thoughts: FLAWS

Cache hit ratio

Page 98: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

RUM SteeringClosing thoughts: FLAWS

Workarounds

Cache hit ratio

CDN stickiness

Page 99: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

RUM SteeringClosing thoughts: FLAWS

Workarounds

Cache hit ratio

CDN stickiness

Cache miss latency

Page 100: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

RUM SteeringClosing thoughts: FLAWS

Workarounds

Cache hit ratio

CDN stickiness

Cache miss latency

Measure miss latency with 2nd object

Page 101: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

RUM SteeringClosing thoughts: FLAWS

Workarounds

Cache hit ratio

CDN stickiness

Cache miss latency

Measure miss latency with 2nd object

POP load shedding

Page 102: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

RUM SteeringClosing thoughts

Workarounds

Cache hit ratio

CDN stickiness

Cache miss latency

Measure miss latency with 2nd object

POP load shedding

Latency padding

Page 103: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

Agenda

CDN strategy POP Strategy RUM Steering Tooling

Page 104: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

DNS Tool

● Single interface

● Auditing and logging

● Search records across

zones

● Exposes API

Page 105: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

CDN Regression tool

● SSL certificate

● Caching headers

● Compression

● honors origin cache

headers

Page 106: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

Purge Tool

● Self service

● Purge status tracking

● 5 minute SLA for site-wide purge

Page 107: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

Synthetic Monitoring | Catchpoint @ LinkedIn

● Monitor at global scale ~ ensuring our ability to

serve LinkedIn through CDNs & DNS

● Create Selenium scripts used to simulate user behaviors/workflows (login, click a button, check for an element or string to create set of actions)

● Perform performance tests

● Troubleshooting tests Waterfalls, screenshots, scatter plot for tests

850Unique Test

Page 108: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

● Multi-vendor tools○ DNS Tool - One interface for

all-things-DNS○ CDN regression suite - CDN

configuration consistency○ CDN Purge tool - Remove

non-compliant assets from all CDNs

○ Synthetic monitoring - keep tabs on your vendors

○ Big Red Button - fail out of a vendor

● Other Tools○ POP turn up automation

(DNS, SSL, monitoring)○ Visualize RUM steering

decisions○ InCerts - provision SSL certs

in couple clicks

Synthetic MonitoringAkamai vs Edgecast

Page 109: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

Catchpoint LinkedIn

HoldenCatchpoint Nodes

TESTS

AMFActive Monitoring Framework

Page 110: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

● Multi-vendor tools○ DNS Tool - One interface for

all-things-DNS○ CDN regression suite - CDN

configuration consistency○ CDN Purge tool - Remove

non-compliant assets from all CDNs

○ Synthetic monitoring - keep tabs on your vendors

○ Big Red Button - fail out of a vendor

● Other Tools○ POP turn up automation

(DNS, SSL, monitoring)○ Visualize RUM steering

decisions○ InCerts - provision SSL certs

in couple clicks

Synthetic MonitoringHolden - CDN Availability

▪ Catchpoint Push API scales better

▪ Reduced time to detect issues

▪ Reduced time to recover from issues

Page 111: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

Closing thoughts

Page 112: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

Closing thoughts

● Build even more POPs

Page 113: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

Closing thoughts

● Build even more POPs

● Don't depend on one provider

Page 114: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

● Build even more POPs

● Don't depend on one provider

● Regionalize & reevaluate your vendors

Closing thoughts

Page 115: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

Closing thoughts

● Build even more POPs

● Don't depend on one provider

● Regionalize & reevaluate your vendors

● Clients are your measurement agents

Page 116: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

Closing thoughts

● Build even more POPs

● Don't depend on one provider

● Regionalize & reevaluate your vendors

● Clients are your measurement agents

● Don’t stop your analysis

Page 117: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed

Closing thoughts

● Build even more POPs

● Don't depend on one provider

● Regionalize & reevaluate your vendors

● Clients are your measurement agents

● Don’t stop your analysis

● Automate when you onboard itself

Page 118: Traffic Steering using RUM DNS - USENIX · RUM DNS vs GeoDNS (Philippines) Philippines Hong Kong Sydney. RUM Steering RUM DNS vs GeoDNS (Philippines) Philippines Globe Telecom routed