Re: Problem with kernel-level pppoe

2009-11-13 Thread Andre Keller
Hi David

Am 13.11.2009 00:22, schrieb David Walker:
 !/sbin/route -v add -inet default -ifp pppoe0 0.0.0.1

 Also it seems possible to add the dest to the end of the inet line (e.g.):
 inet 0.0.0.0 255.255.255.255 0.0.0.1
 This is a should from the man page.
 Note also !command-line - hostname.if(5).
   

OK I'll adjust that...
 And finally in sysctl.conf:
   net.inet.tcp.mssdflt=1440
 
 Where does this come from?
   

Well I read that somewere ;-) Its reverted now...
 Nevertheless try commenting your sysctl.conf addition, and scrubbing
 globally (e.g.):
 # scrub
 match in all scrub (no-df)
   

Yop that was a problem. the match rule for scrubbing was overridden by a
following pf rule...

so all works now...


Regards andri



Problem with kernel-level pppoe

2009-11-12 Thread Andre Keller
Hi guys

I use pppoe on my openbsd based router some time now, but always using
user space ppp. I read on several posts / blogs / etc. that kernel-level
pppoe (pppoe(4)) would have better performance and I decided to bring up
a test device.

My config (OpenBSD 4.6):
 /etc/hostname.pppoe0
   inet 0.0.0.0 255.255.255.255 NONE \
pppoedev vr0 authproto chap \
authname 'user' authkey 'pass' up
dest 0.0.0.1
 /sbin/route add default 0.0.0.1

And additionally in pf.conf:
 match on pppoe0 scrub (max-mss 1440)

And finally in sysctl.conf:
  net.inet.tcp.mssdflt=1440


The connection establish and icmp does work, but with udp pings I got
duplicate answers and tcp does not work at all. Short: the connection is
not usable.

On the same device using userspace ppp:
/etc/ppp/ppp.conf

default:
  set log Phase Chat LCP IPCP CCP tun command
pppoe:
  set device !/usr/sbin/pppoe -i vr0
  set mtu max 1492
  set mru max 1492
  set speed sync
  disable acfcomp protocomp
  deny acfcomp
  set authname user
  set authkey pass
  set dial
  set login
  add default HISADDR

Everything works ok.

Did I miss anything here?

Any help would be appreciated!


Regards Andri



Re: Problem with kernel-level pppoe

2009-11-12 Thread David Walker
Andre Keller ak () ak ! cx scrivere:
 My config (OpenBSD 4.6):
  /etc/hostname.pppoe0
inet 0.0.0.0 255.255.255.255 NONE \
 pppoedev vr0 authproto chap \
 authname 'user' authkey 'pass' up
 dest 0.0.0.1
  /sbin/route add default 0.0.0.1

Totally unrelated to your issue but I have noticed others (people who
usually get it right) not using the \ (disregard line break)
character. It's a minor point but makes your file more human. E.g.:
# cat hostname.pppoe0
pppoedev vr0
authproto chap
authname 'u...@on.net'
authkey 'pass'
up
inet 0.0.0.0 255.255.255.255
dest 0.0.0.1
!/sbin/route -v add -inet default -ifp pppoe0 0.0.0.1

Also it seems possible to add the dest to the end of the inet line (e.g.):
inet 0.0.0.0 255.255.255.255 0.0.0.1
This is a should from the man page.
Note also !command-line - hostname.if(5).

As to your question, I have never had to specify MTU, etcetera for PPPoE.
It does it on it's own in my case.
# ifconfig | grep vr0
vr0: flags=8843UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST mtu 1500
# ifconfig | grep pppoe0
pppoe0: flags=8851UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST mtu 1492

Regardless you might find that 1492 is the sweet spot. The last time I
skimmed the RFC this was the amount (eight) required for encapsulating
PPP inside ethernet frames). It depends on your transport layer I
believe.

 And finally in sysctl.conf:
   net.inet.tcp.mssdflt=1440
Where does this come from?

Nevertheless try commenting your sysctl.conf addition, and scrubbing
globally (e.g.):
# scrub
match in all scrub (no-df)

You might find it works.

Best wishes.