SlideShare a Scribd company logo
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 overlay
o RINA as a substrate
o 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
Border
router
Border
router
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
Gateway
application
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) -> fd
open() -> 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
Gateway
application
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

More Related Content

The hague rina-workshop-interop-deployment_vincenzo

  • 1. RINA interoperability with the Internet Vincenzo Maffione, Gino Carrozzo (Nextworks) SDN & OpenFlow World Congress The Hague (NL) – 11-14 October 2016 1/6
  • 2. RINA and the Internet: two practical issues 1. How do we deploy RINA together with the Internet? ● Three solutions: o RINA as an overlay o RINA as a substrate o RINA/TCP gateways 2. How do we port existing network applications to RINA? ● A POSIX-like API for RINA 2/6
  • 3. 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 Border router Border router Server host Client host
  • 4. 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
  • 5. 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 Gateway application RINA host RINA applic. TCP applic. TCP/IP network TCP connection TCP/IP host
  • 6. 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) -> fd open() -> fd register(fd, name) flow_accept(fd1) -> (fd2,name)
  • 7. 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 Gateway application 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