Only to report something that I found by trial and error (possibly it is “by design” and the issue is/was due to my lack of specific knowledge).
I used Zeroshell as a router connected to a Cisco 2950 switch (to which several WiFi Access Points are connected).
The LAN is configured for “trunk mode” and on the Cisco side there are two VLAN’s:
VLAN 1 (Native) <- this is the so-called "management" VLAN
VLAN 20 <- this is the actual "traffic/clients" VLAN
Initially I thought that I had to add to the ETH00 interface TWO VLAN’s, 1 and 20, but the VLAN 1 simply didn’t work as expected.
Then I set just the 20 VLAN as it was the one I actually needed to route traffic from, and added the IP address for the VLAN 1 to the “direct” ETH00 and everything worked as expected.
So, if you have several VLAN’s you need to add to the ETH00 all the VLAN’s sub-interface BUT the Native one (which is “directly” connected to the “main” interface ETH00).
As said, most probably this is “obvious” but it is not “intuitive”, and I found no specific docs about this.