Skip to main content

OpenWRT L2TP Client

Yep, PPTP is no longer an issue since we have L2TP access node.

And, Linksys WRT54GL running a stock firmware is such a dull device… No remote management, no dhcp lease info running behind pptp/l2tp connection, port forwarding done only for wan (not underlying eth0.1)…

So I hacked up ifup script for rp-l2tp to bring everything up.

Compiled ppp_synctty.o (can be selected in Kernel Modules / Network Support)

Compiled n_hdlc.o module (not in stock openwrt build):

Update: You can enable the module via make kernel_menuconfig

Index: package/kernel/modules/other.mk
===================================================================
--- package/kernel/modules/other.mk (revision 15274)
+++ package/kernel/modules/other.mk (working copy)
@@ -822,3 +822,18 @@

$(eval $(call KernelPackage,rfkill))

+define KernelPackage/hdlc
+  SUBMENU:=$(OTHER_MENU)
+  TITLE:=HDLC line discipline support
+  KCONFIG:= \
+   CONFIG_N_HDLC=m \
+   CONFIG_SERIAL_NONSTANDARD=y
+  FILES:=$(LINUX_DIR)/drivers/char/n_hdlc.$(LINUX_KMOD_SUFFIX)
+  AUTOLOAD:=$(call AutoLoad,20,hdlc)
+endef
+
+define KernelPackage/hdlc/description
+ Kernel module for HDLC line discipline support
+endef
+
+$(eval $(call KernelPackage,hdlc))

Warning – run make with V=99 since it will ask (yes, literally ask) questions whether to include other non-standard ports support. I guess we can live with this for one-time recompile, though for proper operation default kernel .config should be modified.

Modified /etc/ppp/options to contain:

replacedefaultroute
defaultroute
usepeerdns
mtu 1460
default-asyncmap
nopcomp
noaccomp
noccp
novj
nobsdcomp
nodeflate
lcp-echo-interval 0
lock
noauth

persist will not work since it is l2tpd what is controlling pppd, not vice-versa. pppd cannot renegotiate l2tpd link, therefore you will get a stuck pppd process constantly trying to reopen the pty.

and added the following config to /etc/config/network:

config interface  internet
    option proto l2tp
    option username "***@internet.beeline.ua"
    option password "***"
    option server   10.0.0.9
    option ifname   "ppp0"
    option parent   wan

Huh, interested in parent option? See OpenWRT Ticket#1430.

Create symlinks from /etc/l2tp.conf to /tmp/l2tp.conf and enjoy the l2tp connection.

And BTW – it all runs on “Linux OpenWrt 2.4.35.4 #3 Sun Apr 19 23:31:02 EEST 2009 mips unknown” since b43 support in 2.6 is not yet stable for production use :(