Provavelmente, a maneira mais fácil de fazer isso é usar a rede em ponte e você separa as redes por sub-redes. Por exemplo:
- Ubuntu1: 192.168.100.x / 24 (LAN)
- IPFire1: 192.168.110.x / 24 (WAN) / 192.168.100.x / 24 (LAN)
- IPFire2: 192.168.120.x / 24 (WAN) / 192.168.200.x / 24 (LAN)
- Ubuntu2: 192.168.200.x / 24 (LAN)
- IPFire3: 192.168.110.x / 24 (LAN1) / 192.168.120.x / 24 (LAN2) e se você quiser uma WAN também.
Se você quiser separar fisicamente as redes também, você tem a opção de usar somente host e NAT para as diferentes sub-redes, ou uma combinação delas. Você terá que usar sub-redes separadas em qualquer caso, o que significa que você não pode usar 192.168.100.x / 24 para o seu Ubuntu1 e 2. Em um ambiente real você poderia fazer isso se as redes fossem separadas pela internet, mas seu host precisa ser capaz de conversar com ambos em redes separadas. Se você usasse a mesma sub-rede, causaria problemas.
Com relação ao seu sniffer, se você conectá-lo a qualquer porta do IPFire3, verá todo o tráfego promíscuo indo e voltando entre o IPFire1 e o IPFire2.