Soekris ADSL router running NetBSD

ADSL router running NetBSD

My ADSL router is a Soekris appliance running NetBSD 6RC1. I acquired a Traverse Viking ADSL2+ ADSL PCI card from Wim.

It does its job and have been successfully tested with FDN and Orange french ISPs.

common docs

The board comes with a little of documentation, and there are basic steps on KD85's traverse page. There is also a nice documentation on running it on OpenBSD.

NetBSD has its own user doc and manpage: pppoe(4).

PPPOE debug

ifconfig pppoe debug

can be useful ;)

MSS clamping

Take care to enable MSS clamping. Many websites or other services won't be available otherwise.

Necessary for the router itself:

# tail -1 /etc/sysctl.conf
net.inet.tcp.mss_ifmtu=1

And for other machines, behind the router (NAT):

# grep scrub /etc/pf.conf
scrub in all fragment reassemble max-mss 1452

Traverse viking ADSL2+ unavailable at restart

My board has a boring bug: once it has been configured, the telnet or web interface won't be available at restart (system config restart or reboot of the router).

Of course, the configuration can be reset to its defaults (by joining the two JP2 pins on the board), but it's a real pain in the ass to reset and reconfigure at every boot.

Hopefully, the following workaround helps:

#!/usr/pkg/bin/perl    

my @steps = (
  'ip delete interface ipwan',
  'bridge add interface br0',
  'bridge attach br0 ethernet',
  'rfc1483 add transport tr1 a1 8 35 llc bridged',
  'bridge add interface br1',
  'bridge attach br1 tr1',
  # DO NOT SAVE
);

use Net::Telnet ();
$t = new Net::Telnet (Timeout => 10, Prompt => "/--> $/");
$t->open("192.168.1.1");
$t->login("admin", "admin");

foreach my $step (@steps) {
  my @lines = $t->cmd($step);
  print "step: $step, output: @lines\n";
}