Hi,

I have set up an OpenBSD 5.9 machine to act as a router/firewall to selectively 
forward traffic between two subnets of its interfaces vic0 and vic1:

               ,-----------,
vic0 ---+ forwarder +--- vic1
        `-----------'

I would like to create a read-only monitoring span port vic2 that would receive 
all traffic that appears on either interface:

               ,-----------,
vic0 -+-+ forwarder +-+- vic1
      | `-----------' |
      |                             |
           `--->|--+--|<---'
              |
                           |vic2

(In the diagram above, the ->|- elements allow traffic in one direction only, 
as in "block out" pf rules.)

I have attempted to implement this using a bridge with vic0 and vic1 as members 
and vic2 as the span port; however the span interface only receives a subset of 
traffic because of pf filtering applied by the firewall (the bridge is 
filtered). I have also tried more complex designs with per-interface bridges.


The only way I could get this to work is by creating a separate pair of 
interfaces (one for each subnet) and using them in the bridge:

        ,-----------,
vic0 ---+ forwarder +--- vic1
        `-----------'

vic3 ----->|--+--|<----- vic4
                           |
              |vic2

Even though this method works (but causes further problems with loops), I would 
like to use a simpler/idiomatic approach, which almost certainly exists.


Apart from bridge(4) I also experimented with trunk(4) using broadcast 
protocol, but the trunk device did not receive all packets either (it was 
mostly silent).

I am aware that I could run two instances of the monitoring application (one 
for each interface), but would like to avoid that if possible.

I have researched the internet and man pages and at the moment do not have any 
further ideas.

Please let me know what you think.

Thanks,
Igor

Reply via email to