From 4dd84a7c4d784229209eeb4b0d72457b094e08ce Mon Sep 17 00:00:00 2001 From: aapostoliuk Date: Wed, 21 Feb 2024 16:57:34 +0200 Subject: [PATCH] Rewritten the L2TP documentation Rewritten the L2TP documentation Added the example 'PPPoE over L2TP' to blueprints --- docs/_static/images/lac-lns-diagram.jpg | Bin 0 -> 35665 bytes docs/_static/images/lac-lns-winclient.jpg | Bin 0 -> 90842 bytes docs/configexamples/index.rst | 1 + docs/configexamples/lac-lns.rst | 169 +++++++ docs/configuration/vpn/l2tp.rst | 561 +++++++++++++++++----- 5 files changed, 621 insertions(+), 110 deletions(-) create mode 100644 docs/_static/images/lac-lns-diagram.jpg create mode 100644 docs/_static/images/lac-lns-winclient.jpg create mode 100644 docs/configexamples/lac-lns.rst diff --git a/docs/_static/images/lac-lns-diagram.jpg b/docs/_static/images/lac-lns-diagram.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4463a3c30c7e7d52a58d83b5d9248141de92d421 GIT binary patch literal 35665 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

x;pw>qm21! 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 literal 0 HcmV?d00001 diff --git a/docs/_static/images/lac-lns-winclient.jpg b/docs/_static/images/lac-lns-winclient.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9fa991529971d828acc2861cfdd489b9bf86b0c5 GIT binary patch literal 90842 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 Kc+s{!@c#j_`3Cj? literal 0 HcmV?d00001 diff --git a/docs/configexamples/index.rst b/docs/configexamples/index.rst index 7134e14c..d5973eb2 100644 --- a/docs/configexamples/index.rst +++ b/docs/configexamples/index.rst @@ -17,6 +17,7 @@ This chapter contains various configuration examples: wan-load-balancing pppoe-ipv6-basic l3vpn-hub-and-spoke + lac-lns inter-vrf-routing-vrf-lite qos segment-routing-isis diff --git a/docs/configexamples/lac-lns.rst b/docs/configexamples/lac-lns.rst new file mode 100644 index 00000000..b246c4d3 --- /dev/null +++ b/docs/configexamples/lac-lns.rst @@ -0,0 +1,169 @@ +:lastproofread: 2024-02-21 + +.. _examples-lac-lns: + +############### +PPPoE over L2TP +############### + +This document is to describe a basic setup using PPPoE over L2TP. +LAC and LNS are components of the broadband topology. +LAC - L2TP access concentrator +LNS - L2TP Network Server +LAC and LNS forms L2TP tunnel. LAC receives packets from PPPoE clients and +forward them to LNS. LNS is the termination point that comes from PPP packets +from the remote client. + +In this example we use VyOS 1.5 as LNS and Cisco IOS as LAC. +All users with domain **vyos.io** will be tunneled to LNS via L2TP. + +Network Topology +================ + +.. image:: /_static/images/lac-lns-diagram.jpg + :width: 60% + :align: center + :alt: Network Topology Diagram + +Configurations +============== + +LAC +--- + +.. code-block:: none + + aaa new-model + ! + aaa authentication ppp default local + ! + vpdn enable + vpdn aaa attribute nas-ip-address vpdn-nas + ! + vpdn-group LAC + request-dialin + protocol l2tp + domain vyos.io + initiate-to ip 192.168.139.100 + source-ip 192.168.139.101 + local name LAC + l2tp tunnel password 0 test123 + ! + bba-group pppoe MAIN-BBA + virtual-template 1 + ! + interface GigabitEthernet0/0 + description To LNS + ip address 192.168.139.101 255.255.255.0 + duplex auto + speed auto + media-type rj45 + ! + interface GigabitEthernet0/1 + description To PPPoE clients + no ip address + duplex auto + speed auto + media-type rj45 + pppoe enable group MAIN-BBA + ! + +LNS +--- + +.. code-block:: none + + set interfaces ethernet eth0 address '192.168.139.100/24' + set nat source rule 100 outbound-interface name 'eth0' + set nat source rule 100 source address '10.0.0.0/24' + set nat source rule 100 translation address 'masquerade' + set protocols static route 0.0.0.0/0 next-hop 192.168.139.2 + set vpn l2tp remote-access authentication mode 'radius' + set vpn l2tp remote-access authentication radius server 192.168.139.110 key 'radiustest' + set vpn l2tp remote-access client-ip-pool TEST-POOL range '10.0.0.2-10.0.0.100' + set vpn l2tp remote-access default-pool 'TEST-POOL' + set vpn l2tp remote-access gateway-address '10.0.0.1' + set vpn l2tp remote-access lns host-name 'LAC' + set vpn l2tp remote-access lns shared-secret 'test123' + set vpn l2tp remote-access name-server '8.8.8.8' + set vpn l2tp remote-access ppp-options disable-ccp + +.. note:: This setup requires the Compression Control Protocol (CCP) + being disabled, the command ``set vpn l2tp remote-access ppp-options disable-ccp`` + accomplishes that. + +Client +------ + +In this lab we use Windows PPPoE client. + +.. image:: /_static/images/lac-lns-winclient.jpg + :width: 100% + :align: center + :alt: Window PPPoE Client Configuration + +Monitoring +---------- + +Monitoring on LNS side + +.. code-block:: none + + vyos@vyos:~$ show l2tp-server sessions + ifname | username | ip | ip6 | ip6-dp | calling-sid | rate-limit | state | uptime | rx-bytes | tx-bytes + --------+--------------+----------+-----+--------+-----------------+------------+--------+----------+-----------+---------- + l2tp0 | test@vyos.io | 10.0.0.2 | | | 192.168.139.101 | | active | 00:00:35 | 188.4 KiB | 9.3 MiB + +Monitoring on LAC side + +.. code-block:: none + + Router#show pppoe session + 1 session in FORWARDED (FWDED) State + 1 session total + Uniq ID PPPoE RemMAC Port VT VA State + SID LocMAC VA-st Type + 1 1 000c.290b.20a6 Gi0/1 1 N/A FWDED + 0c58.88ac.0001 + + Router#show l2tp + L2TP Tunnel and Session Information Total tunnels 1 sessions 1 + + LocTunID RemTunID Remote Name State Remote Address Sessn L2TP Class/ + Count VPDN Group + 23238 2640 LAC est 192.168.139.100 1 LAC + + LocID RemID TunID Username, Intf/ State Last Chg Uniq ID + Vcid, Circuit + 25641 25822 23238 test@vyos.io, Gi0/1 est 00:05:36 1 + +Monitoring on RADIUS Server side + +.. code-block:: none + + root@Radius:~# cat /var/log/freeradius/radacct/192.168.139.100/detail-20240221 + Wed Feb 21 13:37:17 2024 + User-Name = "test@vyos.io" + NAS-Port = 0 + NAS-Port-Id = "l2tp0" + NAS-Port-Type = Virtual + Service-Type = Framed-User + Framed-Protocol = PPP + Calling-Station-Id = "192.168.139.101" + Called-Station-Id = "192.168.139.100" + Acct-Status-Type = Start + Acct-Authentic = RADIUS + Acct-Session-Id = "45c731e169d9a4f1" + Acct-Session-Time = 0 + Acct-Input-Octets = 0 + Acct-Output-Octets = 0 + Acct-Input-Packets = 0 + Acct-Output-Packets = 0 + Acct-Input-Gigawords = 0 + Acct-Output-Gigawords = 0 + Framed-IP-Address = 10.0.0.2 + NAS-IP-Address = 192.168.139.100 + Event-Timestamp = "Feb 21 2024 13:37:17 UTC" + Tmp-String-9 = "ai:" + Acct-Unique-Session-Id = "ea6a1089816f19c0d0f1819bc61c3318" + Timestamp = 1708522637 diff --git a/docs/configuration/vpn/l2tp.rst b/docs/configuration/vpn/l2tp.rst index ce3b6711..f0c60ec1 100644 --- a/docs/configuration/vpn/l2tp.rst +++ b/docs/configuration/vpn/l2tp.rst @@ -1,30 +1,80 @@ .. _l2tp: +#### L2TP ----- +#### VyOS utilizes accel-ppp_ to provide L2TP server functionality. It can be used with local authentication or a connected RADIUS server. -L2TP over IPsec -=============== +*********************** +Configuring L2TP Server +*********************** -Example for configuring a simple L2TP over IPsec VPN for remote access (works -with native Windows and Mac VPN clients): +.. code-block:: none + + set vpn l2tp remote-access authentication mode local + set vpn l2tp remote-access authentication local-users username test password 'test' + set vpn l2tp remote-access client-ip-pool L2TP-POOL range 192.168.255.2-192.168.255.254 + set vpn l2tp remote-access default-pool 'L2TP-POOL' + set vpn l2tp remote-access outside-address 192.0.2.2 + set vpn l2tp remote-access gateway-address 192.168.255.1 + + +.. cfgcmd:: set vpn l2tp remote-access authentication mode + + Set authentication backend. The configured authentication backend is used + for all queries. + + * **radius**: All authentication queries are handled by a configured RADIUS + server. + * **local**: All authentication queries are handled locally. + +.. cfgcmd:: set vpn l2tp remote-access authentication local-users username password + + + Create `` for local authentication on this system. The users password + will be set to ``. + +.. cfgcmd:: set vpn l2tp remote-access client-ip-pool range + + Use this command to define the first IP address of a pool of + addresses to be given to l2tp clients. If notation ``x.x.x.x-x.x.x.x``, + it must be within a /24 subnet. If notation ``x.x.x.x/x`` is + used there is possibility to set host/netmask. + +.. cfgcmd:: set vpn l2tp remote-access default-pool + + Use this command to define default address pool name. + +.. cfgcmd:: set vpn l2tp remote-access gateway-address + + Specifies single `` IP address to be used as local address of PPP + interfaces. + +***************** +Configuring IPsec +***************** .. code-block:: none set vpn ipsec interface eth0 - - set vpn l2tp remote-access outside-address 192.0.2.2 - set vpn l2tp remote-access client-ip-pool L2TP-POOL range 192.168.255.2-192.168.255.254 - set vpn l2tp remote-access default-pool 'L2TP-POOL' set vpn l2tp remote-access ipsec-settings authentication mode pre-shared-secret set vpn l2tp remote-access ipsec-settings authentication pre-shared-secret - set vpn l2tp remote-access authentication mode local - set vpn l2tp remote-access authentication local-users username test password 'test' -In the above example, an external IP of 192.0.2.2 is assumed. + +.. cfgcmd:: set vpn ipsec interface + + Use this command to define IPsec interface. + +.. cfgcmd:: set vpn l2tp remote-access ipsec-settings authentication mode + + Set mode for IPsec authentication between VyOS and L2TP clients. + +.. cfgcmd:: set vpn l2tp remote-access ipsec-settings authentication mode + + Set predefined shared secret phrase. + If a local firewall policy is in place on your external interface you will need to allow the ports below: @@ -64,79 +114,9 @@ To allow VPN-clients access via your external address, a NAT rule is required: set nat source rule 110 source address '192.168.255.0/24' set nat source rule 110 translation address masquerade - -VPN-clients will request configuration parameters, optionally you can DNS -parameter to the client. - -.. code-block:: none - - set vpn l2tp remote-access name-server '198.51.100.8' - set vpn l2tp remote-access name-server '198.51.100.4' - -Established sessions can be viewed using the **show l2tp-server sessions** -operational command - -.. code-block:: none - - vyos@vyos:~$ show l2tp-server sessions - ifname | username | ip | ip6 | ip6-dp | calling-sid | rate-limit | state | uptime | rx-bytes | tx-bytes - --------+----------+---------------+-----+--------+-------------+------------+--------+----------+----------+---------- - l2tp0 | test | 192.168.255.3 | | | 192.168.0.36 | | active | 02:01:47 | 7.7 KiB | 1.2 KiB - - - -LNS (L2TP Network Server) -========================= - -LNS are often used to connect to a LAC (L2TP Access Concentrator). - -Below is an example to configure a LNS: - -.. code-block:: none - - set vpn l2tp remote-access outside-address 192.0.2.2 - set vpn l2tp remote-access client-ip-pool L2TP-POOL range 192.168.255.2-192.168.255.254 - set vpn l2tp remote-access default-pool 'L2TP-POOL' - set vpn l2tp remote-access lns shared-secret 'secret' - set vpn l2tp remote-access ppp-options disable-ccp - set vpn l2tp remote-access authentication mode local - set vpn l2tp remote-access authentication local-users username test password 'test' - -The example above uses 192.0.2.2 as external IP address. A LAC normally requires -an authentication password, which is set in the example configuration to -``lns shared-secret 'secret'``. This setup requires the Compression Control -Protocol (CCP) being disabled, the command ``set vpn l2tp remote-access -ccp-disable`` accomplishes that. - - -Bandwidth Shaping -================= - -Bandwidth rate limits can be set for local users or via RADIUS based attributes. - -Bandwidth Shaping for local users -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -The rate-limit is set in kbit/sec. - -.. code-block:: none - - set vpn l2tp remote-access outside-address 192.0.2.2 - set vpn l2tp remote-access client-ip-pool L2TP-POOL range 192.168.255.2-192.168.255.254 - set vpn l2tp remote-access default-pool 'L2TP-POOL' - set vpn l2tp remote-access authentication mode local - set vpn l2tp remote-access authentication local-users username test password test - set vpn l2tp remote-access authentication local-users username test rate-limit download 20480 - set vpn l2tp remote-access authentication local-users username test rate-limit upload 10240 - - vyos@vyos:~$ show l2tp-server sessions - ifname | username | ip | ip6 | ip6-dp | calling-sid | rate-limit | state | uptime | rx-bytes | tx-bytes - --------+----------+---------------+-----+--------+-------------+------------+--------+----------+----------+---------- - l2tp0 | test | 192.168.255.3 | | | 192.168.0.36 | | active | 02:01:47 | 7.7 KiB | 1.2 KiB - - -RADIUS authentication -====================== +********************************* +Configuring RADIUS authentication +********************************* To enable RADIUS based authentication, the authentication mode needs to be changed within the configuration. Previous settings like the local users, still @@ -146,10 +126,16 @@ accounts again. .. code-block:: none - set vpn l2tp remote-access authentication mode + set vpn l2tp remote-access authentication mode radius + +.. cfgcmd:: set vpn l2tp remote-access authentication radius server key + + Configure RADIUS `` and its required shared `` for + communicating with the RADIUS server. Since the RADIUS server would be a single point of failure, multiple RADIUS servers can be setup and will be used subsequentially. +For example: .. code-block:: none @@ -160,60 +146,118 @@ servers can be setup and will be used subsequentially. queries, make sure to add your VyOS router to the allowed client list. RADIUS source address -^^^^^^^^^^^^^^^^^^^^^ +===================== If you are using OSPF as IGP, always the closest interface connected to the RADIUS server is used. With VyOS 1.2 you can bind all outgoing RADIUS requests to a single source IP e.g. the loopback interface. -.. code-block:: none +.. cfgcmd:: set vpn l2tp remote-access authentication radius source-address

- set vpn l2tp remote-access authentication radius source-address 10.0.0.3 - -Above command will use `10.0.0.3` as source IPv4 address for all RADIUS queries -on this NAS. + Source IPv4 address used in all RADIUS server queires. .. note:: The ``source-address`` must be configured on one of VyOS interface. Best practice would be a loopback or dummy interface. -RADIUS bandwidth shaping attribute -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +RADIUS advanced options +======================= -To enable bandwidth shaping via RADIUS, the option rate-limit needs to be -enabled. +.. cfgcmd:: set vpn l2tp remote-access authentication radius server port -.. code-block:: none + Configure RADIUS `` and its required port for authentication requests. - set vpn l2tp remote-access authentication radius rate-limit enable +.. cfgcmd:: set vpn l2tp remote-access authentication radius server fail-time