MirrorManager automatic local mirror selection

MirrorManager 1.3.2 (plus a hotfix) is now running on all Fedora Infrastructure application servers.  This brings one new interesting feature – automatic mirror detection.  How’s that you say?

As you know, Internet routing uses BGP (Border Gateway Protocol), and Autonomous System Numbers (ASNs) to exchange IP prefixes (aa.bb.cc.dd/nn) and routing tables.  By grabbing a copy of the global BGP table a few times a day, MM can know the ASN of an incoming client request, and Hosts in the MM database have grown two new fields: ASN and “ASN Clients?”.  MM then looks to see if there is a mirror with the same ASN as each client, and offers it up earlier in the list.

I’ve pre-populated the MM database, for public servers only, with ASNs, and set “ASN Clients?” = True, meaning such will offer to serve all clients on the same ASN.  If you have a private server and wish to do likewise (remember, this doesn’t work for home systems or those behind NATs), you can fill in those fields yourself.  The Fedora wiki page on mirroring gives an example on how to look up your ASN.  I recommend this for all schools, research organizations, companies, and ISPs.

The mirrorlist lookup code now goes in preferential order:

  • same netblock
  • same ASN
  • both on Internet2
  • same country
  • same continent
  • global

For ISPs and schools, this should mean that most of the possible Fedora traffic will stay within your network – no transit costs.  And as netblocks change, MM will keep up with them automatically.

To see this in action, try a query as such, and look for the ‘Using ASN ####’ in the result comment line.

$ wget -O – ‘http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-11&arch=i386′

# Using preferred netblock Using ASN XXXX country = US country = MX country = CA
your-local-mirror-here

I hope you enjoy this new feature.

Heading to Portland for LinuxCon

I’ll be at LinuxCon in Portland this next week.  On Monday, 11:30am, I get to compete against Jon Corbet’s excellent Kernel Report and four other interesting topics, to present Dynamic Driver Injection, a method to simplify OS deployments on new servers.  If you’re at LinuxCon, I hope you will join me.

This will be my first trip to Portland.  I’m looking forward to it a lot.

Fedora services IPv6-enabled

As Mike McGrath, Fedora Infrastructure team lead announced last week, several Fedora services are now IPv6-enabled.  Thanks to our good friends at ibiblio.org, who have native IPv6 connectivity, we were able to set up one web server and one DNS name server, with more services to come over time.  The web server in particular means that nearly all Fedora Infrastructure-hosted web pages and web applications are immediately reachable over IPv6.  This week, over 5000 unique IPv6 addresses have been served.

However, this has not come without a cost.  There have been a handful of individuals having difficulty reaching our web pages.  In one case, the user needed to lower the MTU (maximum transmission unit) for his ethernet adapter from the default 1500 to 1472, to accommodate both IPv6 and his PPPoE connection.  For others, particularly those using 6to4 routing (the default method in Fedora if you don’t already have native IPv6 connectivity), some packets are getting dropped elsewhere on the Internet (pings reach our server, responses don’t make it back).  These are the growing pains we’ll have to live through, and which will resolve themselves over time as more network operators deploy native IPv6 to their end users.

If you have troubles reaching Fedora web sites, take a look at the Known Problems section on our IPv6 wiki page for common workarounds, add your own workarounds as you find them, and if all else fails, join us in #fedora-admin on irc.freenode.net for assistance.  There’s not a lot we can do about the wider Internet and its routing, but we’ll help if we can.

If you’d like to help get additional services IPv6-enabled, check out our IPv6 page for tasks we’d like to do, and offer your own ideas.