Hi!
I think i stumbed onto a bug related to using in combination rdomain,
specific set on ip aadresses and pf doing nat-to.
I have OpenBSD v. 5.9 installed from .iso, not patches applied and not
special programs insalled or running
# uname
OpenBSD obsd59.auul 5.9 GENERIC#1761 amd64
In my setup OpenBSD acts as a firwall, it has two network interfaces,
one faceing internet and another internal network.
vio0 (rdomain 0): 192.168.1.146 and vlan11, internet side
vio1 (rdomain 100): 192.168.1.254 and vlan10, intranet side
in rdomain 0 gateway is 192.168.1.254
in rdomain 100 no gateway is set
computer behind OpenBSD in rdomain 100 (and vlan10) has ip address
192.168.1.146 and gw 192.168.1.254.
OpenBSD ruleset is essentially
# pfctl -sr
pass in log quick on vio1 inet from 192.168.1.0/24 to any flags S/SA tag
FROM_INTRANET rtable 0
pass out log quick on vio0 inet all flags S/SA tagged FROM_INTRANET
nat-to 192.168.1.146
pass all flags S/SA
Now, when sending packets from computer behind this OpenBSD firewall
thru it tcp connections aint established, for some reason OpenBSD
rejects incoming syn-ack packets
# tcpdump -ni vio0 port 873
tcpdump: listening on vio0, link-type EN10MB
00:40:34.231363 192.168.1.146.60895 > 10.80.123.154.873: S
233483646:233483646(0) win 29200 <mss 1460,sackOK,timestamp 7512261
0,nop,wscale 6> (DF)
00:40:34.240835 10.80.123.154.873 > 192.168.1.146.60895: S
344980263:344980263(0) ack 233483647 win 28960 <mss
1460,sackOK,timestamp 174805425 7512261,nop,wscale 7> (DF)
00:40:34.240937 192.168.1.146.60895 > 10.80.123.154.873: R
233483647:233483647(0) win 0 (DF)
If i change computer's address behind OpenBSD different from the vio0
address, say 192.168.1.144, then packets get thru OpenBSD. I wonder if
this is a bug or still i am doing something wrong.
You may wonder why this kind of ugly setup is useful. It is not designed
from the ground up like this. It is just so to say 'OpenBSD to the
rescue' to get one legacy system connected to the internet more-or-less
controlled way. In that legacy system ip config cant be changed so
OpenBSD is placed in between the legacy system and the rest of the
network and it is doing this strange mapping.
Best regards,
Imre