posted by tom / January 16, 2006 /
6 comments /
I've been meaning to post this for a while: ptunnel is an application that allows you to tunnel internet traffic over ICMP pings. Allow me to explain why this is cool.
Pings are the simplest way of testing connectivity over the internet. They're part of a protocol called ICMP that's used for diagnostic purposes and little else. Ptunnel reimplements TCP/IP b— the internet's main protocol — by tacking your messages' content onto the end of pings. You run a server on another machine that receives the tunnelled packets, converts them to normal internet traffic, sends them out, gets a response, and sends it back to you over the ICMP tunnel.
Why is this useful? Mostly, it's not. But ICMP is frequently the only thing that can get through airport/coffee shop-style wifi hotspots prior to purchasing time with a credit card. ICMP traffic is allowed through because doing so makes service technicians' lives easier. Now that fun fact can make your life slightly cheaper.
I haven't tested it myself, though. The problem is that you need to run ptunnel on a server that can receive ICMP — and most consumer routers aren't designed to let you forward ICMP traffic from the internet to machines on your LAN. I suppose I could make my linux server the network's DMZ host, but that would result in all incoming TCP traffic getting through, as well. Given the lousy passwords I have on my mp3 shared directories, that's not a great idea. Besides, even with a DMZ set I'm not sure that the router wouldn't just answer the incoming pings itself.
Maybe I'll try to get ptunnel running on the router itself — it is a Linux machine in its own right, after all. It would be pretty fun to see if Starbucks can be beaten this way.