BPI-M2 Zero bridged setup problems: IP address reassigned

I started configuring small router setup using BPI, so far so good, but there are some things I cannot understand. So far, I got created bridge containing single eth0

interfaces file is as follows: allow-hotplug eth0 iface eth0 inet manual

auto br0
iface br0 inet static
    bridge_ports eth0
    address 192.168.2.1
    netmask 255.255.255.0
    gateway 192.168.2.1
    dns-nameservers <...>

br0 is created and populated normally, through brctl API.

So, br0 is assigned a static address, like 192.168.2.1, but when I restart a board, I see that both eth0 and br0 got addresses, like 192.168.1.26, that’s part of my other local network. I admit, that it may be a result of getting response to dhcp request over connected Ethernet cable, the latter was connected during reboot, but that’s strange, there is no dhcp client daemons installed, at least none, I’m aware of, dnsmasq is configured to listen solely on br0. I’m puzzeld, what other OS piece may assign and override my static addresses… It is some trick of OS loader?

Что значит “I see”? Каким образом Вы смотрите? С точки зрения внешней сети так и должно быть - интерфейс eth0 имеет адрес моста к которому подключен. Что еще из сетевых пакетов установлено? NetworkManager стоит?

ip addr list or ifconfig

Looks like NetworkManager is there. The source of problem in question was (to me) rather unexpected. I used source-directory include in interfaces file, while included file had dots in its name, which, in turn, rendered it non-readable by interfaces loader.

Another puzzle was about bond0, ifb0|1, tunl0 interfaces, which were there from the start. Seems that some software creates these, but I do not know which one… Is there any way to get rid of those?

What OS you using?

bond0 ifb0|1 and tunl0 are virtual interfaces, in some cases they created by the kernel for different traffic control solutinos.

And about dots in name - strange problem. I usually using debian, and there by default interfaces looks like: source /etc/network/interfaces.d/* So it possible to use any legal file name AFAIK.

As for NetworkManager - you can disable or remove it to be sure that it do nothing wrong IMHO.

OS is Ubuntu 16.04 Linux bpi-iot-ros-ai 4.4.55-BPI-M2Z-Kernel #1 SMP PREEMPT Sun Apr 26 21:01:50 HKT 2020 armv7l armv7l armv7l GNU/Linux

As for dots in includes, processed by source-directory directive, man states the following:

Similarly, “source-directory” keyword is used to source multiple files at once, without specifying them individually or using shell globs. Additionally, when “source-directory” is used, names of the files are checked to match the following regular expression: ^[a-zA-Z0-9_-]+$ . In other words, the names must consist entirely of ASCII upper- and lower-case letters, ASCII digits, ASCII underscores, and ASCII minus-hyphens.

Apparently, it’s not the case, if individual include file is specified by source directive.