Hi Victor,

Thanks very much for your response.

Do you mean set next-hop on BGP with Quagga or similar applications through other NIC (not DPDK managed)?

I looked at DPVS, which uses KNI to redirect traffic to Kernel so we can use Quagga or advertise VIP. Do you think it's a better solution or implement ARP in the DPDK application directly?

Thanks.

Best wishes,
Linhua Tang


On Mon, Apr 4, 2022 at 2:00 PM Victor Detoni <victordetoni@gmail.com> wrote:
Hi Linhua,

First of all, you need to bind an IP address on NIC that DPDK manages. You can look at https://github.com/victordetoni/dpdk-l3fwd-acl this project and copy arp (line 644) and ip stack (line 2024). After that, you can set as next-hop on bgp the ip address that dpdk manages.

Maybe it's not clear yet, but dpdk is a framework that allows you to create your own network apps. Search on google bgp projects that supports bgp, quagga etc.

On Mon, Apr 4, 2022 at 7:29 AM Linhua Tang <linhua.tang.mr@gmail.com> wrote:
Hi everyone,

I'm new to DPDK, I have a question on how to announce VIP through BGP for my LB based on DPDK. 

The design looks like this:
  • I have multiple hosts (virtual machines or physical machines), every host advertising the same VIP, 10.0.0.10 for example.
  • Each LB host has two NICs, one for DPDK, one for admin purposes.
  • LB forward the packets to backend servers based on VIP configuration

Normally, I use Bird or Quagga for BGP advertising, but I don't know how to make BGP work with DPDK applications. Do I need to implement BGP within the DPDK application? It looks overkilling to me.

Looking forward to getting advice from you, or pointing me to any references.

Thanks very much.

Best wishes,
James