blob: 36ed4b94a9a1998aa3dbd1b65b393cbb8d480801 [file] [log] [blame]
#!/bin/bash
source /etc/utopia/service.d/service_wan/ppp_helpers.sh
DESIRED_WAN_STATE=`sysevent get desired_ipv4_wan_state`
CURRENT_WAN_STATE=`sysevent get current_ipv4_wan_state`
CURRENT_LINK_STATE=`sysevent get current_ipv4_link_state`
WAN_IFNAME=`sysevent get wan_ifname`
LAN_IFNAME=`syscfg get lan_ifname`
WAN_PROTOCOL=`syscfg get wan_proto`
CLIENT=`syscfg get wan_proto_username`
PASSWORD=`syscfg get wan_proto_password`
L2TP_CONF_DIR=/etc/xl2tpd
L2TP_CONF_FILE=$L2TP_CONF_DIR"/"xl2tpd.conf
L2TP_OPTIONS_DIR=/etc/ppp/peers
L2TP_OPTIONS_FILE=$L2TP_OPTIONS_DIR"/l2tp_tunnel"
PPP_OPTIONS_FILE=/etc/ppp/options
WAN_SERVER_IPADDR=`syscfg get wan_proto_server_address`
echo "[utopia][l2tp] Configuring l2tp" > /dev/console
# create the l2tp peers file
init_l2tp (){
prepare_pppd_ip_pre_up_script
prepare_pppd_ip_up_script
prepare_pppd_ip_down_script
prepare_pppd_ipv6_up_script
prepare_pppd_ipv6_down_script
prepare_pppd_secrets
# create the l2tp conf file
mkdir -p $L2TP_CONF_DIR
echo -n > $PPP_OPTIONS_FILE
echo -n > $L2TP_CONF_FILE
# Global section (by default, we start in global mode)
echo "[global]" >> $L2TP_CONF_FILE
# Bind address
echo "access control = no" >> $L2TP_CONF_FILE
echo "port=1701" >> $L2TP_CONF_FILE
echo "[lac l2tp]" >> $L2TP_CONF_FILE
echo "name=l2tp" >> $L2TP_CONF_FILE
L2TP_SERVER_IP=`syscfg get wan_proto_server_address`
echo "lns=$L2TP_SERVER_IP" >> $L2TP_CONF_FILE
echo "pppoptfile=/etc/ppp/peers/l2tp_tunnel" >> $L2TP_CONF_FILE
echo "redial=yes" >> $L2TP_CONF_FILE
echo "redial timeout=10" >> $L2TP_CONF_FILE
echo "ppp debug=yes" >> $L2TP_CONF_FILE
# create the l2tp option file
echo "user $CLIENT" >> $L2TP_OPTIONS_FILE
echo "password $PASSWORD" >> $L2TP_OPTIONS_FILE
echo "persist" >> $L2TP_OPTIONS_FILE
echo "nobsdcomp" >> $L2TP_OPTIONS_FILE
#echo "noccp" >> $L2TP_OPTIONS_FILE
echo "nopcomp" >> $L2TP_OPTIONS_FILE
echo "noaccomp" >> $L2TP_OPTIONS_FILE
echo "usepeerdns" >> $L2TP_OPTIONS_FILE
echo "noipdefault" >> $L2TP_OPTIONS_FILE
echo "require-mppe-128" >> $L2TP_OPTIONS_FILE
echo "noauth" >> $L2TP_OPTIONS_FILE
echo "debug" >> $L2TP_OPTIONS_FILE
echo "dump" >> $L2TP_OPTIONS_FILE
echo "logfd 2" >> $L2TP_OPTIONS_FILE
echo "logfile /var/log/xl2tpd.log" >> $L2TP_OPTIONS_FILE
echo "nodefaultroute" >> $L2TP_OPTIONS_FILE
echo "ipparam 'l2tp'" >> $L2TP_OPTIONS_FILE
echo "ifname 'l2tp-l2tp'" >> $L2TP_OPTIONS_FILE
echo "lcp-max-terminate 0" >> $L2TP_OPTIONS_FILE
echo "ktune" >> $L2TP_OPTIONS_FILE
if [ ! -d "/var/run/xl2tpd" ]; then
mkdir -p /var/run/xl2tpd
touch /var/run/xl2tpd/l2tp-control
fi
}
if [ "$1" == "start" ]; then
if [ -n "$2" ]; then
echo "wan_proto_username"
syscfg set wan_proto_username $2
fi
if [ -n "$3" ]; then
echo "wan_proto_username"
syscfg set wan_proto_password $3
fi
if [ -n "$4" ]; then
echo "wan_proto_server_address"
syscfg set wan_proto_server_address $4
fi
init_l2tp
modprobe ppp_mppe > /dev/null 2>&1
xl2tpd -D -p /var/run/xl2tpd.pid &
sleep 1
echo "c l2tp" > /var/run/xl2tpd/l2tp-control
elif [ "$1" == "stop" ]; then
echo "d l2tp" > /var/run/xl2tpd/l2tp-control
else
echo "Useage: $0 <start/stop> <user> <password> <serv_ip>"
fi