Sei que essa é uma pergunta antiga, mas para quem mais se deparar com essa aqui provavelmente é a melhor solução (na minha opinião).
Algumas pessoas sugeriram uma VLAN (rede local virtual). A idéia aqui é que você pode pegar um switch gerenciado de 24 portas e configurá-lo para que as portas 1-12 funcionem como um switch separado e as portas 13-24 funcionem como um switch separado. Portanto, depois de segregar suas portas, você atribui as portas 1-12 a VLAN ID e as portas 13-24 a segunda VLAN ID. As VLANs funcionam com a VLAN padrão (nenhuma VLAN sendo ativada) como VLAN 1. A VLAN 1 tem acesso a tudo na rede (por padrão, porque tudo é considerado conectado à VLAN 1).
Então, digamos que você tenha servidores aos quais você não deseja que os contatores tenham acesso. Colocamos todos esses servidores nas portas às quais foi atribuída a VLAN 20. Coloque também todas as estações de trabalho da sua empresa na VLAN 20. Agora crie uma VLAN de rede convidada 40. Os contratados conectariam seus computadores à VLAN 40. Como está configurada atualmente, a VLAN 40 não pode se comunicar com a VLAN 20.
Agora crie uma terceira VLAN para impressoras nas quais ambas as redes devem poder imprimir. Coloque as impressoras comuns na VLAN 30. Roteamento de configuração para que a VLAN 20 possa se comunicar com a VLAN 30 e a VLAN 40 possam se comunicar com a VLAN 30. A VLAN 20 e a VLAN 40 não podem se comunicar.
Isso lhe dará a solução que você deseja. Para fazer isso, você precisa de switches gerenciados da camada três e de configurar corretamente a marcação de VLAN, o entroncamento e o roteamento IP nos três switches da camada relacionados.
Espero que isso ajude alguém no futuro. Por favor, deixe-me saber se você tem alguma dúvida.