> > It's just some name tcpdump used to replace the IP address of one of the > > machines, and since it's the source IP of a DHCP reply packet, it most > > likely is the IP of the DHCP server. > ok, sounds reasonable > > > > > > here is the requested dump: https://dpaste.com/849DMX9ND > > > > What I see in that dump is that the DHCP client (Mac address > > 52:54:00:5a:4c:8c, hostname "streamer" repeatedly sends the exact same > > DHCP request (6 times), and the DHCP server responds to each of these > > requests alternating between sending the response to the client's MAC > > with a destination IP already set, and to the broadcast MAC + IP > > addresses) interspersed with several ARP requests directed at the MAC > > address of the client asking who has the IP that the server just > > suggested (so it's doing something different from what I described in my > > previous message - rather than using ARP to verify that an IP isn't > > already in use prior to assigning it, it's assuming it has full > > authority over IP addresses in the broadcast domain, assigning that IP > > to the client without checking for prior use, and then sending the ARP > > request to see if the client actually decided to use it.) > > > > Eventually the client gives up (because it hasn't seen any valid DHCP > > responses) and gives itself an IP on the 169.254.0.0/16 network, then > > goes about the process of looking for other devices to connect to using > > that IP. > > > > Was this dump taken on the host of the tap device of the client > > (libreelec aka streamer)? > > here are the relevant adapters of the vm: > 4: virtsw: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 > link/ether 52:54:00:6b:1b:92 brd ff:ff:ff:ff:ff:ff > 5: virtsw-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virtsw state DOWN group default qlen 1000 > link/ether 52:54:00:6b:1b:92 brd ff:ff:ff:ff:ff:ff > 6: nic_host: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000 > link/ether fe:54:00:a7:79:6b brd ff:ff:ff:ff:ff:ff > inet 11.0.0.3/24 brd 11.0.0.255 scope global dynamic noprefixroute nic_host > valid_lft 33053sec preferred_lft 27653sec > inet6 fdab:9802:eb52::a59/128 scope global noprefixroute > valid_lft forever preferred_lft forever > inet6 fdab:9802:eb52:0:41d9:d311:10fd:e343/64 scope global mngtmpaddr noprefixroute > valid_lft forever preferred_lft forever > inet6 fe80::fc54:ff:fea7:796b/64 scope link > valid_lft forever preferred_lft forever > 7: virtsw-router: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master virtsw state UNKNOWN group default qlen 1000 > link/ether fe:54:00:53:1c:6b brd ff:ff:ff:ff:ff:ff > inet6 fe80::fc54:ff:fe53:1c6b/64 scope link > valid_lft forever preferred_lft forever > 8: virtsw-streamer: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master virtsw state UNKNOWN group default qlen 1000 > link/ether fe:54:00:5a:4c:8c brd ff:ff:ff:ff:ff:ff > inet6 fe80::fc54:ff:fe5a:4c8c/64 scope link > valid_lft forever preferred_lft forever > > the dump was taken from the host tapping onto virtsw-streamer. > > virtsw-streamer is configured as follows: > <interface type='network'> > <mac address='52:54:00:5a:4c:8c'/> > <source network='default' portid='77aae31e-5efa-4789-911c-c55b367cd695' bridge='virtsw'/> > <target dev='virtsw-streamer'/> > <model type='virtio'/> > <alias name='net0'/> > <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> > </interface> > > > If so, I can only see two options: 1) there is > > something in iptables or ebtables (or nftables, if you have that on the > > host) blocking the DHCP response packets from going out the tap > > interface, or 2) there is something in the guest itself blocking the > > traffic or preventing the packet from passing. > > > > For (1) you'd need to run "ebtables -L; iptables -S; nft list ruleset" > > and look for something suspicious. > here is what I get: > utils_server /home/igor # ebtables -L; iptables -S; nft list ruleset > The kernel doesn't support the ebtables 'filter' table. > -P INPUT ACCEPT > -P FORWARD ACCEPT > -P OUTPUT ACCEPT > -N LIBVIRT_FWI > -N LIBVIRT_FWO > -N LIBVIRT_FWX > -N LIBVIRT_INP > -N LIBVIRT_OUT > -A INPUT -j LIBVIRT_INP > -A FORWARD -j LIBVIRT_FWX > -A FORWARD -j LIBVIRT_FWI > -A FORWARD -j LIBVIRT_FWO > -A OUTPUT -j LIBVIRT_OUT > -A LIBVIRT_FWI -o virtsw -j REJECT --reject-with icmp-port-unreachable > -A LIBVIRT_FWO -i virtsw -j REJECT --reject-with icmp-port-unreachable > -A LIBVIRT_FWX -i virtsw -o virtsw -j ACCEPT > -A LIBVIRT_INP -i virtsw -p udp -m udp --dport 53 -j ACCEPT > -A LIBVIRT_INP -i virtsw -p tcp -m tcp --dport 53 -j ACCEPT > -A LIBVIRT_INP -i virtsw -p udp -m udp --dport 67 -j ACCEPT > -A LIBVIRT_INP -i virtsw -p tcp -m tcp --dport 67 -j ACCEPT > -A LIBVIRT_OUT -o virtsw -p udp -m udp --dport 53 -j ACCEPT > -A LIBVIRT_OUT -o virtsw -p tcp -m tcp --dport 53 -j ACCEPT > -A LIBVIRT_OUT -o virtsw -p udp -m udp --dport 68 -j ACCEPT > -A LIBVIRT_OUT -o virtsw -p tcp -m tcp --dport 68 -j ACCEPT > bash: nft: command not found > > what about the rest of the ports? > > > > > For (2) can you try changing both the libreelec and the DHCP server vm's > > ethernet device models from virtio to e1000? (or e1000e if they are q35 > > machinetypes)? If that works, then change one or the other back and see > > if it stops working. > > will try and report. changed the router's nic type to e1000e and the streamer's nic type to e1000, error still persists. > > > You mean so you can ssh to the client/libreelec and run tcpdump there > > agains the interface that's doing dhcp? Is tcpdump even available on > > libreelec? I know it's very limited, and has no simple facilities for > > adding new packages. If it has tcpdump though, then sure. The only > > problem is that you would probably not be able to get tcpdump running > > via that interface quick enough to see the initial boottime dhcp > > exchange; instead you'll probably need to go into the UI and bring the > > other interface down/up to trigger a new DHCP cycle. > > static tcpdump should do the trick imho. > > > > > (BTW, if everything works when the client has a static IP address, then > > that proves there is no problem related to ARP requests/responses - that > > much is required in order for even a static IP to work) > > currently I use static ip and I can ssh to the streamer from all machines on the network. > > >