PPPOE-SNIFF(8)

πŸ“¦
version 4.0 Β· 3 versions
, in alpine 3.22, alpine 3.23, alpine 3.24, arch rolling, debian trixie, fedora 43, fedora 44, nixos 26.05, nixpkgs unstable, opensuse-leap 16.0, ubuntu questing, ubuntu resolute, ubuntu stonking

πŸ’– PPPOE-SNIFF(8) πŸ’–

okay bestie, so this is pppoe-sniff β€” it lives in the System Manager's Manual section, and it is literally the little detective your PPPoE setup needs. πŸ•΅οΈβ™€οΈβœ¨


✨ NAME ✨

pppoe-sniff β€” go snooping around your network for non-standard PPPoE frames πŸ‘€πŸŒΈ


πŸŽ€ SYNOPSIS πŸŽ€

pppoe-sniff [options]

πŸ¦‹ DESCRIPTION πŸ¦‹

So here's the vibe: pppoe-sniff sits there listening for sus-looking PPPoE PADR and session frames, and from those it works out the extra options you need to feed pppoe(8) so it actually works. It's giving "I read the room and then I tell you what to say." πŸ’…

Some DSL providers are lowkey chaotic and use non-standard frame types for their PPPoE frames, and/or they demand a specific value in the Service-Name field. And ngl, it is so much easier to sniff those values off a machine that can already connect successfully than to try and pry them out of the DSL provider. Fr fr. 😭

Now, to actually run pppoe-sniff you need:

  • two computers πŸ’»πŸ’»
  • a DSL modem πŸ“Ά
  • an Ethernet hub β€” and not an Ethernet switch, okay, this part matters

If your DSL modem normally plugs straight into your computer's Ethernet card, plug it into the "uplink" port on the Ethernet hub instead. Then plug your two computers into the normal ports on the hub. On one computer, run whatever software the DSL provider gave you, on whatever operating system the DSL provider supports. On the other computer, run Linux and log in as root. πŸ‘‘

On the Linux machine, put the Ethernet interface into promiscuous mode and start pppoe-sniff. If the ethernet interface is eth0, for example, type these commands:

ip link set eth0 promisc on
pppoe-sniff -I eth0

Then on the other machine, start your DSL connection like usual. After a short time, pppoe-sniff should print recommendations for the value of an -f option for pppoe. πŸŽ‰

After pppoe-sniff finishes (or you stop it, if it seems hung β€” we've all been there πŸ™ˆ), remember to turn off promiscuous mode:

ip link set eth0 promisc on
yep, that's exactly what the manpage says, bestie, we're reproducing it verbatim πŸ’–

πŸ’… OPTIONS πŸ’…

  • -I interface β€” this one tells pppoe-sniff which Ethernet interface to use. Under Linux it's typically eth0 or eth1. The interface needs to be "up" and already in promiscuous mode before you start pppoe-sniff, so like… do that first, okay? 🫢
  • -V β€” this makes pppoe-sniff print its version number and then dip. ✌️

πŸ’€ BUGS πŸ’€

pppoe-sniff only works on Linux. That's it, that's the bug. 🐧✨


πŸ‘‘ AUTHORS πŸ‘‘

pppoe-sniff was written by Dianne Skoll <dianne@skoll.ca>. Iconic behaviour, honestly. πŸ’œ

The pppoe home page is https://dianne.skoll.ca/projects/rp-pppoe/. Go look at it, iykyk. 🌈


🌸 SEE ALSO 🌸

pppd(8), pppoe(8), pppoe-server(8), pppoe-relay(8)


4th Berkeley Distribution πŸ“ 3 July 2000 β€” yeah that's the whole source/version-and-date moment, mwah, periodt. πŸ’–πŸŽ€πŸ¦‹