X-Git-Url: http://git.sameswireless.fr/l2tpns.git/blobdiff_plain/0f22007377e186b9a16839c31156190d378fcffc..12835e031e502885bce44c5e6b59fa12e0564ca0:/Docs/manual.html
diff --git a/Docs/manual.html b/Docs/manual.html
index a857d9b..8894599 100644
--- a/Docs/manual.html
+++ b/Docs/manual.html
@@ -56,13 +56,12 @@ H3 {
Filtering
Clustering
Routing
- Avoiding Fragmentation
Performance
Overview
-l2tpns is half of a complete L2TP implementation. It supports only the
-LNS side of the connection.
+l2tpns a complete L2TP implementation. It supports the LAC, LNS and
+ PPPOE server.
L2TP (Layer 2 Tunneling Protocol) is designed to allow any layer 2
protocol (e.g. Ethernet, PPP) to be tunneled over an IP connection. l2tpns
@@ -185,6 +184,18 @@ the same as the LAC, or authentication will fail. Only actually be
used if the LAC requests authentication.
+
l2tp_mtu (int)
+MTU of interface for L2TP traffic (default: 1500). Used to set link
+MRU and adjust TCP MSS.
+
+
+ppp_restart_time (int)
+ppp_max_configure (int)
+ppp_max_failure (int)
+PPP counter and timer values, as described in §4.1 of
+RFC1661.
+
+
primary_dns (ip address)
secondary_dns (ip address)
Whenever a PPP connection is established, DNS servers will be sent to the
@@ -229,6 +240,11 @@ A comma separated list of supported RADIUS authentication methods
(pap or chap), in order of preference (default pap).
+radius_dae_port (short)
+Port for DAE RADIUS (Packet of Death/Disconnect, Change of Authorization)
+requests (default: 3799).
+
+
allow_duplicate_users (boolean)
Allow multiple logins with the same username. If false (the default),
any prior session with the same username will be dropped when a new
@@ -236,15 +252,44 @@ session is established.
bind_address (ip address)
-When the tun interface is created, it is assigned the address
-specified here. If no address is given, 1.1.1.1 is used. Packets
-containing user traffic should be routed via this address if given,
-otherwise the primary address of the machine.
+It's the listen address of the l2tp udp protocol sent and received
+to LAC. This address is also assigned to the tun interface if no
+iftun_address is specified. Packets containing user traffic should be
+routed via this address if given, otherwise the primary address of the
+machine.
+
+
+iftun_address (ip address)
+This parameter is used when you want a tun interface address different
+from the address of "bind_address" (For use in cases of specific configuration).
+If no address is given to iftun_address and bind_address, 1.1.1.1 is used.
+
+
+bind_multi_address (ip address)
+This parameter permit to listen several addresss of the l2tp udp protocol
+(and set several address to the tun interface).
+
+WHEN this parameter is set, It OVERWRITE the parameters "bind_address"
+and "iftun_address".
+
+these can be interesting when you want do load-balancing in cluster mode
+of the uploaded from the LAC. For example you can set a bgp.prepend(MY_AS)
+for Address1 on LNS1 and a bgp.prepend(MY_AS) for Address2 on LNS2
+(see BGP AS-path prepending).
+
+example of use with 2 address:
+
+set bind_multi_address "64.14.13.41, 64.14.13.42"
+
+
+
+tundevicename (string)
+Name of the tun interface (default: "tun0").
peer_address (ip address)
Address to send to clients as the default gateway.
-
+
send_garp (boolean)
Determines whether or not to send a gratuitous ARP for the
@@ -271,8 +316,13 @@ every connected use will be dumped to a file in this directory. Each
file dumped begins with a header, where each line is prefixed by #.
Following the header is a single line for every connected user, fields
separated by a space.
The fields are username, ip, qos,
-uptxoctets, downrxoctets. The qos field is 1 if a standard user, and
-2 if the user is throttled.
+uptxoctets, downrxoctets, origin (optional). The qos field is 1 if a standard user, and
+2 if the user is throttled. The origin field is dump if account_all_origin is set to true
+(origin value: L=LAC data, R=Remote LNS data, P=PPPOE data).
+
+
+account_all_origin (boolean)
+If set to true, all origin of the usage is dumped to the accounting file (LAC+Remote LNS+PPPOE)(default false).
setuid (int)
@@ -323,6 +373,10 @@ on Clustering for more information.
Interface for cluster packets (default: eth0).
+cluster_mcast_ttl (int)
+TTL for multicast packets (default: 1).
+
+
cluster_hb_interval (int)
Interval in tenths of a second between cluster heartbeat/pings.
@@ -337,8 +391,95 @@ from the master.
Determines the minumum number of up to date slaves required before the
master will drop routes (default: 1).
+
+echo_timeout (int)
+Time between last packet sent and LCP ECHO generation
+(default: 10 (seconds)).
+
+
+idle_echo_timeout (int)
+Drop sessions who have not responded within idle_echo_timeout seconds
+(default: 240 (seconds))
+
+
+auth_tunnel_change_addr_src (boolean)
+This parameter authorize to change the source IP of the tunnels l2tp.
+This parameter can be used when the remotes BAS/LAC are l2tpns server
+configured in cluster mode, but that the interface to remote LNS are
+not clustered (the tunnel can be coming from different source IP)
+(default: no).
+
+
+disable_sending_hello (boolean)
+Disable l2tp sending HELLO message for Apple compatibility.
+Some OS X implementation of l2tp no manage the L2TP "HELLO message".
+(default: no).
+
+
+LAC configuration
+
+- bind_address_remotelns (ip address)
+Address of the interface to listen the remote LNS tunnels.
+If no address is given, all interfaces are listened (Any Address).
+
+
+- bind_portremotelns (short)
+Port to bind for the Remote LNS (default: 65432).
+
+
+
+
+A static REMOTES LNS configuration can be entered by the command:
+ - setforward MASK IP PORT SECRET
+
+where MASK specifies the mask of users who have forwarded to
+remote LNS (ex: "/friendISP@company.com").
+where IP specifies the IP of the remote LNS (ex: "66.66.66.55").
+where PORT specifies the L2TP Port of the remote LNS
+(Normally should be 1701) (ex: 1701).
+where SECRET specifies the secret password the remote LNS (ex: mysecret).
+
+The static Remote LNS configuration can be used when the friend ISP not
+have a proxied Radius.
+If the proxied Radius is used, It will return the RADIUS attributes:
+ Tunnel-Type: 1 = L2TP
+ Tunnel-Medium-Type: 1 = IPv4
+ Tunnel-Password: 1 = "LESECRETL2TP"
+ Tunnel-Server-Endpoint: 1 = "88.xx.xx.x1"
+ Tunnel-Assignment-Id: 1 = "friendisp_lns1"
+ Tunnel-Type: 2 = L2TP
+ Tunnel-Medium-Type: 2 = IPv4
+ Tunnel-Password: 2 = "LESECRETL2TP"
+ Tunnel-Server-Endpoint: 2 = "88.xx.xx.x2"
+ Tunnel-Assignment-Id: 2 = "friendisp_lns2"
+
+PPPOE configuration
+
+
+- pppoe_if_to_bind (string)
+PPPOE server interface to bind (ex: "eth0.12"), If not specified the server PPPOE is not enabled.
+For the pppoe clustering, all the interfaces PPPOE of the clusters must use the same HW address (MAC address).
+
+
+- pppoe_service_name (string)
+PPPOE service name (default: NULL).
+
+
+- pppoe_ac_name (string)
+PPPOE access concentrator name (default: "l2tpns-pppoe").
+
+
+- pppoe_only_equal_svc_name (boolean)
+If set to yes, the PPPOE server only accepts clients with a "service-name"
+different from NULL and a "service-name" equal to server "service-name" (default: no).
+
+
+
+
+BGP configuration
+
BGP routing configuration is entered by the command:
The routing configuration section is entered by the command
- router bgp as
@@ -696,12 +837,15 @@ killall -HUP l2tpns
The signals understood are:
-
-- SIGHUP - Reload the config from disk and re-open log file
-- SIGTERM / SIGINT - Shut down.
-- SIGQUIT - Shut down cleanly. This will send a disconnect message for
-every active session and tunnel before shutting down.
-
+
+- SIGHUP
- Reload the config from disk and re-open log file.
+- SIGTERM, SIGINT
- Stop process. Tunnels and sessions are not
+terminated. This signal should be used to stop l2tpns on a
+cluster node where there are other machines to
+continue handling traffic.
+- SIGQUIT
- Shut down tunnels and sessions, exit process when
+complete.
+
Throttling
@@ -814,14 +958,14 @@ supplied structure:
some way.
-
- - t - Tunnel ID
- - s - Session ID
- - username
- - password
- - protocol (0xC023 for PAP, 0xC223 for CHAP)
- - continue_auth - Set to 0 to stop processing authentication modules
-
+
+ - t
- Tunnel
+
- s
- Session
+
- username
+
- password
+
- protocol
- 0xC023 for PAP, 0xC223 for CHAP
+
- continue_auth
- Set to 0 to stop processing authentication modules
+
|
post_auth |
@@ -831,16 +975,16 @@ supplied structure:
to be accepted.
-
- - t - Tunnel ID
- - s - Session ID
- - username
- - auth_allowed - This is already set to true or
+
+ - t
- Tunnel
+
- s
- Session
+
- username
+
- auth_allowed
- This is already set to true or
false depending on whether authentication has been
allowed so far. You can set this to 1 or 0 to force
- allow or disallow authentication
- - protocol (0xC023 for PAP, 0xC223 for CHAP)
-
+ allow or disallow authentication
+ protocol0xC023 for PAP, 0xC223 for CHAP
+
|
packet_rx |
@@ -849,12 +993,12 @@ supplied structure:
seriously slow down the system.
-
- - t - Tunnel ID
- - s - Session ID
- - buf - The raw packet data
- - len - The length of buf
-
+
+ - t
- Tunnel
+
- s
- Session
+
- buf
- The raw packet data
+
- len
- The length of buf
+
|
packet_tx |
@@ -863,12 +1007,12 @@ supplied structure:
seriously slow down the system.
-
- - t - Tunnel ID
- - s - Session ID
- - buf - The raw packet data
- - len - The length of buf
-
+
+ - t
- Tunnel
+
- s
- Session
+
- buf
- The raw packet data
+
- len
- The length of buf
+
|
timer |
@@ -877,9 +1021,9 @@ supplied structure:
you do is reentrant.
-
- - time_now - The current unix timestamp
-
+
+ - time_now
- The current unix timestamp
+
|
new_session |
@@ -887,10 +1031,10 @@ supplied structure:
session is now ready to handle traffic.
-
- - t - Tunnel ID
- - s - Session ID
-
+
+ - t
- Tunnel
+
- s
- Session
+
|
kill_session |
@@ -898,10 +1042,10 @@ supplied structure:
This may be called multiple times for the same session.
-
- - t - Tunnel ID
- - s - Session ID
-
+
+ - t
- Tunnel
+
- s
- Session
+
|
radius_response |
@@ -911,12 +1055,24 @@ supplied structure:
modules.
-
- - t - Tunnel ID
- - s - Session ID
- - key
- - value
-
+
+ - t
- Tunnel
+
- s
- Session
+
- key
+
- value
+
+ |
+
+ radius_reset |
+ This is called whenever a RADIUS CoA request is
+ received to reset any options to default values before
+ the new values are applied.
+ |
+
+
+ - t
- Tunnel
+
- s
- Session
+
|
control |
@@ -925,21 +1081,13 @@ supplied structure:
required.
-
- - buf - The raw packet data
- - l - The raw packet data length
- - source_ip - Where the request came from
- - source_port - Where the request came from
- - response - Allocate a buffer and put your response in here
- - response_length - Length of response
- - send_response - true or false whether a response
- should be sent. If you set this to true, you must
- allocate a response buffer.
- - type - Type of request (see nsctl.c)
- - id - ID of request
- - data - I'm really not sure
- - data_length - Length of data
-
+
+ - iam_master
- Cluster master status
+
- argc
- The number of arguments
+
- argv
- Arguments
+
- response
- Return value: NSCTL_RES_OK or NSCTL_RES_ERR
+
- additional
- Extended response text
+
|
@@ -1031,22 +1179,6 @@ ibgp" for IBGP. If this is not supported by your IOS revision, you
can use "maximum-paths" (which works for EBGP) and set
as_number to a private value such as 64512.
-
Avoiding Fragmentation
-
-Fragmentation of encapsulated return packets to the LAC may be avoided
-for TCP sessions by adding a firewall rule to clamps the MSS on
-outgoing SYN packets.
-
-The following is appropriate for interfaces with a typical MTU of
-1500:
-
-
-iptables -A FORWARD -i tun+ -o eth0 \
- -p tcp --tcp-flags SYN,RST SYN \
- -m tcpmss --mss 1413:1600 \
- -j TCPMSS --set-mss 1412
-
-
Performance is great.