Good morning folks, I am a little bit stumped with my firewall config and need some assistance. I have a Soekris net4501 with two interfaces connected. The sis1 interface is connected to my macbook and the sis2 interface (vlan trunk) is connected to my switch (see diagram below). I have a bridge interface (bridge0) with with vlan100, sis1 and ral0 as members. I assume this is the best way to have multiple physical interfaces in a vlan.
.-------. | | | macbook | .------.+ sis0 .---------+ |_________| | | / \_________\ | fw |+ sis1 +----* | | 802.1q trunk .----------. vlan99 (inet) !______!+ sis2 +----------------+ | switch | +------------- | !__________! +ral0 .--------. + | | vlan100 / | server | ------------* | | !________! With no rules loaded in PF everything works just fine. From my Macbook I am able to NAT outside the network and also access everything on vlan100. When I load the rules into PF I am unable to access the management IP on the switch or my server, both of which are in vlan100. It's obviously an issue with pf and the bridge interface, I just can't seem to figure it out (see config below). I appreciate any advice on this. Cheers, -Chris hostname.sis1 ------------- up hostname.sis2 ------------- up hostname.vlan99 --------------- dhcp NONE NONE NONE vlan 99 vlandev sis2 hostname.vlan100 ---------------- inet 192.168.1.1 255.255.255.0 NONE vlan 100 vlandev sis2 bridgename.bridge0 ------------------ add vlan100 add sis1 add ral0 up pf.conf ------- ################################################################# # Macros ext_if="vlan99" int_if="vlan100" int_bridge="bridge0" int_net="192.168.1.0/24" icmp_types="echoreq" ################################################################# # Options set block-policy return set loginterface $ext_if set skip on lo ################################################################# # Traffic Normalization scrub in ################################################################# # NAT Rules: "rdr", "nat", "binat" nat on $ext_if from !($ext_if) -> ($ext_if:0) nat-anchor "ftp-proxy/*" rdr-anchor "ftp-proxy/*" rdr pass on $int_if proto tcp to port ftp -> 127.0.0.1 port 8021 rdr on $ext_if inet proto tcp from any to ($ext_if) port 2121 \ -> 192.168.1.200 port 21 rdr on $ext_if inet proto tcp from any to ($ext_if) port 2222 \ -> 192.168.1.200 port 22 rdr on $ext_if inet proto tcp from any to ($ext_if) port 80 \ -> 192.168.1.200 port 80 ################################################################# # Filter Rules block in pass out anchor "ftp-proxy/*" antispoof quick for lo0 pass in log on $ext_if proto udp from any to ($ext_if:0) \ port {500, 4500} pass out log on $ext_if proto udp from ($ext_if:0) to any \ port {500, 4500} pass in log on $ext_if proto esp from any to ($ext_if:0) pass out log on $ext_if proto esp from ($ext_if:0) to any pass in log on enc0 proto ipencap from any to ($ext_if:0) \ keep state (if-bound) pass out log on enc0 proto ipencap from ($ext_if:0) to any \ keep state (if-bound) pass in on enc0 from 10.1.0.2/32 to any keep state (if-bound) pass out on enc0 from 192.168.1.0/24 to any keep state (if-bound) pass in inet proto icmp all icmp-type $icmp_types pass in log on $ext_if proto udp from any to port 1194 pass in log on $ext_if proto tcp to ($ext_if) port ssh pass in log on $ext_if proto tcp from any to 192.168.1.200 \ port 21 pass in log on $ext_if proto tcp from any to 192.168.1.200 \ port 22 pass in log on $ext_if proto tcp from any to 192.168.1.200 \ port 80 pass in log on $ext_if proto tcp to ($ext_if) port smtp pass out log on $ext_if proto tcp from ($ext_if) to port smtp pass quick on $int_if