Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add VXLAN backend #33

Open
stevefan1999-personal opened this issue Sep 7, 2023 · 1 comment
Open

Add VXLAN backend #33

stevefan1999-personal opened this issue Sep 7, 2023 · 1 comment

Comments

@stevefan1999-personal
Copy link

According to bridge
https://man7.org/linux/man-pages/man8/bridge.8.html

We can try to do

ip link add <ifaceName> type vxlan \
  id <randomID> \
  dstport <bindPort> \
  local <listenAddr>
bridge fdb append 00:00:00:00:00:00 dev vxlan100 <peer1addr> port <peer1port>
bridge fdb append 00:00:00:00:00:00 dev vxlan100 dst <peer1addr> port <peer2port>

In fact I believe this is what Calico and Flannel does behind the scene

@neocturne
Copy link
Owner

Hmm, I assume you mean to use this for connections to multiple peers using a single VXLAN interface? Would MAC address learning be handled in the kernel? It is not clear to me from the docs that 00:00:00:00:00:00 can be passed like that.

In addition, there are some design decisions of fastd that are incompatible with VXLANs:

  • Connections to multiple peers will work rather poorly behind very broken NAT implementations (fastd deliberately uses a separate UDP socket for each peer, as some NAT routers will assume UDP is 1:1 rather than 1:N; unless configured to a static port, it will also choose a new random port whenever the connection is lost, also as a workaround for some NAT routers we've seen in the wild)
  • fastd runs periodic handshakes, payload data and keepalive packets on the same UDP socket (using the control message flag in the case of L2TP). This allows fastd to detect when a connection-tracking router/firewall has dropped the flow.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants