Max Laier wrote:
On Sunday 15 April 2007 20:11, Alex Povolotsky wrote:
Hello!

I'm trying to set up a box as round-robin TCP proxy. Of course, I'm
trying to do everything on kernel-level.

This simple setup

rdr on sk0 proto tcp from any to any port = smtp -> <outbound> port 25
round-robin

should work. At least, I thought so.

However, attempt to connect to port 25 yielded unexpected result. pfctl
-s state shows

self tcp 89.108.94.212:25 <- 89.108.94.91:25 <-
89.108.94.211:56975       CLOSED:SYN_SENT

Your test hosts seem to be on the same subnet. This does not work as you seems to think. In the same broadcast domain it is not possible for the pf box to forward the packet on behalf of the sending host (otherwise it would confuse the recipient or the switch). Instead it emits icmp redirects which are ignored in a normal setup.

You have to separate the two networks in order for redirect to work the way you want it to.

I have separated them.
#pfctl -s nat
rdr on rl0 proto tcp from any to any port = smtp -> <outbound> port 25 round-robin
# pfctl -s state
No ALTQ support in kernel
ALTQ related functions disabled
self tcp 89.108.94.212:25 <- 10.180.210.2:25 <- 10.180.210.1:61298 CLOSED:SYN_SENT

tcpdump does not show any ICMP redirect

unknown-1717# tcpdump -l -n -i rl0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on rl0, link-type EN10MB (Ethernet), capture size 96 bytes
20:53:14.907833 arp who-has 10.180.210.2 tell 10.180.210.1
20:53:14.907857 arp reply 10.180.210.2 is-at 00:0e:2e:98:7e:55
20:53:14.907924 IP 10.180.210.1.57528 > 10.180.210.2.25: S 3593018807:3593018807(0) win 65535 <mss 1460,nop,wscale 1,nop,nop,timestamp 285791868 0,sackOK,eol> 20:53:17.907599 IP 10.180.210.1.57528 > 10.180.210.2.25: S 3593018807:3593018807(0) win 65535 <mss 1460,nop,wscale 1,nop,nop,timestamp 285794868 0,sackOK,eol> 20:53:21.107441 IP 10.180.210.1.57528 > 10.180.210.2.25: S 3593018807:3593018807(0) win 65535 <mss 1460,nop,wscale 1,nop,nop,timestamp 285798068 0,sackOK,eol> 20:53:24.307283 IP 10.180.210.1.57528 > 10.180.210.2.25: S 3593018807:3593018807(0) win 65535 <mss 1460,sackOK,eol> 20:53:27.507126 IP 10.180.210.1.57528 > 10.180.210.2.25: S 3593018807:3593018807(0) win 65535 <mss 1460,sackOK,eol> 20:53:30.706974 IP 10.180.210.1.57528 > 10.180.210.2.25: S 3593018807:3593018807(0) win 65535 <mss 1460,sackOK,eol>
^C
8 packets captured
8 packets received by filter
0 packets dropped by kernel

What am I doing wrong? Or I can only redirect routable traffic?

Nope, I've added  alias to "external" interface, no changes

Alex

_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to