Hi all,
I have an issue with kernel pppoe.

When i'm in the LAN, all is going out and coming back sweetly.
When i'm right on the gateway, DNS works ( udp ), icmp works, but I can't
get TCP to work.

My setup is pretty simple:

CLOWN-----------soekris gateway-----------LAN

(vr0)pppoe0 = external interface
vr1 = internal interface



Here is a snip of what's going on:

on the lan:
lerequin# uname -a
OpenBSD laptop 4.5 GENERIC#118 i386
lerequin# telnet google.ca 80
Trying 64.233.161.104...
Connected to google.ca.
Escape character is '^]'.
^]
telnet> quit
Connection closed.
lerequin#


on the gateway:
# uname -a
OpenBSD lataupe.xxxxxxx.com 4.5 GENERIC#1749 i386
# ping google.nl
PING google.nl (216.239.59.104): 56 data bytes
64 bytes from 216.239.59.104: icmp_seq=0 ttl=244 time=159.768 ms
--- google.nl ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 159.768/159.768/159.768/0.000 ms
# telnet google.nl 80
Trying 74.125.77.104...
^C
# telnet openbsd.org 80
Trying 199.185.137.3...
^C
# nslookup
> server 127.0.0.1
Default server: 127.0.0.1
Address: 127.0.0.1#53
> freebsd.org
Server: 127.0.0.1
Address: 127.0.0.1#53

Non-authoritative answer:
Name: freebsd.org
Address: 69.147.83.40
> exit

#

tcp connetion *hangs.

# cat /etc/hostname.vr0
up
# cat /etc/hostname.pppoe0
inet 0.0.0.0 255.255.255.255 NONE pppoedev vr0 authproto pap \
authname 'xxx...@acanac.net' authkey 'xxxxxxx' up
dest 0.0.0.1
!/sbin/route add default -ifp pppoe0 0.0.0.1
#


# netstat -rnfinet
Routing tables

Internet:
Destination Gateway Flags Refs Use Mtu Prio Iface
default 0.0.0.1 UGS 7 1337177 - 8 pppoe0
10.1.1/24 link#2 UC 4 0 - 4 vr1
10.1.1.1 00:00:24:c9:32:69 UHLc 0 14 - 4 lo0
10.1.1.25 00:22:15:8d:93:ff UHLc 0 0 - 4 vr1
10.1.1.204 00:0b:6b:36:72:ab UHLc 2 264074 - 4 vr1
10.1.1.207 link#2 UHLc 1 440518 - 4 vr1
67.XXX.8.1 67.XXX.13.124 UH 0 0 - 4 pppoe0
127/8 127.0.0.1 UGRS 0 0 33204 8 lo0
127.0.0.1 127.0.0.1 UH 2 1899 33204 4 lo0
224/4 127.0.0.1 URS 0 0 33204 8 lo0
#

pf rulz striped down for the post:
# cat /etc/pf.conf
ext_if="pppoe0"
int_if="vr1"

table <lan_sub> { 10.1.1.0/24 }
table <fuckers> persist

set skip on lo0
set debug loud

#scrub all no-df random-id fragment reassemble reassemble tcp
scrub out log (all) on $ext_if max-mss 1440

nat log (all) on $ext_if from !($ext_if) to any -> ($ext_if)

block drop log (all) all
block drop quick log (all) inet6
block drop quick log (all) from <fuckers>

pass in quick log (all) on $int_if modulate state
pass out quick log (all) on $ext_if modulate state

pass in quick log (all) on $ext_if proto tcp from any port > 1024 to
($ext_if) port ssh flags S/SA modulate state (max-src-conn 5,
max-src-conn-rate 10/5, overload <fuckers> flush global)

pass in quick log (all) inet proto icmp all icmp-type echoreq modulate state



while doing a telnet google.com 80 on the soekris:
# tcpdump -i pflog0 -X -s 1500 -e -vvv host google.com
tcpdump: listening on pflog0, link-type PFLOG
14:51:04.002160 rule 5/(match) [uid 0, pid 24578] pass out on pppoe0:
dsl-67-XXX-13-124.acanac.net.56197 > yx-in-f100.google.com.www: S [tcp sum
ok] 4038451558:4038451558(0) win 16384 <mss 1440,nop,nop,sackOK,nop,wscale
0,nop,nop,timestamp 697898457 0> (DF) [tos 0x10] (ttl 64, id 51129, len 64)


14:51:04.059010 rule 0/(match) [uid 0, pid 24578] nat in on pppoe0:
yx-in-f100.google.com.www > 0.0.0.0.41797: S [tcp sum ok]
3120326047:3120326047(0) ack 4038451559 win 5672 <mss 1430,sackOK,timestamp
1821837804 697898457,nop,wscale 6> (ttl 51, id 27033, len 60)


14:51:04.383735 rule 0/(match) [uid 0, pid 24578] nat in on pppoe0:
yx-in-f100.google.com.www > 0.0.0.0.41797: S [tcp sum ok]
3120326047:3120326047(0) ack 4038451559 win 5672 <mss 1430,sackOK,timestamp
1821838129 697898457,nop,wscale 6> (ttl 51, id 27034, len 60)


14:51:04.984323 rule 0/(match) [uid 0, pid 24578] nat in on pppoe0:
yx-in-f100.google.com.www > 0.0.0.0.41797: S [tcp sum ok]
3120326047:3120326047(0) ack 4038451559 win 5672 <mss 1430,sackOK,timestamp
1821838729 697898457,nop,wscale 6> (ttl 51, id 27035, len 60)


the synack comes back, but it doesn't reach telnet. so telnet keep sending
syn until it reaches the timeout.

It looks like the packets are natted back to 0.0.0.0 instead of the pppoe0
ip address and I guess telnet is not listening 0.0.0.0.
/* Is there any thing obvious i'm missing here ??? */

# netstat
Active Internet connections
Proto Recv-Q Send-Q Local Address Foreign Address (state)
tcp 0 0 *.37330 qy-in-f104.googl.www SYN_SENT


at this point I don't know more.
......... anyone?


It's probably not related, but pppoe(4) keeps spamming /var/log/messages
with this:
May 15 15:59:00 lataupe /bsd: pppoe: alien host unique tag, no session found
May 15 15:59:00 lataupe /bsd: pppoe: received PADO but could not find
request for it
May 15 15:59:00 lataupe /bsd: pppoe: alien host unique tag, no session found
May 15 15:59:01 lataupe ppp[24983]: Warning: Sending empty PAP authname!

isp related ?

thanks

Reply via email to