Br recieves pkg with own addr as source

Greetings,

I'm using self built OpenWrt 24.10-SNAPSHOT r28308-c06d4df974 on a vm with eth0 and eth1 as virtio pci nics from the host.
eth0 is the connector to the host.
the connection on the host keeps getting interrupted, the router's log is filled with this error: br-lan: received packet on eth0 with own address as source address (addr:52:54:00:a7:79:6b, vlan:0)
ip a output is this:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host proto kernel_lo 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br-lan state UP group default qlen 1000
    link/ether 52:54:00:a7:79:6b brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br-lan state UP group default qlen 1000
    link/ether 52:54:00:53:1c:6b brd ff:ff:ff:ff:ff:ff
4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether d0:50:99:9a:67:22 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::d250:99ff:fe9a:6722/64 scope link proto kernel_ll 
       valid_lft forever preferred_lft forever
5: eth3: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq master br-lan state DOWN group default qlen 1000
    link/ether 74:da:38:c2:70:f4 brd ff:ff:ff:ff:ff:ff
6: eth4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br-lan state UP group default qlen 1000
    link/ether 74:da:38:ff:3e:d1 brd ff:ff:ff:ff:ff:ff
7: eth5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br-lan state UP group default qlen 1000
    link/ether 74:da:38:c2:61:55 brd ff:ff:ff:ff:ff:ff
8: eth6: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq master br-lan state DOWN group default qlen 1000
    link/ether 74:da:38:c2:61:5c brd ff:ff:ff:ff:ff:ff
9: br-lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 14:cc:20:1b:60:2b brd ff:ff:ff:ff:ff:ff
    inet 172.23.179.1/24 brd 172.23.179.255 scope global br-lan
       valid_lft forever preferred_lft forever
    inet6 fdab:9802:eb52::1/60 scope global noprefixroute 
       valid_lft forever preferred_lft forever
    inet6 fe80::16cc:20ff:fe1b:602b/64 scope link proto kernel_ll 
       valid_lft forever preferred_lft forever
10: phy0-ap0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-lan state UP group default qlen 1000
    link/ether 14:cc:20:1b:60:2b brd ff:ff:ff:ff:ff:ff
11: pppoe-wan: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1492 qdisc fq_codel state UNKNOWN group default qlen 3
    link/ppp 
    inet xxx.xxx.xxx.xxx peer xxx.xxx.xxx.xxx/32 scope global pppoe-wan
       valid_lft forever preferred_lft forever
    inet6 xxxx::xxxx:xxxx:xxxx:xxxx peer xxxx::xxxx:xxxx:xxxx:xxxx/128 scope link nodad 
       valid_lft forever preferred_lft forever

initially br-lan and eth0 had th same mac, I assumed that it is the cause so I changed the mac of br-lan, now the config is this:

config interface 'loopback'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'
        option device 'lo'

config globals 'globals'
        option ula_prefix 'fdab:9802:eb52::/48'

config interface 'lan'
        option proto 'static'
        option netmask '255.255.255.0'
        option ip6assign '60'
        option _orig_ifname 'eth0 wlan0'
        option _orig_bridge 'true'
        option ipaddr '172.23.179.1'
        option device 'br-lan'

config interface 'wan'
        option _orig_ifname 'eth1'
        option _orig_bridge 'false'
        option proto 'pppoe'
        option ipv6 'auto'
        option username 'aaaaa'
        option password 'bbbbb'
        option peerdns '0'
        list dns '1.1.1.1'
        list dns '1.0.0.1'
        option device 'eth2'

config interface 'wan6'
        option proto 'dhcpv6'
        option _orig_ifname 'eth1'
        option _orig_bridge 'false'
        option reqaddress 'try'
        option reqprefix 'auto'
        option device 'eth2'

config interface 'phantap'
        option proto 'static'
        option ipaddr '169.254.66.100'
        option netmask '255.255.255.254'
        option gateway '169.254.66.101'
        option ipv6 '0'
        option device 'br-phantap'

config device
        option name 'br-lan'
        option type 'bridge'
        option macaddr '14:cc:20:1b:60:2b'
        list ports 'eth0'
        list ports 'eth1'
        list ports 'eth3'
        list ports 'eth4'
        list ports 'eth5'
        list ports 'eth6'
        list ports 'eth7'
        list ports 'wan0'

config device
        option name 'br-phantap'
        option type 'bridge'

I've looked into old topics with the same issue but none seems to be relevant
any ideas how to handle this?

The syntax in your config file looks really unusual and possibly invalid. Was it carried from previous versions of OpenWrt?

What fo you see in ubus call system board ?

Network is looped somewhere, run tcpdump in host side of virtio while host does various arping combos?

root@router:~# ubus call system board
{
        "kernel": "6.6.69",
        "hostname": "router",
        "system": "Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz",
        "model": "QEMU Standard PC (Q35 + ICH9, 2009)",
        "board_name": "qemu-standard-pc-q35-ich9-2009",
        "rootfs_type": "ext4",
        "release": {
                "distribution": "OpenWrt",
                "version": "24.10-SNAPSHOT",
                "revision": "r28308-c06d4df974",
                "target": "x86/64",
                "description": "OpenWrt 24.10-SNAPSHOT r28308-c06d4df974",
                "builddate": "1736145908"
        }
}

I think it was, should I revert to default settings and reconfigure?

You can make anew vm, unpower old and start new.

Yes, what's there appears to be completely wrong for modern OpenWrt.

1 Like

will reconfigure

1 Like

@psherman
reconfigued, same behavior, here are so,e outputs:

root@OpenWrt:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host proto kernel_lo 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br-lan state UP group default qlen 1000
    link/ether 52:54:00:a7:79:6b brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br-lan state UP group default qlen 1000
    link/ether 52:54:00:53:1c:6b brd ff:ff:ff:ff:ff:ff
4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether d0:50:99:9a:67:22 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::d250:99ff:fe9a:6722/64 scope link proto kernel_ll 
       valid_lft forever preferred_lft forever
5: eth3: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq master br-lan state DOWN group default qlen 1000
    link/ether 74:da:38:c2:70:f4 brd ff:ff:ff:ff:ff:ff
6: eth4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br-lan state UP group default qlen 1000
    link/ether 74:da:38:ff:3e:d1 brd ff:ff:ff:ff:ff:ff
7: eth5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br-lan state UP group default qlen 1000
    link/ether 74:da:38:c2:61:55 brd ff:ff:ff:ff:ff:ff
8: eth6: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq master br-lan state DOWN group default qlen 1000
    link/ether 74:da:38:c2:61:5c brd ff:ff:ff:ff:ff:ff
9: br-lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 14:cc:20:1b:60:2b brd ff:ff:ff:ff:ff:ff
    inet 172.23.179.1/24 brd 172.23.179.255 scope global br-lan
       valid_lft forever preferred_lft forever
10: phy0-ap0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-lan state UP group default qlen 1000
    link/ether 14:cc:20:1b:60:2b brd ff:ff:ff:ff:ff:ff
11: pppoe-wan: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1492 qdisc fq_codel state UNKNOWN group default qlen 3
    link/ppp 
    inet xxx.xxx.xxx.xxx peer xxx.xxx.xxx.xxx/32 scope global pppoe-wan
       valid_lft forever preferred_lft forever
    inet6 xxxx::xxxx:xxxx:xxxx:xxxx peer xxxx::xxxx:xxxx:xxxx:xxxx/128 scope link nodad 
       valid_lft forever preferred_lft forever
root@OpenWrt:~# cat /etc/config/network 

config interface 'loopback'
        option device 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config globals 'globals'
        option ula_prefix 'fda9:1594:56c8::/48'

config device
        option name 'br-lan'
        option type 'bridge'
        list ports 'eth0'
        list ports 'eth1'
        list ports 'eth3'
        list ports 'eth4'
        list ports 'eth5'
        list ports 'eth6'
        option macaddr '14:cc:20:1b:60:2b'
        option ipv6 '0'

config interface 'lan'
        option device 'br-lan'
        option proto 'static'
        option ipaddr '172.23.179.1'
        option netmask '255.255.255.0'
        option ip6assign '60'

config interface 'wan'
        option device 'eth2'
        option proto 'pppoe'
        option username 'xxxxxx'
        option password 'xxxxxxxxxxxxxxxxx'
        option ipv6 'auto'
        option keepalive '0 1'
root@OpenWrt:~# dmesg | grep -c "br-lan: received packet on eth0"
41

You need to dig up loop/reflector outside openwrt.

mot sure I follow, how can I do that?

like told in the beginning?

what can count as arping combos?

the plot thickens, 52:54:00:a7:79:6b is the mac addr for the device which connects the host to the vm. it is defined to 172.23.179.3
if I try to ssh to 172.23.179.3 via any other system in the lan which isn't the router addr, I get no output. looks like it is unreachable
however, if I ssh from a machine to the router and try to ssh to 172.23.179.3
from there it works...

arping , the command, sends arp requests.... read manual and fix your network loop.

now I understand, thanks.
arping from two different systems ended up with timeout when tcpdump showed the arping in the router so not sure how to continue, that said, using tcpdump I found that eth0 and eth4 are showing the exact same traffic.
eth0 is the virtual nic and eth4 is a physical one
will try to look at the connections to findout who is connected to eth4

You can shut down interfaces that you cannot determine what they are connected to. Than sqitch them back on.