From your DHCP logs actually seems that both discover and offer packets processed without tag which looks correct. I’ve tried the similar configuration on VyOS 1.3.0-rc6:
interfaces {
ethernet eth0 {
address dhcp
hw-id 50:06:00:08:00:00
}
ethernet eth1 {
address 192.168.10.1/24
hw-id 50:06:00:08:00:01
vif 20 {
address 192.168.20.1/24
}
vif 30 {
address 192.168.30.1/24
}
vif 40 {
address 192.168.40.1/24
}
}
ethernet eth2 {
hw-id 50:06:00:08:00:02
}
ethernet eth3 {
hw-id 50:06:00:08:00:03
}
loopback lo {
}
}
service {
dhcp-server {
shared-network-name IOT {
authoritative
subnet 192.168.30.0/24 {
default-router 192.168.30.1
dns-server 192.168.30.1
domain-name camera.home
ntp-server 192.168.30.1
range 0 {
start 192.168.30.50
stop 192.168.30.250
}
}
}
shared-network-name camera {
authoritative
subnet 192.168.20.0/24 {
default-router 192.168.20.1
dns-server 192.168.20.1
domain-name camera.home
ntp-server 192.168.20.1
range 0 {
start 192.168.20.50
stop 192.168.20.250
}
}
}
shared-network-name guest {
authoritative
subnet 192.168.40.0/24 {
default-router 192.168.40.1
dns-server 192.168.40.1
domain-name camera.home
lease 300
ntp-server 192.168.40.1
range 0 {
start 192.168.40.50
stop 192.168.40.250
}
}
}
shared-network-name lan {
authoritative
subnet 192.168.10.0/24 {
default-router 192.168.10.1
dns-server 192.168.10.1
domain-name camera.home
ntp-server 192.168.10.1
range 0 {
start 192.168.10.50
stop 192.168.10.250
}
}
}
}
}
Everything works as expected, non tagged packets processed on 192.168.10.0/24 subnet and vlan tag 40 packets are processed on 192.168.40.0/24 subnet:
Aug 26 11:09:22 vyos dhcpd[1639]: DHCPDISCOVER from 50:06:00:0a:00:00 via eth1.40
Aug 26 11:09:23 vyos dhcpd[1639]: DHCPOFFER on 192.168.40.52 to 50:06:00:0a:00:00 (DESKTOP-F0VGSTR) via eth1.40
Aug 26 11:09:23 vyos dhcpd[1639]: DHCPREQUEST for 192.168.40.52 (192.168.40.1) from 50:06:00:0a:00:00 (DESKTOP-F0VGSTR) via eth1.40
Aug 26 11:09:23 vyos dhcpd[1639]: DHCPACK on 192.168.40.52 to 50:06:00:0a:00:00 (DESKTOP-F0VGSTR) via eth1.40
Aug 26 11:11:53 vyos dhcpd[1639]: DHCPREQUEST for 192.168.40.52 from 50:06:00:0a:00:00 (DESKTOP-F0VGSTR) via eth1.40
Aug 26 11:11:53 vyos dhcpd[1639]: DHCPACK on 192.168.40.52 to 50:06:00:0a:00:00 (DESKTOP-F0VGSTR) via eth1.40
Aug 26 11:14:23 vyos dhcpd[1639]: DHCPREQUEST for 192.168.40.52 from 50:06:00:0a:00:00 (DESKTOP-F0VGSTR) via eth1.40
Aug 26 11:14:23 vyos dhcpd[1639]: DHCPACK on 192.168.40.52 to 50:06:00:0a:00:00 (DESKTOP-F0VGSTR) via eth1.40
Aug 26 11:14:41 vyos dhcpd[1639]: DHCPDISCOVER from 00:50:06:00:0b:00 via eth1
Aug 26 11:14:42 vyos dhcpd[1639]: DHCPOFFER on 192.168.10.50 to 00:50:06:00:0b:00 (user-virtual-machine) via eth1
Aug 26 11:14:42 vyos dhcpd[1639]: DHCPREQUEST for 192.168.10.50 (192.168.10.1) from 00:50:06:00:0b:00 (user-virtual-machine) via eth1
Aug 26 11:14:42 vyos dhcpd[1639]: DHCPACK on 192.168.10.50 to 00:50:06:00:0b:00 (user-virtual-machine) via eth1
Aug 26 11:16:53 vyos dhcpd[1639]: DHCPREQUEST for 192.168.40.52 from 50:06:00:0a:00:00 (DESKTOP-F0VGSTR) via eth1.40
Aug 26 11:16:53 vyos dhcpd[1639]: DHCPACK on 192.168.40.52 to 50:06:00:0a:00:00 (DESKTOP-F0VGSTR) via eth1.40
Aug 26 11:19:23 vyos dhcpd[1639]: DHCPREQUEST for 192.168.40.52 from 50:06:00:0a:00:00 (DESKTOP-F0VGSTR) via eth1.40
Aug 26 11:19:23 vyos dhcpd[1639]: DHCPACK on 192.168.40.52 to 50:06:00:0a:00:00 (DESKTOP-F0VGSTR) via eth1.40