The hague rina-workshop-interop-deployment_vincenzo
-
Upload
ict-pristine -
Category
Internet
-
view
189 -
download
0
Transcript of The hague rina-workshop-interop-deployment_vincenzo
RINA interoperability with the Internet
Vincenzo Maffione, Gino Carrozzo (Nextworks)SDN & OpenFlow World Congress
The Hague (NL) – 11-14 October 2016
1/6
RINA and the Internet: two practical issues
1. How do we deploy RINA together with the Internet?● Three solutions:
o RINA as an overlayo RINA as a substrateo RINA/TCP gateways
2. How do we port existing network applications to RINA?● A POSIX-like API for RINA
2/6
RINA as an overlay● Shim DIFs wrap legacy technologies
○ Shim over Ethernet○ Shim over UDP (or TCP)
● We can wrap the Internet in a shim DIF over UDP● Pro: RINA applications benefit from QoS, mobility, security, …● Con: Applications need to be ported to RINA
3/6
A
InternetEthernet Shim DIFs
B
Shim DIF over UDP
Ethernet Shim DIFs
RINA network
RINA network
Banking DIF
Borderrouter
Borderrouter
Server host
Client host
RINA as a substrate● Adapter applications to tunnel IP traffic through RINA flows
○ TUN/TAP software devices used to intercept IP traffic ● Pro: Unmodified TCP/IP (socket) applications can run over RINA● Con: Tunneling introduces overhead (latency, CPU cycles)● Applications indirectly benefit from RINA (QoS, security, …) → limitations
4/6
app1
DIF
Adapter
Lower DIFs
Host 1
TAP
app2
Adapter
Host 2
TAP
app3
Adapter
Host 3
TAP
RINA/TCP gateways● Gateway applications to forward traffic between TCP sockets and RINA flows● Pro: TCP clients can talk with RINA servers (and the other way around)● Pro: Applications benefit from RINA● Con: Forwarding introduces overhead● Con: Client or server needs to be ported to RINA
5/6
RINA network(Arbitrary composition of DIFs)
Gateway host
Gatewayapplicatio
n
RINA host
RINA applic.
TCP applic.
TCP/IP network
TCP connection
TCP/IP host
Porting applications to RINA● We define an API that can be easily mapped to the socket API
○ Yet empowered with QoS capabilities● RINA flows accessed through file descriptors
6/6
accept(fd1) -> (fd2, addr)
listen(fd)
bind(fd, addr)
connect(fd, addr)
socket() -> fd flow_alloc(name, qos) -> fdopen() -> fd
register(fd, name)
flow_accept(fd1) -> (fd2,name)
DEMO● Dropbear SSH client/server and nginx web server ported to RINA using a POSIX-like
API○ Small patches (100-400 lines of code)
● Connect to a Dropbear SSH server running over RINA● Start nginx web server over RINA● Use a normal browser to access web content served by RINA web server
7/6
VM B
Gatewayapplicatio
n
VM A
nginx web server
Chromium
browserTCP
connections
Laptop
openssh client
Dropbear ssh server
n.1.DIF (normal DIF)
e.1.DIF (shim DIF over Ethernet)
RINA flows