blob: 36ed4b94a9a1998aa3dbd1b65b393cbb8d480801 [file] [log] [blame]
developer5184abf2023-01-18 16:10:07 +08001#!/bin/bash
2source /etc/utopia/service.d/service_wan/ppp_helpers.sh
3
4DESIRED_WAN_STATE=`sysevent get desired_ipv4_wan_state`
5CURRENT_WAN_STATE=`sysevent get current_ipv4_wan_state`
6CURRENT_LINK_STATE=`sysevent get current_ipv4_link_state`
7WAN_IFNAME=`sysevent get wan_ifname`
8LAN_IFNAME=`syscfg get lan_ifname`
9
10WAN_PROTOCOL=`syscfg get wan_proto`
11CLIENT=`syscfg get wan_proto_username`
12PASSWORD=`syscfg get wan_proto_password`
13L2TP_CONF_DIR=/etc/xl2tpd
14L2TP_CONF_FILE=$L2TP_CONF_DIR"/"xl2tpd.conf
15L2TP_OPTIONS_DIR=/etc/ppp/peers
16L2TP_OPTIONS_FILE=$L2TP_OPTIONS_DIR"/l2tp_tunnel"
17PPP_OPTIONS_FILE=/etc/ppp/options
18WAN_SERVER_IPADDR=`syscfg get wan_proto_server_address`
19
20echo "[utopia][l2tp] Configuring l2tp" > /dev/console
21
22# create the l2tp peers file
23
24init_l2tp (){
25 prepare_pppd_ip_pre_up_script
26 prepare_pppd_ip_up_script
27 prepare_pppd_ip_down_script
28 prepare_pppd_ipv6_up_script
29 prepare_pppd_ipv6_down_script
30
31 prepare_pppd_secrets
32
33
34 # create the l2tp conf file
35
36 mkdir -p $L2TP_CONF_DIR
37 echo -n > $PPP_OPTIONS_FILE
38 echo -n > $L2TP_CONF_FILE
39
40 # Global section (by default, we start in global mode)
41 echo "[global]" >> $L2TP_CONF_FILE
42
43 # Bind address
44 echo "access control = no" >> $L2TP_CONF_FILE
45 echo "port=1701" >> $L2TP_CONF_FILE
46
47 echo "[lac l2tp]" >> $L2TP_CONF_FILE
48 echo "name=l2tp" >> $L2TP_CONF_FILE
49 L2TP_SERVER_IP=`syscfg get wan_proto_server_address`
50 echo "lns=$L2TP_SERVER_IP" >> $L2TP_CONF_FILE
51 echo "pppoptfile=/etc/ppp/peers/l2tp_tunnel" >> $L2TP_CONF_FILE
52 echo "redial=yes" >> $L2TP_CONF_FILE
53 echo "redial timeout=10" >> $L2TP_CONF_FILE
54 echo "ppp debug=yes" >> $L2TP_CONF_FILE
55
56 # create the l2tp option file
57 echo "user $CLIENT" >> $L2TP_OPTIONS_FILE
58 echo "password $PASSWORD" >> $L2TP_OPTIONS_FILE
59 echo "persist" >> $L2TP_OPTIONS_FILE
60 echo "nobsdcomp" >> $L2TP_OPTIONS_FILE
61 #echo "noccp" >> $L2TP_OPTIONS_FILE
62 echo "nopcomp" >> $L2TP_OPTIONS_FILE
63 echo "noaccomp" >> $L2TP_OPTIONS_FILE
64 echo "usepeerdns" >> $L2TP_OPTIONS_FILE
65 echo "noipdefault" >> $L2TP_OPTIONS_FILE
66 echo "require-mppe-128" >> $L2TP_OPTIONS_FILE
67 echo "noauth" >> $L2TP_OPTIONS_FILE
68 echo "debug" >> $L2TP_OPTIONS_FILE
69 echo "dump" >> $L2TP_OPTIONS_FILE
70 echo "logfd 2" >> $L2TP_OPTIONS_FILE
71 echo "logfile /var/log/xl2tpd.log" >> $L2TP_OPTIONS_FILE
72 echo "nodefaultroute" >> $L2TP_OPTIONS_FILE
73 echo "ipparam 'l2tp'" >> $L2TP_OPTIONS_FILE
74 echo "ifname 'l2tp-l2tp'" >> $L2TP_OPTIONS_FILE
75 echo "lcp-max-terminate 0" >> $L2TP_OPTIONS_FILE
76 echo "ktune" >> $L2TP_OPTIONS_FILE
77 if [ ! -d "/var/run/xl2tpd" ]; then
78 mkdir -p /var/run/xl2tpd
79 touch /var/run/xl2tpd/l2tp-control
80 fi
81}
82
83if [ "$1" == "start" ]; then
84 if [ -n "$2" ]; then
85 echo "wan_proto_username"
86 syscfg set wan_proto_username $2
87 fi
88 if [ -n "$3" ]; then
89 echo "wan_proto_username"
90 syscfg set wan_proto_password $3
91 fi
92 if [ -n "$4" ]; then
93 echo "wan_proto_server_address"
94 syscfg set wan_proto_server_address $4
95 fi
96
97 init_l2tp
98 modprobe ppp_mppe > /dev/null 2>&1
99 xl2tpd -D -p /var/run/xl2tpd.pid &
100 sleep 1
101 echo "c l2tp" > /var/run/xl2tpd/l2tp-control
102elif [ "$1" == "stop" ]; then
103 echo "d l2tp" > /var/run/xl2tpd/l2tp-control
104
105else
106 echo "Useage: $0 <start/stop> <user> <password> <serv_ip>"
107fi