“IPv6”

ipv6

IPv6 Security and those damned dirty NATs

Saturday, February 6, 2010 by darco

With less than 10% of IPv4 addresses remaining unallocated, IPv6 has been getting a lot of attention lately. As such, hardware vendors and ISPs (like Comcast) are now starting to figure out how best to deploy IPv6 connectivity to residential customers.

IPv6 would effectively make the use of IP masquerading (A form of Network Address Translaton used in practically all residential gateway routers) unnecessary. Unfortunately, the current ubiquity of IP masquerading has caused vendors and ISPs to be suspicious of allowing proper end-to-end connectivity to residential customers. I have even heard that some are even considering using the same IP masquerading mechanism for IPv6—for security reasons!

This would be a very bad thing for the future of the IPv6 internet, so I wanted to elaborate on the motivations people have for doing this and ways that it can be avoided altogether.

Read the rest of this entry »

m0n0wall now supports IPv6

Friday, December 4, 2009 by darco

I just learned that m0n0wall now supports IPv6, which is great news. Lack of IPv6 support is actually why I stopped using m0n0wall years ago. Since that time I've come to miss it dearly. Now that my only gripe has been addressed, I might consider giving it another try.

In case you are wondering just what m0n0wall is, here is an excerpt from their website:

m0n0wall is a project aimed at creating a complete, embedded firewall software package that, when used together with an embedded PC, provides all the important features of commercial firewall boxes (including ease of use) at a fraction of the price (free software).

If you need a router and have a spare machine, give m0n0wall a try.

Mobile XMPP

Thursday, February 14, 2008 by darco

From the Android SDK M5 API Changes Overview, Dave Cridland pointed out the following:

The com.google.android.xmppService package has been replaced by the com.google.android.gtalkservice package. This is driven by the fact that the GTalk API is not XMPP compliant, and will be less so going forward. The reason is that XMPP is too verbose and inefficient for mobile network connection, and the GTalk API will be moving to a binary encoding for the protocol between the client and the server.

I'll enumerate the implications and conclusions:

  1. XMPP is verbose.
  2. XMPP is inefficient for mobile networking.
  3. A proprietary binary protocol would be more efficient for mobile devices.
  4. The former Android xmppService API will diverge away from XMPP.

I think that this direction is unfortunate, and the reasons misguided. Read on, and I'll elaborate...

NOTE: This post seems to no longer be fully inline with my current position—which is that a new (as of yet undefined) UDP-based C2S protocol using EXI would be best suited for mobile devices. Such a thing would however still be XMPP. Edited 2009-07-13.

Read the rest of this entry »

Broken teredo tunnels

Thursday, January 24, 2008 by darco

When I first started messing around with Teredo tunneling, I was really impressed with how it allowed me to get access to the IPv6 internet from just about anywhere. In fact, it excited me so much that I wrote a teredo client for MacOS X based on Miredo.

But lately teredo hasn't been all it's cracked up to be, and I think I know why: BGP routes to broken teredo relays. Whichever teredo relay which happens to be covering most of North America is really busted. I can connect to Japan (kame.net) just fine. I've been having problems like this for months but it only recently got really bad, because I no longer have a teredo relay set up at my home. Even though most of the IPv6 internet has been unavailable thru teredo for months, I didn't really notice—because at least I could access my home network. Now I can't even do that.

This is a damn shame. What was once a very promising transition path from IPv4 to IPv6 has fallen into such a state of disrepair that it has become useless.

Read the rest of this entry »

Teredo for MacOS X

Wednesday, February 21, 2007 by darco

As some of you may know, I've been playing around with IPv6 quite a bit lately. One specific IPv6 technology which has gotten me quite excited is the Teredo automatic tunneling protocol. Teredo allows you to obtain a globally routable IPv6 address when you only have access to the IPv4 internet, even if you are behind a NAT router1!

Support for the Teredo protocol is actually in WindowsXP, but it is disabled by default. However, that has changed for Windows Vista—where IPv6 and Teredo are enabled by default2. This is important because this means that relatively soon, widespread deployment of IPv6 will become a reality. This is great for Windows users, but what about other platforms?

Miredo is an open-source (GPL) user-space teredo implementation for linux and BSD. Someone went thru the effort to get miredo to work on MacOS X, but setting it up is not something your average joe can accomplish. What is needed is an installer package.

Well, that's exactly what I'm putting together. I'm releasing a prerelease version of the package today for early-adopters and power-users. You just download it, install it, and you should have IPv6 connectivity. It's that simple!

Prerelease 2

Download Here: Miredo Installer for MacOS X (Universal), and source code

Screen shot 2009-09-18 at 11.11.29 AM

IMPORTANT: This package is a prerelease version intended for early adopters, and is NOT intended for widespread deployment. If you decide to install and use this experimental package, you should subscribe to the miredo mailing list, paying serious attention to any security advisories.

Read the rest of this entry »