slides - Laurent Vanbever

Transcription

slides - Laurent Vanbever
Novel Applications for a
SDN-enabled Internet Exchange Point
Laurent Vanbever
vanbever@cs.princeton.edu
SDN Research Group, IETF87
July, 29 2013
Based on joint work with
Arpit Gupta, Muhammad Shahbaz, Hyojoon Kim,
Russ Clark, Nick Feamster, Jennifer Rexford and Scott Shenker
BGP is notoriously unflexible
and difficult to manage
Operating BGP has at least three limitations
BGP is notoriously unflexible
and difficult to manage
Operating BGP has at least three limitations
assume destination IP based routing
BGP is notoriously unflexible
and difficult to manage
Operating BGP has at least three limitations
assume destination IP based routing
what people really want
customized routing decisions
BGP is notoriously unflexible
and difficult to manage
Operating BGP has at least three limitations
assume destination IP based routing
policies are applied to direct neighbors
what people really want
customized routing decisions
BGP is notoriously unflexible
and difficult to manage
Operating BGP has at least three limitations
what people really want
assume destination IP based routing
customized routing decisions
policies are applied to direct neighbors
affect end-to-end paths
BGP is notoriously unflexible
and difficult to manage
Operating BGP has at least three limitations
what people really want
assume destination IP based routing
customized routing decisions
policies are applied to direct neighbors
affect end-to-end paths
indirectly influence forwarding paths
BGP is notoriously unflexible
and difficult to manage
Operating BGP has at least three limitations
what people really want
assume destination IP based routing
customized routing decisions
policies are applied to direct neighbors
affect end-to-end paths
indirectly influence forwarding paths
directing traffic on specific paths
SDN can enable fine-grained, flexible
and direct expression of interdomain policies
SDN devices forward based on any packet-header fields
at line rate, enabling flexible forwarding
SDN controller can be controlled by remote parties
on a bilateral basis, without any global standards
SDN controller exerts direct control on the data plane
using a standardized API such as OpenFlow
Internet Exchange Points are perfect places
to deploy new interdomain features
Internet Exchange Points are perfect places
to deploy new interdomain features
Internet Exchange Points (IXPs) ...
Internet Exchange Points are perfect places
to deploy new interdomain features
Internet Exchange Points (IXPs)
connect a large number of participants
Internet Exchange Points are perfect places
to deploy new interdomain features
Internet Exchange Points (IXPs)
connect a large number of participants
AMS-IX:
600 participants
Internet Exchange Points are perfect places
to deploy new interdomain features
Internet Exchange Points (IXPs)
AMS-IX:
connect a large number of participants
600 participants
carry a large amount of traffic
> 2250 Gb/s (peak)
Internet Exchange Points are perfect places
to deploy new interdomain features
Internet Exchange Points (IXPs)
AMS-IX:
connect a large number of participants
600 participants
carry a large amount of traffic
> 2250 Gb/s (peak)
are a hotbed of innovation
BGP Route Server
Mobile peering
Open peering
...
Internet Exchange Points are perfect places
to deploy new interdomain features
Internet Exchange Points (IXPs)
connect a large number of participants
carry a large amount of traffic
are a hotbed of innovation
Even a single deployment can have a large impact!
An IXP is a large L2 domain where
participants routers peer using BGP
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
!"#!
*
!"#$
+
)
%&'()&#!"#*
!"#+
*
+
)
,
,
!"#$%&'()
-#$./.$0"1()!(2&1.3.45
!"#$%&'(*
!"#$%&'(,
!"#$%&'(+
!"#$%&'()&**+)
,&62&5.74(81&9:;014(4#7;.45
6
,#-$!./(01/'2$345)/0
7
%
<&074(!4;/4;
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
!"#!
!"#!
!"#$
!"#$
%&'()&#!"#*
!"#+
!"#+
An IXP is a large
L2 domain where
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
!"#!
!"#$
*!"#+
+
participants* routers
using
BGP
)
+
) peer
*
+
,
!"#$%&'()
*
!"#$%&'()
+
%&'()&#!"#*
)
*
+
,
,
-#$./.$0"1()!(2&1.3.45
-#$./.$0"1()!(2&1.3.45 !"#$%&'()
!"#$%&'(*
!"#$%&'(,
!"#$%&'(*
!"#$%&'(+
!"#$%&'(,
!"#$%&'()&**+)
)
)
*
+
,
,
!"#$%&'()&**+)
,&62&5.74(81&9:
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
-#$./.$0"1()!(2&1.3.45
%&'()&#!"#*
!"#!
!"#$
!"#+
,&62&5.74(81&9:;014(4#7;.45
!"#$%&'(*
!"#$%&'(+
!"#$%&'(,
*
!"#$%&'()&**+)
+
)
*
+
)
,
,
-#$./.$0"1()!(2&1.3.45
,&62&5.74(81&9:;014(4#7;.45
,#-$!./(01/'2$345)/0
6
!"#$%&'()
!"#$%&'(*
!"#$%&'(,
!"#$%&'(+
,#-$!./(01/'2$345)/0!"#$%&'()&**+)
6
,&62&5.74(81&9:;014(4#7;.45
6
,#-$!./(01/'2$345)/0
,#-$!./(01/'2$345)/0
6
7
<&074(!4;/4;
%
7
<&074(!4;/4;
%
7<&074(!4;/4;
%
<&074(!4;/4;
Participant
BGP Edge router
7
%
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
!"#!
!"#!
!"#$
!"#$
%&'()&#!"#*
!"#+
!"#+
An IXP is a large
L2 domain where
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
!"#!
!"#$
*!"#+
+
participants* routers
using
BGP
)
+
) peer
*
+
,
!"#$%&'()
*
!"#$%&'()
+
%&'()&#!"#*
)
*
+
,
,
-#$./.$0"1()!(2&1.3.45
-#$./.$0"1()!(2&1.3.45 !"#$%&'()
!"#$%&'(*
!"#$%&'(,
!"#$%&'(*
!"#$%&'(+
!"#$%&'(,
!"#$%&'()&**+)
)
)
*
+
,
,
!"#$%&'()&**+)
,&62&5.74(81&9:
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
-#$./.$0"1()!(2&1.3.45
%&'()&#!"#*
!"#!
!"#$
!"#+
,&62&5.74(81&9:;014(4#7;.45
!"#$%&'(*
!"#$%&'(+
!"#$%&'(,
*
!"#$%&'()&**+)
+
)
*
+
)
,
,
-#$./.$0"1()!(2&1.3.45
,&62&5.74(81&9:;014(4#7;.45
,#-$!./(01/'2$345)/0
6
!"#$%&'()
!"#$%&'(*
!"#$%&'(,
!"#$%&'(+
,#-$!./(01/'2$345)/0!"#$%&'()&**+)
6
,&62&5.74(81&9:;014(4#7;.45
6
<&074(!4;/4;
,#-$!./(01/'2$345)/0
,#-$!./(01/'2$345)/0
6
7
<&074(!4;/4;
%
7
(private)
7<&074(!4;/4;
eBGP session
%
%
<&074(!4;/4;
Participant
BGP Edge router
7
%
!"#$%&'()
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
!"#!
!"#!
!"#$
!"#$
%&'()&#!"#*
!"#+
!"#+
An IXP is a large
L2 domain where
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
!"#!
!"#$
*!"#+
+
participants* routers
using
BGP
)
+
) peer
*
+
,
!"#$%&'()
*
!"#$%&'()
+
%&'()&#!"#*
)
*
+
,
,
-#$./.$0"1()!(2&1.3.45
-#$./.$0"1()!(2&1.3.45 !"#$%&'()
!"#$%&'(*
!"#$%&'(,
!"#$%&'(*
!"#$%&'(+
!"#$%&'(,
!"#$%&'()&**+)
)
)
*
+
,
,
!"#$%&'()&**+)
,&62&5.74(81&9:
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
-#$./.$0"1()!(2&1.3.45
%&'()&#!"#*
!"#!
!"#$
!"#+
,&62&5.74(81&9:;014(4#7;.45
!"#$%&'(*
!"#$%&'(+
!"#$%&'(,
6
*
Route-Server
,
eBGP
session
-#$./.$0"1()!(2&1.3.45
,&62&5.74(81&9:;014(4#7;.45
,#-$!./(01/'2$345)/0
6
!"#$%&'()&**+)
+
)
*
+
)
,
!"#$%&'()
!"#$%&'(*
!"#$%&'(,
!"#$%&'(+
,#-$!./(01/'2$345)/0!"#$%&'()&**+)
6
,&62&5.74(81&9:;014(4#7;.45
6
,#-$!./(01/'2$345)/0
,#-$!./(01/'2$345)/0
6
7
<&074(!4;/4;
%
7
<&074(!4;/4;
%
7<&074(!4;/4;
%
<&074(!4;/4;
Participant
BGP Edge router
7
%
<&074(!4;/4;
Route server
!"#$%&'()
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
!"#!
!"#!
!"#$
!"#$
%&'()&#!"#*
!"#+
!"#+
An IXP is a large
L2 domain where
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
!"#!
!"#$
*!"#+
+
participants* routers
using
BGP
)
+
) peer
*
+
,
!"#$%&'()
*
!"#$%&'()
+
%&'()&#!"#*
)
*
+
,
,
-#$./.$0"1()!(2&1.3.45
-#$./.$0"1()!(2&1.3.45 !"#$%&'()
!"#$%&'(*
!"#$%&'(,
!"#$%&'(*
!"#$%&'(+
!"#$%&'(,
!"#$%&'()&**+)
)
)
*
+
,
,
!"#$%&'()&**+)
,&62&5.74(81&9:
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
-#$./.$0"1()!(2&1.3.45
%&'()&#!"#*
!"#!
!"#$
!"#+
,&62&5.74(81&9:;014(4#7;.45
!"#$%&'(*
!"#$%&'(+
!"#$%&'(,
6
*
!"#$%&'()&**+)
+
)
*
+
)
,
,
-#$./.$0"1()!(2&1.3.45
,&62&5.74(81&9:;014(4#7;.45
,#-$!./(01/'2$345)/0
6
Traffic
!"#$%&'()
!"#$%&'(*
!"#$%&'(,
!"#$%&'(+
,#-$!./(01/'2$345)/0!"#$%&'()&**+)
6
,&62&5.74(81&9:;014(4#7;.45
6
,#-$!./(01/'2$345)/0
,#-$!./(01/'2$345)/0
6
7
<&074(!4;/4;
%
7
<&074(!4;/4;
%
7<&074(!4;/4;
%
<&074(!4;/4;
Participant
BGP Edge router
7
%
<&074(!4;/4;
Route server
!"#$%&'()
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
!"#!
!"#!
!"#$
!"#$
%&'()&#!"#*
!"#+
!"#+
With respect !"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
to IXPs, SDN-enabled IXPs (SDX) ...’
!"#!
!"#$
*!"#+
+ %&'()&#!"#*
)
*
,
data plane *relies+ on) SDN-capable
devices
)
*
+
,
,
-#$./.$0"1()!(2&1.3.45
!"#$%&'()
*
!"#$%&'()
+
-#$./.$0"1()!(2&1.3.45 !"#$%&'()
!"#$%&'(*
!"#$%&'(,
!"#$%&'(*
!"#$%&'(+
!"#$%&'(,
!"#$%&'()&**+)
)
)
*
+
,
,
!"#$%&'()&**+)
,&62&5.74(81&9:
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
-#$./.$0"1()!(2&1.3.45
%&'()&#!"#*
!"#!
!"#$
!"#+
,&62&5.74(81&9:;014(4#7;.45
!"#$%&'(*
!"#$%&'(+
!"#$%&'(,
6
*
!"#$%&'()&**+)
+
)
*
+
)
,
,
-#$./.$0"1()!(2&1.3.45
,&62&5.74(81&9:;014(4#7;.45
,#-$!./(01/'2$345)/0
6
!"#$%&'()
!"#$%&'(*
!"#$%&'(,
!"#$%&'(+
,#-$!./(01/'2$345)/0!"#$%&'()&**+)
6
,&62&5.74(81&9:;014(4#7;.45
6
,#-$!./(01/'2$345)/0
,#-$!./(01/'2$345)/0
6
7
<&074(!4;/4;
%
7
<&074(!4;/4;
%
7<&074(!4;/4;
%
<&074(!4;/4;
+
Participant
Edge router
7
%
<&074(!4;/4;
Route server
!"#$%&'()
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
!"#!
!"#!
!"#$
!"#$
%&'()&#!"#*
!"#+
!"#+
With respect !"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
to IXPs, SDN-enabled IXPs (SDX)
!"#!
!"#$
*!"#+
+ %&'()&#!"#*
)
*
,
data plane *relies+ on) SDN-capable
devices
)
*
+
,
,
-#$./.$0"1()!(2&1.3.45
!"#$%&'()
*
!"#$%&'()
+
-#$./.$0"1()!(2&1.3.45 !"#$%&'()
!"#$%&'(*
!"#$%&'(,
!"#$%&'(*
!"#$%&'(+
!"#$%&'(,
!"#$%&'()&**+)
)
)
*
+
,
,
!"#$%&'()&**+)
,&62&5.74(81&9:
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
-#$./.$0"1()!(2&1.3.45
%&'()&#!"#*
!"#!
!"#$
!"#+
,&62&5.74(81&9:;014(4#7;.45
!"#$%&'(*
!"#$%&'(+
!"#$%&'(,
6
*
!"#$%&'()&**+)
+
)
*
+
)
,
,
-#$./.$0"1()!(2&1.3.45
,&62&5.74(81&9:;014(4#7;.45
,#-$!./(01/'2$345)/0
6
!"#$%&'()
!"#$%&'(*
!"#$%&'(,
OpenFlow
enabled
Switch
,#-$!./(01/'2$345)/0!"#$%&'()&**+)
6
!"#$%&'(+
,&62&5.74(81&9:;014(4#7;.45
6
,#-$!./(01/'2$345)/0
F
O
,#-$!./(01/'2$345)/0
6
7
<&074(!4;/4;
%
7
<&074(!4;/4;
%
7<&074(!4;/4;
%
<&074(!4;/4;
+
Participant
Edge router
7
%
<&074(!4;/4;
Route server
!"#$%&'()
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
!"#!
!"#!
!"#$
!"#$
%&'()&#!"#*
!"#+
!"#+
With respect !"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
to IXPs, SDN-enabled IXPs (SDX)
!"#!
!"#$
*!"#+
+ %&'()&#!"#*
)
*
,
control plane
relies
)
*
+
)on, a SDX
* controller
+
,
-#$./.$0"1()!(2&1.3.45
!"#$%&'()
*
+
-#$./.$0"1()!(2&1.3.45 !"#$%&'()
!"#$%&'(*
!"#$%&'(,
!"#$%&'(*
!"#$%&'(+
!"#$%&'(,
!"#$%&'()&**+)
)
)
*
+
,
,
!"#$%&'()&**+)
,&62&5.74(81&9:
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
-#$./.$0"1()!(2&1.3.45
%&'()&#!"#*
!"#!
!"#$
!"#+
,&62&5.74(81&9:;014(4#7;.45
!"#$%&'(*
!"#$%&'(+
!"#$%&'(,
6
!"#$%&'()
*
!"#$%&'()&**+)
+
)
*
+
)
,
,
-#$./.$0"1()!(2&1.3.45
,&62&5.74(81&9:;014(4#7;.45
,#-$!./(01/'2$345)/0
6
!"#$%&'()
!"#$%&'(*
!"#$%&'(,
!"#$%&'(+
,#-$!./(01/'2$345)/0!"#$%&'()&**+)
6
,&62&5.74(81&9:;014(4#7;.45
6
,#-$!./(01/'2$345)/0
F
O
,#-$!./(01/'2$345)/0
6
7
<&074(!4;/4;
%
7
<&074(!4;/4;
%
7<&074(!4;/4;
%
<&074(!4;/4;
+
Participant
Edge router
7
%
SDX controller
<&074(!4;/4;
!"#$%&'()
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
!"#!
!"#!
!"#$
!"#$
%&'()&#!"#*
!"#+
!"#+
SDX participants
write policies using a high-level
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
!"#!
!"#$
*!"#+
+ %&'()&#!"#*
)
*
,
language on
top +of )a virtual
)
*
*topology
+
,
,
-#$./.$0"1()!(2&1.3.45
!"#$%&'()
*
+
-#$./.$0"1()!(2&1.3.45 !"#$%&'()
!"#$%&'(*
!"#$%&'(,
!"#$%&'(*
!"#$%&'(+
!"#$%&'(,
!"#$%&'()&**+)
)
)
*
+
,
,
!"#$%&'()&**+)
,&62&5.74(81&9:
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
-#$./.$0"1()!(2&1.3.45
%&'()&#!"#*
!"#!
!"#$
!"#+
match(dstip=ipA) >> fwd(outA)
,&62&5.74(81&9:;014(4#7;.45
!"#$%&'(*
!"#$%&'(+
!"#$%&'(,
6
!"#$%&'()
*
!"#$%&'()&**+)
+
)
*
+
)
,
,
-#$./.$0"1()!(2&1.3.45
,&62&5.74(81&9:;014(4#7;.45
,#-$!./(01/'2$345)/0
6
!"#$%&'()
!"#$%&'(*
!"#$%&'(,
!"#$%&'(+
,#-$!./(01/'2$345)/0!"#$%&'()&**+)
6
,&62&5.74(81&9:;014(4#7;.45
match(dstip=ipC) >> fwd(C) +
6
match(dstip=ipA) >> fwd(A) +
match(dstip=ipB) >> fwd(outB)
+
,#-$!./(01/'2$345)/0
F
O
,#-$!./(01/'2$345)/0
6
7
<&074(!4;/4;
%
7
<&074(!4;/4;
%
7<&074(!4;/4;
%
<&074(!4;/4;
match(dstip=ipC) >> fwd(outC)
7
%
SDX controller
<&074(!4;/4;
!"#$%&'()
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
!"#!
!"#!
!"#$
!"#$
%&'()&#!"#*
!"#+
!"#+
The SDX controller
composes policies
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
!"#!
!"#$
*!"#+
+ %&'()&#!"#*
)
*
,
together ensuring
isolation
and
correctness
)
*
+
)
*
+
,
,
-#$./.$0"1()!(2&1.3.45
!"#$%&'()
*
+
-#$./.$0"1()!(2&1.3.45 !"#$%&'()
!"#$%&'(*
!"#$%&'(,
!"#$%&'(*
!"#$%&'(+
!"#$%&'(,
!"#$%&'()&**+)
)
)
*
+
,
,
!"#$%&'()&**+)
,&62&5.74(81&9:
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
-#$./.$0"1()!(2&1.3.45
%&'()&#!"#*
!"#!
!"#$
!"#+
match(dstip=ipA) >> fwd(outA)
,&62&5.74(81&9:;014(4#7;.45
!"#$%&'(*
!"#$%&'(+
!"#$%&'(,
6
!"#$%&'()
*
!"#$%&'()&**+)
+
)
*
+
)
,
,
-#$./.$0"1()!(2&1.3.45
,&62&5.74(81&9:;014(4#7;.45
,#-$!./(01/'2$345)/0
6
!"#$%&'()
!"#$%&'(*
!"#$%&'(,
!"#$%&'(+
,#-$!./(01/'2$345)/0!"#$%&'()&**+)
6
,&62&5.74(81&9:;014(4#7;.45
match(dstip=ipC) >> fwd(C) +
6
match(dstip=ipA) >> fwd(A) +
match(dstip=ipB) >> fwd(outB)
+
,#-$!./(01/'2$345)/0
F
O
,#-$!./(01/'2$345)/0
6
7
<&074(!4;/4;
%
7
<&074(!4;/4;
%
7<&074(!4;/4;
%
<&074(!4;/4;
match(dstip=ipC) >> fwd(outC)
7
%
SDX controller
<&074(!4;/4;
!"#$%&'()
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
!"#!
!"#!
!"#$
!"#$
%&'()&#!"#*
!"#+
!"#+
The SDX controller
composes policies
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
!"#!
!"#$
*!"#+
+ %&'()&#!"#*
)
*
,
together ensuring
isolation
and
correctness
)
*
+
)
*
+
,
,
-#$./.$0"1()!(2&1.3.45
!"#$%&'()
*
+
-#$./.$0"1()!(2&1.3.45 !"#$%&'()
!"#$%&'(*
!"#$%&'(,
!"#$%&'(*
!"#$%&'(+
!"#$%&'(,
!"#$%&'()&**+)
)
)
*
+
,
,
!"#$%&'()&**+)
,&62&5.74(81&9:
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
-#$./.$0"1()!(2&1.3.45
%&'()&#!"#*
!"#!
!"#$
!"#+
match(dstip=ipA) >> fwd(outA)
,&62&5.74(81&9:;014(4#7;.45
!"#$%&'(*
!"#$%&'(+
!"#$%&'(,
6
!"#$%&'()
*
!"#$%&'()&**+)
+
)
*
+
,
)
,
-#$./.$0"1()!(2&1.3.45
,&62&5.74(81&9:;014(4#7;.45
,#-$!./(01/'2$345)/0
6
!"#$%&'()
!"#$%&'(*
!"#$%&'(,
!"#$%&'(+
,#-$!./(01/'2$345)/0!"#$%&'()&**+)
6
OpenFlow
rules
,&62&5.74(81&9:;014(4#7;.45
match(dstip=ipC) >> fwd(C) +
6
match(dstip=ipA) >> fwd(A) +
match(dstip=ipB) >> fwd(outB)
+
,#-$!./(01/'2$345)/0
F
O
,#-$!./(01/'2$345)/0
6
7
<&074(!4;/4;
%
7
<&074(!4;/4;
%
7<&074(!4;/4;
%
<&074(!4;/4;
match(dstip=ipC) >> fwd(outC)
7
%
SDX controller
<&074(!4;/4;
!"#$%&'()
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
!"#!
!"#!
!"#$
!"#$
%&'()&#!"#*
!"#+
!"#+
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
!"#!
*
!"#$
+
)
6
,
!"#$%&'()
*
!"#$%&'()
+
*!"#+
*
+
+ %&'()&#!"#*
)
*
,
)
,
-#$./.$0"1()!(2&1.3.45
,#-$!./(01/'2$345)/0
-#$./.$0"1()!(2&1.3.45 !"#$%&'()
!"#$%&'(*
!"#$%&'(,
!"#$%&'(*
!"#$%&'(+
!"#$%&'(,
!"#$%&'()&**+)
)
)
*
+
,
,
!"#$%&'()&**+)
SDX
controller
,&62&5.74(81&9:
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
-#$./.$0"1()!(2&1.3.45
%&'()&#!"#*
!"#!
!"#$
!"#+
,&62&5.74(81&9:;014(4#7;.45
!"#$%&'(*
!"#$%&'(+
!"#$%&'(,
6
*
!"#$%&'()&**+)
+
)
7
*
+
)
,
,
-#$./.$0"1()!(2&1.3.45
,&62&5.74(81&9:;014(4#7;.45
,#-$!./(01/'2$345)/0
6
,#-$!./(01/'2$345)/0
What 6does SDX
enable
that
was
hard
<&074(!4;/4;
or impossible to do before?
!"#$%&'()
!"#$%&'(*
!"#$%&'(,
!"#$%&'(+
!"#$%&'()&**+)
,&62&5.74(81&9:;014(4#7;.45
6
,#-$!./(01/'2$345)/0
F
O
,#-$!./(01/'2$345)/0
6
7
<&074(!4;/4;
%
7
<&074(!4;/4;
%
7<&074(!4;/4;
%
<&074(!4;/4;
+
Participant
Edge router
7
%
<&074(!4;/4;
Route server
%
SDX enables a wide range of
novel interdomain applications
security
Prevent/block policy violation
Prevent participants communication
forwarding optimization
Middlebox traffic steering
Traffic offloading
Inbound Traffic Engineering
peering
Application-specific peering
remote-control
Wide-area load balancing
Influence BGP path selection
Upstream blocking of DoS attacks
SDX enables a wide range of
novel interdomain applications
security
Prevent/block policy violation
Prevent participants communication
forwarding optimization
Middlebox traffic steering
Traffic offloading
Inbound Traffic Engineering
peering
Application-specific peering
remote-control
Wide-area load balancing
Influence BGP path selection
Upstream blocking of DoS attacks
Novel Applications for a
SDN-enabled Internet Exchange Point
1
Inbound Traffic Engineering
2
Upstream DoS blocking
3
Wide-area load balancing
Novel Applications for a
SDN-enabled Internet Exchange Point
1
Inbound Traffic Engineering
Upstream DoS blocking
Wide-area load balancing
SDX can improve inbound traffic engineering
#$
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
%&'()&#!"#*
!"#!
!"#$
!"#+
!"#+
%&'()&#!"#*
SDX
can
improve inbound traffic engineering
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
*
)
+
,
*
+
)
,
-#$./.$0"1()!(2&1.3.45
!"#!
%&'(*
!"#$%&'(,
!"#! !"#$
!"#$ !"#+
!"#$%&'(+
!"#$%&'()
)
*
+
%&'()&#!"#* %&'()&#!"#*
!"#+
-#$./.$0"1()!(2&1.3.45
!"#$%&'(*
!"#$%&'(,
,
!"#$%&'(+
!"#$%&'()&**+)
Given
an IXP Physical Topology
,&62&5.74(81&9:;014(4#7;.45
!"#$%&'()&**+)
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
+*
)
+
)
*
*
,
!"#$
!"#!
!"#+,
+*
)
%&'()&#!"#*
,&62&5.74(81&9:;014(4#7;.45
)
,+
,
-#$./.$0"1()!(2&1.3.45
-#$./.$0"1()!(2&1.3.45
!"#$%&'()
!"#$%&'(*
!"#$%&'(*
!"#$%&'(+
!"#$%&'(,
!"#$%&'(,
)
!"#$%&'()
*
+
)
*
+
!./(01/'2$345)/0
!"#$%&'(+
,
,
,#-$!./(01/'2$345)/0
!"#$%&'()&**+)
!"#$%&'()&**+)
6
!"#$%&'(+
!"#$%&'(,
-#$./.$0"1()!(2&1.3.45
!"#$%&'()
!"#$%&'(*
!"#$%&'()&**+),&62&5.74(81&9:;014(4#7;.45
,&62&5.74(81&9:;014(4#7;.45
,&62&5.74(81&9:;014(4#7;.45
7
6
%
,#-$!./(01/'2$345)/0
,#-$!./(01/'2$345)/0
6,#-$!./(01/'2$345)/0
6
<&074(!4;/4;
eBGP session
7
%
<&074(!4;/4;
71
72
%
<&074(!4;/4;
<&074(!4;/4;
%
%
#$
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
%&'()&#!"#*
!"#!
!"#$
!"#+
!"#+
%&'()&#!"#*
SDX
can
improve inbound traffic engineering
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
*
)
+
,
*
+
)
,
-#$./.$0"1()!(2&1.3.45
!"#!
%&'(*
!"#$%&'(,
!"#! !"#$
!"#$ !"#+
!"#$%&'(+
!"#$%&'()
!"#$%&'(*
!"#$%&'()&**+)
Given
an IXP Physical Topology
,&62&5.74(81&9:;014(4#7;.45
,
!"#$
!"#!
!"#+,
!"#$%&'(,
!"#$%&'()&**+)
and
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
+*
)
+
)
*
*
)
*
+
%&'()&#!"#* %&'()&#!"#*
!"#+
-#$./.$0"1()!(2&1.3.45
+*
)
%&'()&#!"#*
*
+
)
*
+
a BGP topology
!"#!
!"#$
!"#+ %&'()&#!"#*%&'()&#!"#*
!"#!
!"#$
!"#+
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
!"#!
!"#$
*
%&'()&#!"#*
!"#+
+
,
)
*+
, *
)
)
+
,
,
-#$./.$0"1()!(2&1.3.45
-#$./.$0"1()!(2&1.3.45
)
+
)
*
+
, !"#$%&'(+
,
!"#$%&'(*!"#$%&'(, !"#$%&'(,
!"#$%&'() !"#$%&'()
!"#$%&'(*
!"#$%&'(+
192.0.{1,2,3}.0/24
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
-#$./.$0"1()!(2&1.3.45
!"#$%&'(+
!"#$%&'()
!"#$%&'()&**+)!"#+
!"#$%&'()&**+)
!"#$
!"#!
!"#$%&'(*
%&'()&#!"#*
!"#$%&'(+
!"#$%&'(,
,&62&5.74(81&9:;014(4#7;.45
,&62&5.74(81&9:;014(4#7;.45
,
,
!./(01/'2$345)/0
!"#$%&'(+
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
,&62&5.74(81&9:;014(4#7;.45
)
*+
*,
)
,+
-#$./.$0"1()!(2&1.3.45
-#$./.$0"1()!(2&1.3.45
!"#$%&'()
!"#$%&'(*
!"#$%&'(*
!"#$%&'(+
!"#$%&'(,
!"#$%&'(,
)
!"#$%&'()
,
!"#$%&'()&**+)
,#-$!./(01/'2$345)/0
!"#$%&'()&**+)
!"#$%&'()&**+)
6
!"#$%&'(*
!"#$%&'(+
!"#$%&'(,
-#$./.$0"1()!(2&1.3.45
!"#$%&'()
,&62&5.74(81&9:;014(4#7;.45
*
+
,
,#-$!./(01/'2$345)/0
,#-$!./(01/'2$345)/0
*
+
!"#$%&'()&**+),&62&5.74(81&9:;014(4#7;.45
,&62&5.74(81&9:;014(4#7;.45
192.0.1.0/24 6
,&62&5.74(81&9:;014(4#7;.45
6
%
!"#$%&'(,
<&074(!4;/4;
%
%
,&62&5.74(81&9:;014(4#7;.45
%
192.0.3.0/24
7
6
%
,#-$!./(01/'2$345)/0
AS A
AS C
<&074(!4;/4;
7
%
<&074(!4;/4;
7
71
72
%
<&074(!4;/4;
%
<&074(!4;/4;
<&074(!4;/4;
%
!"#$%&'(+
7
192.0.3.0/24
,#-$!./(01/'2$345)/0
,
,#-$!./(01/'2$345)/0
!"#$%&'()&**+)192.0.2.0/24
7
<&074(!4;/4;<&074(!4;/4;
,#-$!./(01/'2$345)/0
6,#-$!./(01/'2$345)/0
6
AS !"#$%&'(*
B
!"#$%&'()
7
)
192.0.1.0/24
-#$./.$0"1()!(2&1.3.45
6
6
192.0.2.0/24
)
*
+
)
*
)
+
,
,
*
+
)
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9
,
-#$./.$0"1()!(2&1.3.45
!"#!
!"#$%&'(*
!"#$%&'(,
%&'()&#
!"#! !"#$
!"#$ !"#+
!"#+
-#$./.$0"1()!(2
!"#$%&'(+
!"#$%&'()
!"#$%&'(*
SDX can improve inbound!"#$%&'()&**+)
traffic engineering!"#$%&'()
!"#$%&'()
,&62&5.74(81&9:;014(4#7;.45
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
*
+*
)
)
*
,+
,
!"#!
!"#$
)
+*
%&'()&#!"#*
!"#+
,&
,+
-#$./.$0"1()!(2&1.3.45
-#$./.$0"1()!(2&1.3.45
Implements B’s inbound policy
!"#$%&'()*
6
!"#$%&'()
!"#$%&'(*
+
)
*
!"#$%&'(*
!"#$%&'(,
)
+
,#-$!./(01/'2$345)/0
!"#$%&
!"#$%&'(,
,
,
,#-$!./(01/'2$34
6
!"#$%&'()&**+)
!"#$%&'()&**+)
!"#$%&'(+
-#$./.$0"1()!(2&1.3.45
!"#$%&'(*
!"#$%&'(,
!"#$%&'()
!"#$%&'()&**+),&62&5.74(81&9:;014(4#7;.45
,&62&5.74(81&9:;
,&62&5.74(81&9:;014(4#7;.45
to
from
receive on
7
7
,#-$!./(01/'2$345)/0
6
%
,#-$!./(01/'2$345)/0
6 ,#-$!./(01/'2$345)/0
6
<&074(!4;/4;
192.0.1.0/24
A
<&074(!4;/4;
B1
7
%
<&074(!4;/4;
192.0.2.0/24
B
72
71
B2
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
!"#!
!"#$
!"#+ %&'()&#!"#*%&'()&#!"#*
!"#!
!"#$
!"#+
!"#!
192.0.2.0/24
ATT_IP
B2
<&074(!4;/4;
<&074(!4;/4;
IXP
*
B1
%
%&'()&#!"#*
!"#+
Topology
+
)
)
*+
, *
,
)
+
)
,
,
-#$./.$0"1()!(2&1.3.45
-#$./.$0"1()!(2&1.3.45
)
+
)
*
+
,
,
!"#$%&'() !"#$%&'()
!"#$%&'(* !"#$%&'(*!"#$%&'(, !"#$%&'(,
!"#$%&'(+ !"#$%&'(+
*
192.0.2.0/24
*+
*
%
!"#$
192.0.{1,2,3}.0/24
-#$./.$0"1()!(2&1.3.45
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
!"#$%&'()&**+)
!"#$%&'()&**+)
!"#$%&'()
!"#! !"#$%&'(*
!"#$
!"#$%&'(,
!"#+
!"#$%&'(+%&'()&#!"#*
,&62&5.74(81&9:;014(4#7;.45
,&62&5.74(81&9:;014(4#7;.45
!"#$%&'()&**+)
192.0.3.0/24
*
B2
,&62&5.74(81&9:;014(4#7;.45
*
192.0.1.0/24
+
6
6
*
,
,#-$!./(01/'2$345)/0
,#-$!./(01/'2$345)/0
+
)
,
-#$./.$0"1()!(2&1.3.45192.0.1.0/24
AS !"#$%&'(*
B
!"#$%&'()
192.0.2.0/24
)
!"#$%&'(,
!"#$%&'(+
7 !"#$%&'()&**+)192.0.2.0/24
%
% ,&62&5.74(81&9:;014(4#7;.45
,#-$!./(01/'2$345)/0
6
7
192.0.3.0/24<&074(!4;/4;<&074(!4;/4;
192.0.3.0/24
7
6
%
,#-$!./(01/'2$345)/0
AS A
AS C
<&074(!4;/4;
7
BGP Topology
<&074(!4;/4;
%
*
+
)
*
)
+
,
,
*
+
)
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9
,
-#$./.$0"1()!(2&1.3.45
!"#!
!"#$%&'(*
!"#$%&'(,
%&'()&#
!"#! !"#$
!"#$ !"#+
!"#+
-#$./.$0"1()!(2
!"#$%&'(+
!"#$%&'()
!"#$%&'(*
How do you do that with !"#$%&'()&**+)
BGP?
!"#$%&'()
!"#$%&'()
,&62&5.74(81&9:;014(4#7;.45
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
*
+*
)
)
*
,+
,
!"#!
!"#$
)
+*
%&'()&#!"#*
!"#+
,&
,+
-#$./.$0"1()!(2&1.3.45
-#$./.$0"1()!(2&1.3.45
Implements B’s inbound policy
!"#$%&'()*
6
!"#$%&'()
!"#$%&'(*
+
)
*
!"#$%&'(*
!"#$%&'(,
)
+
,#-$!./(01/'2$345)/0
!"#$%&
!"#$%&'(,
,
,
,#-$!./(01/'2$34
6
!"#$%&'()&**+)
!"#$%&'()&**+)
!"#$%&'(+
-#$./.$0"1()!(2&1.3.45
!"#$%&'(*
!"#$%&'(,
!"#$%&'()
!"#$%&'()&**+),&62&5.74(81&9:;014(4#7;.45
,&62&5.74(81&9:;
,&62&5.74(81&9:;014(4#7;.45
to
from
receive on
7
7
,#-$!./(01/'2$345)/0
6
%
,#-$!./(01/'2$345)/0
6 ,#-$!./(01/'2$345)/0
6
<&074(!4;/4;
192.0.1.0/24
A
<&074(!4;/4;
B1
7
%
<&074(!4;/4;
192.0.2.0/24
B
72
71
B2
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
!"#!
!"#$
!"#+ %&'()&#!"#*%&'()&#!"#*
!"#!
!"#$
!"#+
!"#!
192.0.2.0/24
ATT_IP
B2
<&074(!4;/4;
<&074(!4;/4;
IXP
*
B1
%
%&'()&#!"#*
!"#+
Topology
+
)
)
*+
, *
,
)
+
)
,
,
-#$./.$0"1()!(2&1.3.45
-#$./.$0"1()!(2&1.3.45
)
+
)
*
+
,
,
!"#$%&'() !"#$%&'()
!"#$%&'(* !"#$%&'(*!"#$%&'(, !"#$%&'(,
!"#$%&'(+ !"#$%&'(+
*
192.0.2.0/24
*+
*
%
!"#$
192.0.{1,2,3}.0/24
-#$./.$0"1()!(2&1.3.45
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
!"#$%&'()&**+)
!"#$%&'()&**+)
!"#$%&'()
!"#! !"#$%&'(*
!"#$
!"#$%&'(,
!"#+
!"#$%&'(+%&'()&#!"#*
,&62&5.74(81&9:;014(4#7;.45
,&62&5.74(81&9:;014(4#7;.45
!"#$%&'()&**+)
192.0.3.0/24
*
B2
,&62&5.74(81&9:;014(4#7;.45
*
192.0.1.0/24
+
6
6
*
,
,#-$!./(01/'2$345)/0
,#-$!./(01/'2$345)/0
+
)
,
-#$./.$0"1()!(2&1.3.45192.0.1.0/24
AS !"#$%&'(*
B
!"#$%&'()
192.0.2.0/24
)
!"#$%&'(,
!"#$%&'(+
7 !"#$%&'()&**+)192.0.2.0/24
%
% ,&62&5.74(81&9:;014(4#7;.45
,#-$!./(01/'2$345)/0
6
7
192.0.3.0/24<&074(!4;/4;<&074(!4;/4;
192.0.3.0/24
7
6
%
,#-$!./(01/'2$345)/0
AS A
AS C
<&074(!4;/4;
7
BGP Topology
<&074(!4;/4;
%
It is at least hard... BGP provides
few knobs to influence remote decisions
Implementing such a policy is configuration-intensive
using AS-Path prepend, MED, community tagging, etc.
and even impossible for some requirements...
BGP policies cannot influence remote parties
decisions based on source addresses
to
from
receive on
192.0.2.0/24
ATT_IP
B2
In any case, the outcome is unpredictable
Implementing such a policy is configuration-intensive
using AS-Path prepend, MED, community tagging, etc.
Absolutely no guarantee that the remote party will comply
one can only “influence” remote decisions
Networks engineers have no choice but to “try and see”
which makes it impossible to adapt to traffic pattern
With a SDX,
implementing B’s inbound policy is easy
SDX policies give B direct control on its forwarding paths
to
from
fwd
B’s SDX Policy
192.0.1.0/24
A
B1
match(dstip=192.0.1.0/24, srcmac=A) >> fwd(B1)
192.0.2.0/24
B
B2
match(dstip=192.0.2.0/24, srcmac=B) >> fwd(B2)
192.0.2.0/24
ATT_IP
B2
match(dstip=192.0.2.0/24, srcip=ATT) >> fwd(B2)
192.0.2.0/24
*
B1
match(dstip=192.0.2.0/24) >> fwd(B1)
192.0.3.0/24
*
B2
match(dstip=192.0.3.0/24) >> fwd(B2)
Novel Applications for a
SDN-enabled Internet Exchange Point
Inbound Traffic Engineering
2
Upstream DoS blocking
Wide-area load balancing
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
!"#!
!"#$
%&'()&#!"#*
!"#+
SDX can help blocking DoS attacks
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
closer to the source
*
+
)
*
)
+
,
,
!"#$%&'()
-#$./.$0"1()!(2&1.3.45
!"#!
!"#$%&'(*
!"#$%&'(,
!"#$
!"#$%&'(+
!"#$%&'()&**+)
A simple Internet topology
,&62&5.74(81&9:;014(4#7;.45
+
)
,
*
!"#$%&'()
6
Attacker
*
AS13
-#$./.$0"1()!(2&1.3.45
!"#$%&'(*
!"#$%&'(,
,#-$!./(01/'2$345)/0
6
%
,#-$!./(01/'2$345)/0
controller
7
%
SDX#B
<&074(!4;/4;
AS7
Victim
)
,
!"#$%&'(
,&62&5.74(81&9:;014(4#7;.45
7
<&074(!4;/4;
SDX#A
+
%&'()&#!"
!"#$%&'()&**+)
controller
AS1
!"#+
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
!"#!
!"#$
AS7 is under a DoS attack
originated by AS13
*
+
!"#$%&'()
%&'()&#!"#*
!"#+
)
)
,
*
+
,
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
-#$./.$0"1()!(2&1.3.45
!"#!
!"#$%&'(*
!"#$%&'(,
!"#$
!"#$%&'(+
!"#$%&'()&**+)
,&62&5.74(81&9:;014(4#7;.45
+
)
,
*
!"#$%&'()
6
AS13
6
%
,#-$!./(01/'2$345)/0
controller
7
%
SDX#B
<&074(!4;/4;
AS7
Victim
)
,
!"#$%&'(
,&62&5.74(81&9:;014(4#7;.45
7
<&074(!4;/4;
SDX#A
+
!"#$%&'()&**+)
controller
AS1
Attacker
*
-#$./.$0"1()!(2&1.3.45
!"#$%&'(*
!"#$%&'(,
,#-$!./(01/'2$345)/0
%&'()&#!"
!"#+
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
!"#!
!"#$
%&'()&#!"#*
!"#+
AS7 can remotely install drop rule
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
in the SDX platforms
*
+
)
*
)
+
,
,
!"#$%&'()
-#$./.$0"1()!(2&1.3.45
!"#!
!"#$%&'(*
!"#$%&'(,
!"#$
!"#$%&'(+
!"#$%&'()&**+)
,&62&5.74(81&9:;014(4#7;.45
+
)
,
*
!"#$%&'()
6
Attacker
*
AS13
-#$./.$0"1()!(2&1.3.45
!"#$%&'(*
!"#$%&'(,
,#-$!./(01/'2$345)/0
6
%
,#-$!./(01/'2$345)/0
controller
7
%
SDX#B
<&074(!4;/4;
AS7
Victim
)
,
!"#$%&'(
,&62&5.74(81&9:;014(4#7;.45
7
<&074(!4;/4;
SDX#A
+
%&'()&#!"
!"#$%&'()&**+)
controller
AS1
!"#+
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
!"#!
!"#$
%&'()&#!"#*
!"#+
AS7 can remotely install drop rule
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
in the SDX platforms
*
+
)
*
)
+
,
,
!"#$%&'()
-#$./.$0"1()!(2&1.3.45
!"#!
!"#$%&'(*
!"#$%&'(,
!"#$
!"#$%&'(+
!"#$%&'()&**+)
,&62&5.74(81&9:;014(4#7;.45
+
)
,
*
!"#$%&'()
6
Attacker
*
AS13
-#$./.$0"1()!(2&1.3.45
!"#$%&'(*
!"#$%&'(,
,#-$!./(01/'2$345)/0
6
%
,#-$!./(01/'2$345)/0
controller
match(srcip=Attacker/24, dstip=Victim/32) >> drop
7
%
SDX#B
<&074(!4;/4;
AS7
Victim
)
,
!"#$%&'(
,&62&5.74(81&9:;014(4#7;.45
7
<&074(!4;/4;
SDX#A
+
%&'()&#!"
!"#$%&'()&**+)
controller
AS1
!"#+
SDX-based DoS protection is more
efficient than traditional blackholing solutions
Remote ASes could drop traffic destined to their network
even if there are not physically connect to the IXP!
Traffic drop can be done based on any field
source address, destination address, port number, etc.
Traffic drop can be coordinated across multiple IXPs
thanks to SDX controllers collaboration
Novel Applications for a
SDN-enabled Internet Exchange Point
Inbound Traffic Engineering
Upstream DoS blocking
3
Wide-area load balancing
DNS-based wide-area load balancing
has several limitations
High TTL values lead to slow recovery when a server fails
due to caching by local DNS servers and browsers
Low TTL values lead to higher delay for DNS resolution
due to cache misses
Load-balancing is not based on the client IP address
but on the IP address of the DNS resolver (e.g., Google DNS)
SDX enable direct and quick control
of traffic redirection
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
SDX enable
direct and quick control
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
of traffic redirection
!"#!
!"#$
%&'()&#!"#*
!"#+
!"#!
*
+
)
*
!"#+
)
+
,
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
*
+
)
*
,
,
-#$./.$0"1()!(2&1.3.45
C is a CDN hosting three types
of services:
!"#!
!"#$%&'()
!"#$
!"#$%&'(*
!"#!!"#$
!"#$ !"#+
!"#$%&'(+
!"#$%&'()
!"#$%&'(,
+
%&'()&#!"#*
%&'()&#!
!"#+
-#$./.$0"1()!(2&1.3.45
!"#$%&'(*
!"#$%&'(,
!"#$%&'()&**+)
!"#$%&'()&**+)
*
,&62&5.74(81&9:;014(4#7;.45
+!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
* )
) *,
, !"#$+
!"#!
!"#+
DC1
)
,&62&5.74(81&9:;0
)
, +
,
-#$./.$0"1()!(2&1.3.45
-#$./.$0"1()!(2&1.3.45
!"#$%&'()
!"#$%&'(*
!"#$%&'(*
!"#$%&'(+
!"#$%&'(,
!"#$%&'(,
)
!"#$%&'()
6
+ *
%&'()&#!"#*
*
+
)
*
+
,
,#-$!./(01/'2$345)/0
!"#$%&'()
!"#$%&'
,
,#-$!./(01/'2$345)/0
!"#$%&'()&**+)
!"#$%&'()&**+)
6
!"#$%&'(+
-#$./.$0"1()!(2&1.3.45
!"#$%&'(*
!"#$%&'(,
!"#$%&'()&**+)
,&62&5.74(81&9:;014(4#7;.45
,&62&5.74(81&9:;014(4#7;.45
,&62&5.74(81&9:;014(4#7;.45
7
7
DC2
%
6
,#-$!./(01/'2$345)/0
,#-$!./(01/'2$345)/0
6,#-$!./(01/'2$345)/0
6
<&074(!4;/4;
<&074(!4;/4;
7
%
<&074(!4;/4;
71
72
%
<&074(!4;/4;
<&074(!4;/4;
%
%
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
SDX enable
direct and quick control
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
of traffic redirection
!"#!
!"#$
%&'()&#!"#*
!"#+
!"#!
*
+
)
*
!"#$
!"#+
)
+
,
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
*
+
)
*
,
,
-#$./.$0"1()!(2&1.3.45
Each of C’s data center is assigned
!"#!
!"#$%&'()
!"#$%&'(*
!"#$%&'(,
to a single IP prefix
!"#!!"#$
!"#$ !"#+
!"#$%&'(+
!"#$%&'()
+
%&'()&#!"#*
%&'()&#!
!"#+
-#$./.$0"1()!(2&1.3.45
!"#$%&'(*
!"#$%&'(,
!"#$%&'()&**+)
!"#$%&'()&**+)
*
192.0.2.0/24
DC1
6
,&62&5.74(81&9:;014(4#7;.45
+!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
* )
) *,
, !"#$+
!"#!
!"#+
+ *
)
%&'()&#!"#*
,&62&5.74(81&9:;0
)
, +
,
-#$./.$0"1()!(2&1.3.45
-#$./.$0"1()!(2&1.3.45
!"#$%&'()
!"#$%&'(*
!"#$%&'(*
!"#$%&'(+
!"#$%&'(,
!"#$%&'(,
)
!"#$%&'()
*
+
)
*
+
,
,#-$!./(01/'2$345)/0
!"#$%&'()
!"#$%&'
,
,#-$!./(01/'2$345)/0
!"#$%&'()&**+)
!"#$%&'()&**+)
6
!"#$%&'(+
-#$./.$0"1()!(2&1.3.45
!"#$%&'(*
!"#$%&'(,
!"#$%&'()&**+)
,&62&5.74(81&9:;014(4#7;.45
,&62&5.74(81&9:;014(4#7;.45
,&62&5.74(81&9:;014(4#7;.45
7
7
DC2
%
6
,#-$!./(01/'2$345)/0
,#-$!./(01/'2$345)/0
6,#-$!./(01/'2$345)/0
6
<&074(!4;/4;
<&074(!4;/4;
7
192.0.3.0/24
%
<&074(!4;/4;
71
72
%
<&074(!4;/4;
<&074(!4;/4;
%
%
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
SDX enable
direct and quick control
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
of traffic redirection
!"#!
!"#$
%&'()&#!"#*
!"#+
!"#!
*
+
)
*
)
+
!"#!!"#$
!"#$ !"#+
!"#$%&'(+
!"#$%&'()
192.0.1.2
!"#$%&'()&**+)
*
192.0.2.0/24
+
%&'()&#!"#*
%&'()&#!
!"#+
-#$./.$0"1()!(2&1.3.45
192.0.1.1
C assigns one IP address per-#$./.$0"1()!(2&1.3.45
service !"#!
!"#$%&'()
!"#$%&'(*
!"#$%&'(,
taken from a service prefix
DC1
!"#+
,
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
*
+
)
*
,
,
6
!"#$
,&62&5.74(81&9:;014(4#7;.45
192.0.1.3
+!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
* )
) *,
, !"#$+
!"#!
!"#+
!"#$%&'(*
!"#$%&'(,
192.0.1.0/24
!"#$%&'()&**+)
service
prefix
+ *
)
%&'()&#!"#*
,&62&5.74(81&9:;0
)
, +
,
-#$./.$0"1()!(2&1.3.45
-#$./.$0"1()!(2&1.3.45
!"#$%&'()
!"#$%&'(*
!"#$%&'(*
!"#$%&'(+
!"#$%&'(,
!"#$%&'(,
)
!"#$%&'()
*
+
)
*
+
,
,#-$!./(01/'2$345)/0
!"#$%&'()
!"#$%&'
,
,#-$!./(01/'2$345)/0
!"#$%&'()&**+)
!"#$%&'()&**+)
6
!"#$%&'(+
-#$./.$0"1()!(2&1.3.45
!"#$%&'(*
!"#$%&'(,
!"#$%&'()&**+)
,&62&5.74(81&9:;014(4#7;.45
,&62&5.74(81&9:;014(4#7;.45
,&62&5.74(81&9:;014(4#7;.45
7
7
DC2
%
6
,#-$!./(01/'2$345)/0
,#-$!./(01/'2$345)/0
6,#-$!./(01/'2$345)/0
6
<&074(!4;/4;
<&074(!4;/4;
7
192.0.3.0/24
%
<&074(!4;/4;
71
72
%
<&074(!4;/4;
<&074(!4;/4;
%
%
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
SDX enable
direct and quick control
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
of traffic redirection
!"#!
!"#$
%&'()&#!"#*
!"#+
!"#!
*
+
)
*
!"#$
!"#+
)
+
,
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
*
+
)
*
,
,
+
%&'()&#!"#*
%&'()&#!
!"#+
-#$./.$0"1()!(2&1.3.45
192.0.1.1
-#$./.$0"1()!(2&1.3.45
C announces the service prefix
!"#!
!"#$%&'()
!"#$%&'(*
!"#$%&'(,
directly from the IXP
!"#!!"#$
!"#$ !"#+
!"#$%&'(+
!"#$%&'()
192.0.1.2
!"#$%&'()&**+)
!"#$%&'(*
!"#$%&'(,
192.0.1.0/24
!"#$%&'()&**+)
*
192.0.2.0/24
DC1
6
,&62&5.74(81&9:;014(4#7;.45
192.0.1.3
+!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
* )
) *,
, !"#$+
!"#!
!"#+
+ *
)
%&'()&#!"#*
,&62&5.74(81&9:;0
)
, +
,
-#$./.$0"1()!(2&1.3.45
-#$./.$0"1()!(2&1.3.45
!"#$%&'()
!"#$%&'(*
!"#$%&'(*
!"#$%&'(+
!"#$%&'(,
!"#$%&'(,
)
!"#$%&'()
*
+
)
*
+
,
,#-$!./(01/'2$345)/0
!"#$%&'()
!"#$%&'
,
,#-$!./(01/'2$345)/0
!"#$%&'()&**+)
!"#$%&'()&**+)
6
!"#$%&'(+
-#$./.$0"1()!(2&1.3.45
!"#$%&'(*
!"#$%&'(,
192.0.1.0/24
!"#$%&'()&**+)
,&62&5.74(81&9:;014(4#7;.45
,&62&5.74(81&9:;014(4#7;.45
,&62&5.74(81&9:;014(4#7;.45
7
7
DC2
%
6
,#-$!./(01/'2$345)/0
,#-$!./(01/'2$345)/0
6,#-$!./(01/'2$345)/0
6
<&074(!4;/4;
<&074(!4;/4;
7
192.0.3.0/24
%
<&074(!4;/4;
71
72
%
<&074(!4;/4;
<&074(!4;/4;
%
%
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
SDX enable
direct and quick control
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
of traffic redirection
!"#!
!"#$
%&'()&#!"#*
!"#+
!"#!
*
+
)
*
!"#$
!"#+
)
+
,
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
*
+
)
*
C installs a policy to direct requests
to
a
given
service
,
-#$./.$0"1()!(2&1.3.45
,
!"#$%&'()replica!"#$%&'(*
to the appropriate
based on
+
%&'()&#!"#*
%&'()&#!
!"#+
-#$./.$0"1()!(2&1.3.45
!"#!
!"#!!"#$
!"#$ !"#+
!"#$%&'(,
the
client’s IP!"#$%&'(+
address
!"#$%&'()
!"#$%&'(*
!"#$%&'(,
!"#$%&'()&**+)
!"#$%&'()&**+)
*
,&62&5.74(81&9:;014(4#7;.45
+!"#$%&'()*+(,-.$#&/$"01(2,)3.4(5"36.(07(8+9:
* )
) *,
, !"#$+
!"#!
!"#+
+ *
)
%&'()&#!"#*
,&62&5.74(81&9:;0
)
, +
,
-#$./.$0"1()!(2&1.3.45
-#$./.$0"1()!(2&1.3.45
!"#$%&'()
!"#$%&'(*
!"#$%&'(*
!"#$%&'(+
!"#$%&'(,
!"#$%&'(,
)
!"#$%&'()
!"#$%&'
match(dstip=192.0.1.1) >>
,#-$!./(01/'2$345)/0
6
,#-$!./(01/'2$345)/0
!"#$%&'()&**+)
!"#$%&'()&**+)
6
DC1
(match(srcip=0.0.0.0/1) >>
!"#$%&'()&**+)
,&62&5.74(81&9:;014(4#7;.45
,&62&5.74(81&9:;014(4#7;.45
(match(dstip=192.0.1.1) >> mod(dstip=192.0.0.161)) +
mod(dstip=192.0.2.161)) +
(match(srcip=192.0.1.2) >> mod(dstip=192.0.0.139)) +
7
(match(srcip=128.0.0.0/1) >>
7
(match(srcip=192.0.1.3) >> mod(dstip=192.0.0.111))
,#-$!./(01/'2$345)/0
6
%
%
mod(dstip=192.0.3.139))
,#-$!./(01/'2$345)/0
,#-$!./(01/'2$345)/0
6
6
<&074(!4;/4;
DC2
<&074(!4;/4;
7
...
*
+
)
*
+
,
,
!"#$%&'()
-#$./.$0"1()!(2&1.3.45
!"#$%&'(*
!"#$%&'(,
!"#$%&'(+
,&62&5.74(81&9:;014(4#7;.45
%
<&074(!4;/4;
71
DC3
72
%
<&074(!4;/4;
<&074(!4;/4;
%
SDX enable direct and quick control
of traffic redirection
SDX load-balancing is
fast
no more problem due to DNS caching
flexible
any load-balancing algorithm can be used
efficient
based on the actual client IP address
Novel Applications for a
SDN-enabled Internet Exchange Point
Inbound Traffic Engineering
Upstream DoS blocking
Wide-area load balancing
We have running code
as well as a first deployment site
We have implemented a first SDX controller prototype
which supports policies composition
We have partnered with a large regional IXP in Atlanta
which hosts many large content providers such as Akamai
Ping me if you are interested in knowing more
Several challenges remain
We need authentication mechanisms to validate policies
e.g., using RPKI
We need “access-lists” to constrain the policies
e.g., limiting the capabilities available to each participant
We need to make the platform scalable
as SDN devices currently support a relatively small # of rules
Novel Applications for a
SDN-enabled Internet Exchange Point
Laurent Vanbever
Laurent Vanbever
http://vanbever.eu
SDN Research Group, IETF87
July, 29 2013

Similar documents