I don't understand anything!!! It must be an bug somewhere.
If I boot with this config:
config interface 'lan'
option type 'bridge'
option ifname 'lan0 lan1 lan2 lan3 lan4.1'
option proto 'static'
[...]
config interface 'dmz'
option type 'bridge'
option ifname 'lan4.2'
option proto 'static'
[...]
Do not work, but if change the config, for example, to:
config interface 'lan'
option type 'bridge'
option ifname 'lan0 lan1 lan3 lan4'
option proto 'static'
[...]
config interface 'dmz'
option type 'bridge'
option ifname 'lan2'
option proto 'static'
[...]
Now I reload the network:
/etc/init.d/network reload
And I change the network configuration to the first configuration:
config interface 'lan'
option type 'bridge'
option ifname 'lan0 lan1 lan2 lan3 lan4.1'
option proto 'static'
[...]
config interface 'dmz'
option type 'bridge'
option ifname 'lan4.2'
option proto 'static'
[...]
Now I reload the network again:
/etc/init.d/network reload
All work ok (ping from Linux PC connected to lan0):
$ ping -c3 192.168.1.5
PING 192.168.1.5 (192.168.1.5) 56(84) bytes of data.
64 bytes from 192.168.1.5: icmp_seq=1 ttl=64 time=0.598 ms
64 bytes from 192.168.1.5: icmp_seq=2 ttl=64 time=0.576 ms
64 bytes from 192.168.1.5: icmp_seq=3 ttl=64 time=0.574 ms
--- 192.168.1.5 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2039ms
rtt min/avg/max/mdev = 0.574/0.582/0.598/0.029 ms
$ ping -c3 192.168.3.5
PING 192.168.3.5 (192.168.3.5) 56(84) bytes of data.
64 bytes from 192.168.3.5: icmp_seq=1 ttl=64 time=0.598 ms
64 bytes from 192.168.3.5: icmp_seq=2 ttl=64 time=0.576 ms
64 bytes from 192.168.3.5: icmp_seq=3 ttl=64 time=0.574 ms
--- 192.168.3.5 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2039ms
rtt min/avg/max/mdev = 0.574/0.582/0.598/0.029 ms
PS: To this workaround to work is required a kernel with CONFIG_BRIDGE_VLAN_FILTERING