IEEE International Symposium on Software Defined Systems
April 4th, 2016, Berlin, Germany
Oliver Michel, Eric Keller
Networking and Security Research Group
Policy Routing using Process-Level Identifiers IEEE International - - PowerPoint PPT Presentation
Policy Routing using Process-Level Identifiers IEEE International Symposium on Software Defined Systems April 4th, 2016, Berlin, Germany Oliver Michel, Eric Keller Networking and Security Research Group Network Policies 2 Network Policies
IEEE International Symposium on Software Defined Systems
April 4th, 2016, Berlin, Germany
Networking and Security Research Group
2
2
2
2
2
3
IP
Ethernet TCP/UDP
3
IP
Ethernet TCP/UDP
Source Destination EtherType
3
IP
Ethernet TCP/UDP
Source Destination EtherType Source Destination DSCP Protocol ECN
3
IP
Ethernet TCP/UDP
Source Destination EtherType Source Destination DSCP Protocol ECN Source Destination
Peter
cn=Peter Pan, ou=CS, o=UColorado
LDAP User
4
Peter
cn=Peter Pan, ou=CS, o=UColorado
LDAP User
4
MAC IP
Peter
cn=Peter Pan, ou=CS, o=UColorado
LDAP User
4
MAC IP
UID
Peter
cn=Peter Pan, ou=CS, o=UColorado
LDAP User
4
MAC IP
UID LDAP Controller
5
6
6
$ openssl sha1 /usr/sbin/httpd
SHA1(/usr/sbin/httpd)=5fdbdb587fce265656fd3e2960a6293262efedb7
6
Executable Fingerprint
$ openssl sha1 /usr/sbin/httpd
SHA1(/usr/sbin/httpd)=5fdbdb587fce265656fd3e2960a6293262efedb7
6
Executable Fingerprint
$ openssl sha1 /usr/sbin/httpd
SHA1(/usr/sbin/httpd)=5fdbdb587fce265656fd3e2960a6293262efedb7
Controller
7
Process Process Network Interface IP/MAC
user space
system
7
Process Process Network Interface IP/MAC Port
user space
system
7
PID Process Process Network Interface IP/MAC Port
user space
system
7
GID PID Process Process Network Interface IP/MAC Port
user space
system
7
UID GID PID Process Process Network Interface IP/MAC Port
user space
system
7
UID GID PID cgroups Process Process Network Interface IP/MAC Port
user space
system
7
UID GID PID cgroups
Process Process Network Interface IP/MAC Port
user space
system
7
UID GID PID cgroups
exe fingerprint Process Process Network Interface IP/MAC Port
user space
system
8
user space
system network
Process Process
IP Source IP Destination EtherType MAC Source MAC Destination Protocol TCP/UDP Source TCP/UDP Destination
Network Interface IP/MAC UID GID PID cgroups
exe fingerprint
8
user space
system network
Process Process
IP Source IP Destination EtherType MAC Source MAC Destination Protocol TCP/UDP Source TCP/UDP Destination
Network Interface IP/MAC UID GID PID cgroups
exe fingerprint
9
9
9
9
\ˈpər-pəl\
11
11
Distributing and configuring Policy
11
Distributing and configuring Policy
11
Tagging Packets
Distributing and configuring Policy
11
Tagging Packets
Distributing and configuring Policy Forwarding
11
Ethernet IP TCP/UDP
12
Ethernet IP TCP/UDP
12
Ethernet IP TCP/UDP
PRPL
12
Ethernet IP TCP/UDP
PRPL
0x12d4f7e3 3 2 b i t s
12
13
Process
Policy Controller Host
user domain admin domain
13
PRPL Agent
Process
Policy Controller Host
user domain admin domain
13
PRPL Agent
Process
Policy Controller Host
request communication stream user domain admin domain
13
PRPL Agent
Process
Policy Controller Host
request communication stream
user domain admin domain
13
PRPL Agent classify/mark tag/forward
configure
Process
Policy Controller Host
request communication stream
user domain admin domain
[Kangaroo INFOCOM ’10, SDN Chip SIGCOMM ’13, Intel FM6000 switch silicon]
14
PRPL token
action
0xa4..23
drop reroute
0xd3..42
[Kangaroo INFOCOM ’10, SDN Chip SIGCOMM ’13, Intel FM6000 switch silicon]
14
PRPL token
action
0xa4..23
drop reroute
0xd3..42
[Kangaroo INFOCOM ’10, SDN Chip SIGCOMM ’13, Intel FM6000 switch silicon]
14
15
15
15
15
direct transmission using PRPL
200 400 600 800 1000 1200 1400 50 100 150 200 packet size [Bytes] TCP throughput [Mbit/s]
16
17
17
17
17
18
20
21
500 servers 2000 servers 10000 servers
1 5 10 50 100 5 10 15 20 25 number of policy rules per host (log.) minimum token size [bits]
Intel FM6000 switch silicon]
22
23
24
Switch Parser Match/Action Tables Packet Metadata Egress Queues
24
L2L3.p4 Switch Parser Match/Action Tables Packet Metadata Egress Queues
24
L2L3.p4 Switch Parser Match/Action Tables Packet Metadata Egress Queues COMPILE
24
L2L3.p4 Switch Parser Match/Action Tables Packet Metadata Egress Queues COMPILE Eth VLAN IP4 IP6 TCP UDP
24
L2L3.p4 Switch Parser Match/Action Tables Packet Metadata Egress Queues COMPILE Eth VLAN IP4 IP6 TCP UDP Controller Routing Firewall NAT
24
L2L3.p4 Switch Parser Match/Action Tables Packet Metadata Egress Queues COMPILE Eth VLAN IP4 IP6 TCP UDP Controller Routing Firewall NAT
24
L2L3.p4 Switch Parser Match/Action Tables Packet Metadata Egress Queues COMPILE Eth VLAN IP4 IP6 TCP UDP Controller Routing Firewall NAT
24
Switch Parser Match/Action Tables Packet Metadata Egress Queues COMPILE Eth VLAN IP4 IP6 TCP UDP Controller Routing Firewall NAT
24
Switch Parser Match/Action Tables Packet Metadata Egress Queues COMPILE Eth VLAN IP4 IP6 TCP UDP Controller Routing Firewall NAT OF1-3.p4
24
Switch Parser Match/Action Tables Packet Metadata Egress Queues COMPILE Eth VLAN IP4 IP6 TCP UDP Controller Routing Firewall NAT OF1-3.p4
Open Flow 1.3
25
Network Policy Controller Directory Service verify existence install flow entries Gateway Switch Internet user domain admin domain PRPL Agent Process Process Socket Socket Switch request stream/
ANNOTATING PACKET STREAMS PRPL FORWARDING CONTROLLING/DISTRIBUTING POLICY
A
PRPL token
action
0xa4..23
drop reroute
0xd3..42
B C
Process Socket classify/mark annotate/forward configure
26
Ethernet Policy Token IP ... Eth PRPL TCP UDP 0xd3...42 drop 0xa4...29 reroute continue 0xa6...76 IP 10.0.1/24 10.0.2/24 1 2 Routing Table Policy Table Parsing FSM Incoming Packet
27
table prpl { reads { prpl.token : exact; } actions { _nop; _drop; forward; } size : 128; } header_type prpl_t { fields { token : 8; } } header prpl_t prpl; parser start { return parse_ethernet; } parser parse_ethernet { extract(ethernet); return parse_prpl; } parser parse_prpl { extract(prpl); return ingress; } table_set_default prpl _nop table_add prpl _nop 0x00000001 => table_add prpl _drop 0x00000002 => table_add prpl forward 0x00000001 => 4
28
iptables OUTPUT chain
1003 process policy_d2 default dev tun2 policy_54 default dev tun5 from all mark 0xd2 lookup policy_d2 routing rules
/etc/iproute2 /rt_tables
tun2 Policy Agent Network tun5 admin domain user domain