mirror of
https://github.com/vyos/vyos-documentation.git
synced 2025-10-26 08:41:46 +01:00
146 lines
5.9 KiB
ReStructuredText
146 lines
5.9 KiB
ReStructuredText
.. _pppoe-interface:
|
|
|
|
PPPoE
|
|
=====
|
|
|
|
:abbr:`PPPoE (Point-to-Point Protocol over Ethernet)` is a network protocol
|
|
for encapsulating PPP frames inside Ethernet frames. It appeared in 1999,
|
|
in the context of the boom of DSL as the solution for tunneling packets
|
|
over the DSL connection to the :abbr:`ISPs (Internet Service Providers)`
|
|
IP network, and from there to the rest of the Internet. A 2005 networking
|
|
book noted that "Most DSL providers use PPPoE, which provides authentication,
|
|
encryption, and compression." Typical use of PPPoE involves leveraging the
|
|
PPP facilities for authenticating the user with a username and password,
|
|
predominately via the PAP protocol and less often via CHAP.
|
|
|
|
Operating Modes
|
|
---------------
|
|
|
|
VyOS supports setting up PPPoE in two different ways to a PPPoE internet
|
|
connection. This is due to most ISPs provide a modem that is also a wireless
|
|
router.
|
|
|
|
Home Users
|
|
**********
|
|
|
|
In this method, the DSL Modem/Router connects to the ISP for you with your
|
|
credentials preprogrammed into the device. This gives you an :rfc:`1918`
|
|
address, such as ``192.168.1.0/24`` by default.
|
|
|
|
For a simple home network using just the ISP's equipment, this is usually
|
|
desirable. But if you want to run VyOS as your firewall and router, this
|
|
will result in having a double NAT and firewall setup. This results in a
|
|
few extra layers of complexity, particularly if you use some NAT or
|
|
tunnel features.
|
|
|
|
Business Users
|
|
**************
|
|
|
|
In order to have full control and make use of multiple static public IP
|
|
addresses, your VyOS will have to initiate the PPPoE connection and control
|
|
it. In order for this method to work, you will have to figure out how to make
|
|
your DSL Modem/Router switch into a Bridged Mode so it only acts as a DSL
|
|
Transceiver device to connect between the Ethernet link of your VyOS and the
|
|
phone cable. Once your DSL Transceiver is in Bridge Mode, you should get no
|
|
IP address from it. Please make sure you connect to the Ethernet Port 1 if
|
|
your DSL Transeiver has a switch, as some of them only work this way.
|
|
|
|
Once you have an Ethernet device connected, i.e. `eth0`, then you can
|
|
configure it to open the PPPoE session for you and your DSL Transceiver
|
|
(Modem/Router) just acts to translate your messages in a way that
|
|
vDSL/aDSL understands.
|
|
|
|
Configuration Example
|
|
~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
Requirements:
|
|
|
|
* Your ISPs modem is connected to port ``eth0`` of your VyOS box.
|
|
* No VLAN tagging required by your ISP.
|
|
* You need your PPPoE credentials from your DSL ISP in order to configure
|
|
this. The usual username is in the form of name@host.net but may vary
|
|
depending on ISP.
|
|
* The largest MTU size you can use with DSL is 1492 due to PPPoE overhead.
|
|
If you are switching from a DHCP based ISP like cable then be aware that
|
|
things like VPN links may need to have their MTU sizes adjusted to work
|
|
within this limit.
|
|
* With the ``default-route`` option set to ``auto``, VyOS will only add the
|
|
default gateway you receive from your DSL ISP to the routing table if you
|
|
have no other WAN connections. If you wish to use a dual WAN connection,
|
|
change the ``default-route`` option to ``force``.
|
|
* With the ``name-server`` option set to ``none``, VyOS will ignore the
|
|
nameservers your ISP sens you and thus you can fully rely on the ones you
|
|
have configured statically.
|
|
|
|
.. code-block:: none
|
|
|
|
set interfaces ethernet eth0 description "DSL Modem"
|
|
set interfaces ethernet eth0 duplex auto
|
|
set interfaces ethernet eth0 smp_affinity auto
|
|
set interfaces ethernet eth0 speed auto
|
|
set interfaces ethernet eth0 pppoe 0 default-route 'auto'
|
|
set interfaces ethernet eth0 pppoe 0 mtu 1492
|
|
set interfaces ethernet eth0 pppoe 0 name-server 'auto'
|
|
set interfaces ethernet eth0 pppoe 0 user-id 'userid'
|
|
set interfaces ethernet eth0 pppoe 0 password 'secret'
|
|
|
|
|
|
You should add a firewall to your configuration above as well by
|
|
assigning it to the pppoe0 itself as shown here:
|
|
|
|
.. code-block:: none
|
|
|
|
set interfaces ethernet eth0 pppoe 0 firewall in name NET-IN
|
|
set interfaces ethernet eth0 pppoe 0 firewall local name NET-LOCAL
|
|
set interfaces ethernet eth0 pppoe 0 firewall out name NET-OUT
|
|
|
|
VLAN Example
|
|
++++++++++++
|
|
|
|
Some recent ISPs require you to build the PPPoE connection through a VLAN
|
|
interface. One of those ISPs is e.g. Deutsche Telekom in Germany. VyOS
|
|
can easily create a PPPoE session through an encapsulated VLAN interface.
|
|
The following configuration will run your PPPoE connection through VLAN7
|
|
which is the default VLAN for Deutsche Telekom:
|
|
|
|
.. code-block:: none
|
|
|
|
set interfaces ethernet eth0 description "DSL Modem"
|
|
set interfaces ethernet eth0 duplex auto
|
|
set interfaces ethernet eth0 smp_affinity auto
|
|
set interfaces ethernet eth0 speed auto
|
|
set interfaces ethernet eth0 vif 7 pppoe 0 default-route 'auto'
|
|
set interfaces ethernet eth0 vif 7 pppoe 0 mtu '1492'
|
|
set interfaces ethernet eth0 vif 7 pppoe 0 name-server 'auto'
|
|
set interfaces ethernet eth0 vif 7 pppoe 0 user-id 'userid#0001@t-online.de'
|
|
set interfaces ethernet eth0 vif 7 pppoe 0 password 'secret'
|
|
|
|
Troubleshooting
|
|
---------------
|
|
|
|
.. opcmd:: disconnect interface <interface>
|
|
|
|
Test disconnecting given connection-oriented interface. `<interface>` can be
|
|
``pppoe0`` as example.
|
|
|
|
.. opcmd:: connect interface <interface>
|
|
|
|
Test connecting given connection-oriented interface. `<interface>` can be
|
|
``pppoe0`` as example.
|
|
|
|
.. opcmd:: show interfaces pppoe <interface>
|
|
|
|
Check PPPoE connection logs with the following command which shows the current
|
|
statistics, status and some of the settings (i.e. MTU) for the current
|
|
connection on <interface> (e.g. ``pppoe0``)
|
|
|
|
.. opcmd:: show interfaces pppoe <interface> log
|
|
|
|
Show entire log for the PPPoE connection starting with the oldest data. Scroll
|
|
down with the <space> key to reach the end where the current data is.
|
|
|
|
.. opcmd:: show interfaces pppoe <interface> log tail
|
|
|
|
Shows the same log as without the 'tail' option but start with the last few
|
|
lines and continues to show added lines until you exit with ``Ctrl + x``
|