Dynamic Routing on Fast Data Plane with VPP and BIRD

 
Dynamic Routing
on a Fast Data
Plane
 
Jeff Shaw | FD.io Mini Summit Sep 2016
 
V
P
P
 
A fast data plane
Packets traverse a graph and are dropped, consumed, or forwarded.
Routing happens by consulting the FIB
Configured by CLI, plugins, or the control plane API (C, Java, Python)
 
https://wiki.fd.io/view/VPP
 
D
y
n
a
m
i
c
 
R
o
u
t
i
n
g
 
BGP, RIP, OSPF, etc.
B
IRD 
I
nternet 
R
outing 
D
aemon (BIRD)
http://bird.network.cz/
 
S
o
c
k
e
t
s
 
socket (AF_NETLINK, SOCK_RAW, NETLINK_ROUTE)
 
socket (AF_INET, SOCK_STREAM, IPPROTO_TCP)
VPP
 
BIRD
 
v
p
p
s
b
/
r
o
u
t
e
r
librtnl
fib
router plugin
tap-0
eth0
tap-1
eth1
phys0
phys1
 
x-
connect
 
Local,
Broadcast, and
Multicast traffic
 
listen
 
netlink
 
VPP
 
Layer 3 Forwarding
BIRD
 
Linux*
 
add/del
 
sockets
 
*Other names and brands may be claimed as the property of others
 
v
p
p
s
b
/
r
o
u
t
e
r
 
Router plugin
creates a tap
for each data
plane interface
Injects locally
destined, broad
and multicast
traffic to be
processed by
the host stack
librtnl
fib
router plugin
tap-0
eth0
tap-1
eth1
phys0
phys1
 
x-
connect
 
Local,
Broadcast, and
Multicast traffic
 
listen
 
netlink
 
VPP
 
Layer 3 Forwarding
BIRD
 
Linux*
 
add/del
 
sockets
 
v
p
p
s
b
/
r
o
u
t
e
r
 
BIRD receives
and processes
traffic using
sockets on the
taps
Uses Netlink to
interact with
the Linux*
network stack
librtnl
fib
router plugin
tap-0
eth0
tap-1
eth1
phys0
phys1
 
x-
connect
 
Local,
Broadcast, and
Multicast traffic
 
listen
 
netlink
 
VPP
 
Layer 3 Forwarding
BIRD
 
Linux*
 
add/del
 
sockets
 
v
p
p
s
b
/
r
o
u
t
e
r
 
Router plugin
listens for
Netlink addr,
link, neigh, and
route messages
Mirror
configuration
onto VPP’s fib
librtnl **
fib
router plugin
tap-0
eth0
tap-1
eth1
phys0
phys1
 
x-
connect
 
Local,
Broadcast, and
Multicast traffic
 
listen
 
netlink
 
VPP
 
Layer 3 Forwarding
BIRD
 
Linux*
 
add/del
 
sockets
 
** https://git.fd.io/cgit/vppsb/tree/netlink/
 
v
p
p
s
b
/
r
o
u
t
e
r
 
Remote traffic
is forwarded by
VPP without
intervention
librtnl
fib
router plugin
tap-0
eth0
tap-1
eth1
phys0
phys1
 
x-
connect
 
Local,
Broadcast, and
Multicast traffic
 
listen
 
netlink
 
VPP
 
Layer 3 Forwarding
BIRD
 
Linux
 
add/del
 
sockets
 
OSPF
 
BGP
 
VPP + Netlink/Router + BIRD can be combined to build dynamic, interconnected networks.
 
VPP
 
VPP
 
VPP
 
VPP
 
Fido
 
D
e
m
o
 
T
o
p
o
l
o
g
y
 
11
Application
10.1.0.1
Application
10.2.0.1
 
BGP
Application
10.3.0.1
Application
10.4.0.1
 
192.168.0.0/24
Virtual Machine
Virtual Machine
 
D
e
m
o
 
T
o
p
o
l
o
g
y
 
12
Application
10.1.0.1
Application
10.2.0.1
 
BGP
Application
10.3.0.1
Application
10.4.0.1
 
192.168.0.0/24
web-server
web-server
web-server
mongodb
Slide Note
Embed
Share

Explore the concept of dynamic routing on a fast data plane featuring VPP (Vector Packet Processing) and BIRD (Internet Routing Daemon). Learn how packets traverse a graph, routing mechanisms like BGP, RIP, OSPF, and how sockets and plugins interact to forward traffic efficiently. Discover how VPP and BIRD work together to process traffic, create interfaces, listen for messages, and interact with the network stack for optimal Layer 3 forwarding.

  • Dynamic Routing
  • Fast Data Plane
  • VPP
  • BIRD
  • Routing Mechanisms

Uploaded on Sep 22, 2024 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

E N D

Presentation Transcript


  1. Dynamic Routing on a Fast Data Plane Jeff Shaw | FD.io Mini Summit Sep 2016

  2. VPP VPP A fast data plane Packets traverse a graph and are dropped, consumed, or forwarded. Routing happens by consulting the FIB Configured by CLI, plugins, or the control plane API (C, Java, Python) https://wiki.fd.io/view/VPP

  3. Dynamic Routing Dynamic Routing BGP, RIP, OSPF, etc. BIRD Internet Routing Daemon (BIRD) http://bird.network.cz/

  4. Sockets Sockets socket (AF_NETLINK, SOCK_RAW, NETLINK_ROUTE) VPP BIRD socket (AF_INET, SOCK_STREAM, IPPROTO_TCP)

  5. vppsb vppsb/router /router BIRD Linux* sockets netlink eth0 eth1 VPP tap-0 tap-1 listen router plugin librtnl add/del Local, Broadcast, and Multicast traffic x- connect fib phys0 phys1 Layer 3 Forwarding *Other names and brands may be claimed as the property of others

  6. vppsb vppsb/router /router Router plugin creates a tap for each data plane interface Injects locally destined, broad and multicast traffic to be processed by the host stack BIRD Linux* sockets netlink eth0 eth1 VPP tap-0 tap-1 listen router plugin librtnl add/del Local, Broadcast, and Multicast traffic x- connect fib phys0 phys1 Layer 3 Forwarding

  7. vppsb vppsb/router /router BIRD receives and processes traffic using sockets on the taps Uses Netlink to interact with the Linux* network stack BIRD Linux* sockets netlink eth0 eth1 VPP tap-0 tap-1 listen router plugin librtnl add/del Local, Broadcast, and Multicast traffic x- connect fib phys0 phys1 Layer 3 Forwarding

  8. vppsb vppsb/router /router Router plugin listens for Netlink addr, link, neigh, and route messages Mirror configuration onto VPP s fib BIRD Linux* sockets netlink eth0 eth1 VPP tap-0 tap-1 listen router plugin librtnl ** add/del Local, Broadcast, and Multicast traffic x- connect fib phys0 phys1 Layer 3 Forwarding ** https://git.fd.io/cgit/vppsb/tree/netlink/

  9. vppsb vppsb/router /router Remote traffic is forwarded by VPP without intervention BIRD Linux sockets netlink eth0 eth1 VPP tap-0 tap-1 listen router plugin librtnl add/del Local, Broadcast, and Multicast traffic x- connect fib phys0 phys1 Layer 3 Forwarding

  10. VPP VPP OSPF BGP VPP VPP VPP + Netlink/Router + BIRD can be combined to build dynamic, interconnected networks. Fido

  11. Demo Topology Demo Topology Application 10.3.0.1 Application 10.1.0.1 192.168.0.0/24 BGP Application 10.2.0.1 Application 10.4.0.1 11

  12. Demo Topology Demo Topology Virtual Machine Virtual Machine Application 10.3.0.1 Application 10.1.0.1 web-server web-server 192.168.0.0/24 BGP Application 10.2.0.1 Application 10.4.0.1 mongodb web-server 12

More Related Content

giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#