Puedes crear varias subredes para separar por grupo de usuarios, pero vas a tener que usar Vlans y tu SW debe soportar manejar Vlans y poner el puerto en modo Trunk, igual me imagino que FreeBSD (pf) soporta "virtual ip", como lo hace Linux (no soy experto en packet filter ni freeBSD), pero en linux podrías hacer algo tipo eth0.1 eth0.2 eth0.3 eth0.4 (desde la misma nic) y crear varios segmentos de red con una sola tarjeta. y podrías usar por ejemplo 192.168.0.0/24 192.168.1.0/24 192.168.2.0/24 etc.. [ #ifconfig eth0:0 192.168.0.0/24 - #ifconfig eth0:1 192.168.1.0/24 - #ifconfig eth0:2 192.168.2.0/24 ]
Que NO se vean las máquinas entre sí es algo "imposible" si van a estar en la misma red, el hecho de hacerle ping a una máquina es "verse"
Si alguien sabe como virtualizar IPs en pfSense para evitar usar Vlans en caso que el SW no soporte Vlans, sería genial, de otro modo, te recomendaría instalar un servidor DHCP en linux usando virtual IPs, y que sea el linux quien maneje tu red y usas el pfSense como GW de salida a internet.
Si usas 172.16.0.0/22 tendrás un dominio de broadcast brutal, y si los terminales serán windows, goodluck ;) más aún si tienes un AD replicando políticas y haciendo echos de supervivencia :D