neocturne / fastd

Fast and Secure Tunnelling Daemon
Other
115 stars 16 forks source link

No packets received on fastd interface #30

Closed gutleib closed 1 year ago

gutleib commented 1 year ago

Hi! I have a simple installation, so far to test how fastd fits my needs: 2 Ubuntu VMs in QEMU, both with white IPs, with several vlans. The idea is to bridge those vlans on both sides with fastd tap interfaces and make a single L3 network per-vlan.

The daemons start, and as far as I see in syslog, connect successfully. I tested different MTU and cyphers - if they are different, the connection fails, so, they DO speak to each other.

But when I bridge them with existing interfaces in vlans, no traffic goes through. Even if I set an IP to fastd tap interface, they do not ping each other. The TX grows, RX stays zero. And also, is it ok that the macaddr of interfaces on both vms is the same? Can I set it manually?

neocturne commented 1 year ago

The MAC addresses might be the issue - a MAC address that is seen locally will never also be considered "remote" (which makes sense, as MAC addresses need to be unique in a single Ethernet segment or VLAN, which includes everything that is bridged together). You can try using multitap mode, which will create a separate TAP interface for each peer, and ignores MAC addresses, but this would only be for debugging - you still wouldn't get any useful traffic exchanged if your addresses aren't unique.

If you are seeing non-unique addresses at all, something weird is going on - by default, fastd doesn't set any MAC address, and Linux will generate a random address. For bridges, the addresses are derived from the port added first by default, so maybe you have a non-unique address on some other bridge port? In any case, you can just set the MAC addresses of fastd's interfaces using ip link, systemd link units, or whatever method you prefer.

gutleib commented 1 year ago

If you are seeing non-unique addresses at all, something weird is going on

Yes, that is the case: On the VM1

8: mesh-eth1: <BROADCAST,MULTICAST> mtu 1420 qdisc noop state DOWN group default qlen 1000
    link/ether de:2f:99:7e:1b:65 brd ff:ff:ff:ff:ff:ff

On the VM2

8: mesh-eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1420 qdisc fq_codel state UNKNOWN group default qlen 1000
    link/ether de:2f:99:7e:1b:65 brd ff:ff:ff:ff:ff:ff

VM's are cloned from one template, and the set of network interfaces is identical, but still, that does not explain how identical macaddr can be generated...

And yes, that was the issue, THX!