Setting up new pieces of software sometimes moves beyond interesting to difficult. The multilink PPP daemon for FreeBSD, mpd(8), is touted as a fast, flexible, easy-to-configure solution to all sorts of PPP problems.
I set up a PPTP VPN recently using the stable version of MPD, 3.18, and I'm really not sure how true the easy-to-configure claim is. Although it doesn't require the straight-out hacks that using PoPToP on FreeBSD does, it has some quirks.
Firstly - the documentation lies. I'm not talking about documenting the configuration process and neglecting to mention one small step; the manual included with the stable version includes a command that, as far as I can tell, is basically a work of fiction. The first directive in the PPTP section is set pptp mode [ active | passive ]. This doesn't work. I don't think it's ever worked. I'm not even sure if it works in the development version (it crashes when I try and find out). If you're using mpd(8), don't use the set pptp mode command. It will not work, and it will confuse the hell out of you when it's listed in the official documentation.
Secondly - examples that you might find on the Internet are not always correct. I realise this might come as a surprise to some people ("I got these instructions off the net. I'm going to follow them exactly. Let's see if they work."), but I'm really not sure how the configuration that's listed at Section6 ever worked.
The problem seems to be that MPD implements an encryption control protocol imaginatively called ECP, which no PPTP client (or the Linux PPP driver) speaks. Luckily, a lot of searching the Web turned up a thread on [mpd-users] where someone else had discovered the cause of the problem.
If you have set bundle enable encryption in your configuration, you get presented with strange errors on the client side about unknown protocols (on MacOS X and Linux; on Windows you get pretty vanilla error messages) and very little information on the server side. The documentation is also a bit unclear on this point; apparently, MPPE encryption is not really encryption as far as the PPP layer is concerned.
So, with the quirks, why use it? MPD is the Right Way of doing PPP and related protocols like PPTP - it uses FreeBSD's netgraph(4) framework. It was partly written by one of the early UCCans. And most of all, anything else is better than dealing with PoPToP.
2 comments
Lyall :: Saturday, February 10th
Yeah I'm with you man.
I have no idea what you are talking about but I feel the rage anyway.
Jacqueline :: Sunday, March 4th
Unfortunately, documentation that is accurate, complete, and easily understood once you find it, is sometimes a hit and miss activity.
Not helpful, when you need for get the answer quickly.
When I have time to research a topic, I tend to compare documentation of the same topic before I commit to following a particular piece. I had a good experience recently when looking up how to install a LAMP server and Mediawiki.