Никогда не бывает более одного протокола уровня данных, работающего через интерфейс (если вы не делаете что-то очень-очень странное). Где бы это ни казалось, почти всегда происходит какая-то форма туннелирования или инкапсуляции - обычно есть какой-то другой виртуальный интерфейс, "движущийся поверх него".
"PPPoE" означает PPP через Ethernet. Физический интерфейс eth0 использует Ethernet в качестве протокола уровня 2. PPP - это слой поверх него, управляемый демоном PPPoE. Таким образом, пакеты PPP "канального уровня" в конечном итоге инкапсулируются в кадры Ethernet.
В основном PPPoE работает как программное обеспечение для туннелирования /VPN, как говорит @Wyzard. Туннели имеют виртуальный интерфейс с одной стороны, программное обеспечение для деинкапсуляции в середине, а затем реальный интерфейс с другой стороны.
Таким образом, у вас будет интерфейс, такой как ppp0 или любой другой, который подключен к демону PPPoE, а затем демон PPPoE инкапсулирует то, что входит в ppp0, и выталкивает из eth0. И наоборот.
Следует иметь в виду, что поскольку значение MTU для Ethernet равно 1500, для заголовка PPPoE необходимо выделить 8 байт, поэтому значение MTU для интерфейса PPPoE становится равным 1492.
Вам не нужно напрямую касаться eth0, так как все, что вы хотите получить из eth0 - это пакеты PPPoE для вашего поставщика DSL. Это та же общая концепция для VPN или туннелей IPv6-over-IPv4.