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:
- If the configuration is not saved, the telnet service will still be available at startup.
- Configuration can be automated using a script, for example:
#!/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"; }