FamousPhil.com -- Home My Calendar Youtube LinkedIn Facebook MySpace Twitter RSS Blog Feed

Blog Navigation

Blog Home



Partners

Latest Activity

MySQL Singleton Classes in PHP and Python

Phil gives the source code for implementing a MySQL singleton class in both PHP and Python.



Posted on: February 15th, 2010 by Famous Phil

I feel like starting this post on the topic of recycling.  If you are like me, you have heard of the 3 R’s.  For those of you who don’t know what I’m talking about, the 3 R’s are Reduce, Recycle, and Reuse.  A good portion of the news and current events in society encourage recycling and saving the environment.  For the most part, the world is moving towards saving the environment and the world as we know it, and that is great.

You may be asking what the heck does the movement to save the environment have to do with an IP title.  IP stands for Internet Protocol and the internet runs on this protocol (means of communication).  When using IP, your computer uses an address that makes it reachable by all other computers in the world.  Normally, you can think of IP as the United States Postal Service (USPS) and an IP Address as your mailing address or P.O. box.  The internet currently uses 2 major versions of IP, version 4 and version 6.  IP version 4 has been around since the dawn of the internet and can support a little over 4 billion computer addresses at once.  Due to special addresses within the IP version 4 range, only about 2 billion of these addresses are actually usable.  Due to this limitation, IP version 6 was born around 10 years ago to support a much bigger address system (it still has a limit, but its far bigger than anything could ever use).  The problem is, IP version 6 is going to be a pain to shift to because it will require everyone to switch at once.  Most system admins believe in not fixing something unless its broke, which could hinder this a lot.

Quite a few years back, there were a few ranges of ip addresses that were reserved to be private addresses.  This means that if you used a private address, no router on the internet would accept traffic from this range of addresses and forward it onto other networks.  This allowed for the usual wireless router at home with that all too familiar ip address 192.168.0.1 or something similar.  I’m sure if you’ve ever touched one of these, you would see that number somewhere in the documentation.  The idea of this is to put a bunch of computers behind a single internet ip version 4 address and allow all the computers to communicate with the internet without actually needing to be directly on the internet.  This process is called Network Address Translation (NAT) and all routers practice this.  the 192.168.0.x range allows for 255 computers to be connected simultaneously.  For bigger networks in need of more addresses, there is the 10.x.x.x where x is a variable number from 1-255.  This allows for many more computers, about 16 milion addresses to be a bit more precise.

Technically, using all 10.x.x.x network addresses on the internet, we could likely last a long time to come without requiring IP version 6. So, why don’t we use more private addressing?

I asked myself a very good question, and my answer is that I don’t know.  Obviously, we need to have public IP addresses to some degree to allow for websites, virtual private network gateways, and other services to the internet.  Putting internet accessible services behind NAT devices would knock out the entire internet.  On the other hand (and the main purpose of this post) is that there are several universities and companies and institutions that horde public IP addresses and do absolutely nothing with them.

A prime example of this hording can be seen here at the University at Buffalo.  UB owns a class B block of ip addresses 128.205.x.x and recently licensed another block of ip addresses in another range to support their continued growth.  Normally I wouldn’t be against this, but UB is in a tight position because the state government is failing at maintaining a good budget and IP addresses now cost a lot since there aren’t many left.  UB probably gets a volume discount, but for me, I pay $20/year for each public IP address that I am assigned and most of that cost goes directly to the naming corporation that handles all IP addresses.  This is a classic supply and demand problem.  Also, UB firewalls most of their IP addresses entirely, I can name no more than 20 computers on the UB network as a whole that I’ve accesses that absolutely need access to the internet (Web servers, etc).  The rest of the UB network computers are holding onto valuable public IP addresses that are 100% fire walled and inaccessible from the outside world.  Why does UB waste money and horde IP addresses that it doesn’t need?

Many other universities like Berkley, and Princeton have similar sizes of IP address blocks and I’m sure that they do the same basic stuff.  Now onto the ISPs.  Wildblue and Verizon both assign public unfirewalled IP addresses to their customers.  I can see why they might do this, but really, do customers need a public IP address just to potentially compromise the network and the internet computers around them?  Probably not.

I really feel that public IP addresses should only be handled by the major internet providers and datacenters that handle internet accessible servers.  Private companies that want real IP addresses should need to justify the use of those addresses.  If this was enacted, I’m sure that the internet addressing crisis would be a lot less of a problem.

Nat can definitely be the key to fixing the problem, but first, these big institutions that horde IP addresses need to give those addresses up and use them as they need them, just like many of the major hosting companies currently do.

Tags: , , , , ,
Posted in Hosting / Server Administration, Technology
|| 13 Comments »