Understanding Dynamic Routing on Fast Data Plane with VPP and BIRD

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.


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

Related