January 2015

Testing The Waters on Digital Ocean

A while back I set up a Digital Ocean VPS running OpenSIM.  I then promptly forgot about Digital Ocean.  Part of the problem was I forgot my password and form some lame reason the email didn’t show up when I searched my emails for “Digital Ocean”.  It was also more of a fun side project that didn’t really cost anything since DO gives you some credit when you sign up.

I’m thinking of using my VPS for a bit more though, specifically, as my new Web Host.  I currently use GoDaddy which works great and is affordable but I’m starting to do a bit more experimenting and coding and I feel like i could benefit from something with a little more versatility.  For a few bucks more than I currently pay for Godaddy I can get a pretty decent VPS going and at the very least host all of the blogs I currently maintain on it (currently 4 with little to no traffic, and 3 with reasonably light traffic).  i can always beef up the VPS if the load ends up being too much.

I wanted to test out the migration and set up though, I was going to move Raid-Tier over but it’s kind of in a state of limbo and i wanted something I use with some content behind it.  If I am going to discretely move my wife’s blogs over interruption free I need to KNOW I can do it and KNOW it will work.  One, she’ll get pissy if it doesn’t and two she is getting a fair amount of traffic and I’d hate to interrupt that.

So I moved Joshmiller.net here over.  I also moved my little Sandbox Project over at BloggingIntensifies.com over as well but mostly because it’s inconsequential if it gets lost somehow and I wanted a second domain on the hosting so I could make sure I’m doing the server configuration properly.

The migration wasn’t without issues.  For one, the SQL export from this blog is larger than I could get the SQL locally to import so I had to do an old fashioned WordPress import/export.  In my experience the WordPress import/export works great for small volumes of data but extremely poorly for large volumes of data.

I also had FTP issues, All of the help files for vsftp I could find were outdated (not uncommon with trying to solve Linux issues) and there is some newer “feature” i couldn’t figure out that seems to amount to “vsftp won’t run if root has ftp access”.  I’m not sure that’s right because like I said, I didn’t figure it out, i used SSH file transfer instead.  I needed to move all of the images from the old host to this host, all 3-4000 of them.  Its not a huge amount of files but it is a LOT of files.

i still have permissions issues I have not figured out.  Permissions are probably the most annoying part of using Linux, yeah yeah blah blah security, I get that, but fuck there is all this users and groups and who owns the files and who can write/use the files and what user and group are the processes using.  It’s kind of insane.  I even tried the whole “give everything full perms chmod 777” method to no success.

Which has left some broken internal links on this blog.  I’ll do some backend SQL work on it but basically, I set up the old blog to run on /Year/Month/Day/PostTitle Permalinks and the new one uses the ugly post?### style.  for some reason WordPress can’t change this setting in .htaccess and it still doesn’t work when I manually create the .htaccess file.  So screw it, for now it’s ugly links all around.

Phase two will be to pull Lameazoid and Raid-Tier over, if those go smoothly I’ll start with my wife’s less used/trafficked blog and see if she even notices, then work my way up from there.  The whole process actually should be seamless all around since ultimately the domain will point to the same structure and data on the same domain.

The point is do get a more versatile host to do some more complex projects without paying for TWO hosts.  I’d rather pay more for one host than putz with two hosts which end up costing more.  I also still plan to keep Godaddy for my domains for now, I’m not unhappy with the service over there by any means, I’ve just outgrown it.

Why Can’t I Hold All These Devices?

There are 5 people in my household.  At this point, each of these people has at least a laptop and a tablet and the majority of them have a handheld smartphone style device (only one is actually a phone with data).  There are several game consoles and media devices, a couple of additional desktops, some security cameras, my Pi projects, etc etc.  A quick rundown gives me 33 Devices, though there are more that are not frequently active.

At some point, it became necessary for me to take control and actively manage my home network.  I was getting issues with double assigned IPs from DHCP, I have files on shared drives which need to have static IPs, I needed to implement security and filtering on the network for the kids to keep them from doing things they shouldn’t be doing online as well as tracking usage.

It also helps with security because I know what devices are online and if there are “outside” devices on the network.

So, a quick basic rundown of networking.  Every device, from PCs to Xboxes to iPods, get a unique IP address, most commonly on home networks this will be 192.168.1.XXX.  This is ahow data is pushed around, data has a header that says “I need to go to 192.168.1.XXX, where is that?” and routers and switches push this data around appropriately until some device says “Here I am, send it to me”.  This is really really generalized but it’s the basic idea.

These IPs can often be set up to be static (always the same) on the device, it can be assigned randomly from a pool by the Router (DHCP) or it can be assigned to be static by the Router based on the Device MAC Address.

Every device also has a MAC address.  MAC Addresses are unique to the device interface.  Think of it as a fingerprint.  I say “Device Interface” because if a machine has multiple network interfaces, say, WiFi and a Network cable jack, these will have different MAC addresses despite being one device.  In most routers, you can set up a table of MAC Addresses and tell the router “If you see this MAC, assign it the IP X”.

This is really useful for things like Laptops, Phones and Tablets.  For a machine like a desktop PC or a server that never leaves the network, it may be better to assign the IPs on the device, that is, the Device connects and says “i want to be assigned IP YYY”.  If you have a Wireless device assigned with a static IP, it can cause trouble when that device travels out of network, the static IP may not be available at say, your friend’s house or a coffee shop.  The remote location may use a different IP scheme, they may have their Router assigned to a different IP, there may be another device already using that particular IP.

So why assign IPs?

File servers really need static IPs.  If other devices are connecting to another machine to get say, photos, that other machine, the server, needs to always be in the same place.  Imagine how hard it would be to go to your friend’s home if their home was always in a different location and every building looked identical.

This also avoids IP conflicts.  This is less common since the Router is supposed to not double assign IPs but occasionally if a device disconnects and reconnects while another device is reconnecting, the IP may accidentally become double assigned, which means those data packets go nowhere.  This would be like trying to go to your friend’s address but there are two homes with the same address across the street from each other.

Assigned IPs is also great for security.  Limiting the IP range of DHCP, or limiting the number of devices that can connect keeps the network from getting over loaded by random people, though with a WiFi password this wouldn’t happen anyway.  You could also limit the capabilities of IPs connected through DHCP.  With scanning software you can also know at any time what is connected to your network.  It can also help diagnose issues.  If your unable to get your Wii to watch netflix, you can run a scan and if everything shows up but the Wii, you know the issue is probably on the Wii itself.

It’s also been good for my own experience in better learning methods for managing small networks and configuring the router.  I started off with a list of devices in a spread sheet.  I then gathered all the MAC addresses through a combination of scanning the network or checking the device itself.  Most devices will show you the MAC address in the settings somewhere and if all else fails it’s often printed on a sticker on the back side.

i then sorted out blocks of IPs based on device and sorted everything into these blocks.  This helps organize things.  The only thing that changes is the 4th octet of the IP, so everything is 192.168.1.XXX.  From here I use the following schema:

  • 01-09 = System Devices, the Router, the Wifi Access point, my NAS.
  • 10-20 = Game Consoles and media Devices
  • 21-29 = Desktops, of which there are 4.
  • 30-39 = Handheld Devices belonging to the Kids
  • 40-49 = Laptops
  • 50-59 = My Devices
  • 60-69 = Reserved for IP cameras
  • 70-79 = Reserved for Raspberry Pis and other Internet of Things style devices.
  • 100+ is used for DHCP assignments

This can be modified based on personal needs of course.  The idea is essentially that if nothing shows up under the 100+ IP range, I can know at a glance that nothing unknown is attached to the network.

Ubuntu Again

I’ve been chugging away on the same laptop for many years. now.  That old <a href=”http://joshmiller.net/2010/02/19/the-hp-mini-311-review-part-1-the-why/”>HP Mini</a> I’ve been using for years?  I’m still using that, with all it’s netbook and ATOM procesor glory.  The screen is a little flakey at the wrong angles but it gets the job done.  I’ve been sharing it with my wife for a while now, but recently (over the holidays) we bought her her own laptop.  Now that she’s blogging, it’s inconvenient for both of us to share a laptop since inevitably, both of us want to use it at any given time.

It’s also becoming increasingly more unstable, moreso when she is using it.  Part of the issue is that it has been running Windows XP since forever.  I have dual booted many flvors of Linux on it over the years and even ran the Windows 8 Beta on it for a bit.  Unfortunately Xp is completely and utterly end of life from Microsoft and more and more it shows.  The browser compatability is less and less and it’s just not as capable as it was in the past.  Unfortunately, I’m not about to shell out for a new updated version of Windows.  Since I don’t have to deal with the larning curve of teaching her how to use linux, I am not free to go back to Linux on my laptop, specifically, Ubuntu, and specifically, ONLY.  No dual booting or any of that nonsense.

I already had Lubuntu installed on a spare drive that I swapped into the machine, but I had issues getting networking to work in Lubuntu. I probably could have fixed them but I opted to just blow it out for a fresh 14.04 Ubuntu install. Unfortunately and irritatingly, the WiFi issue persisted. The core issue is that the Broadcom driver needed is “proprietary” ie not Open Source (though it is free), so it’s not installed or included by default. This problem is compunded because the age of this device means all of the tutorials are outdated and suggest I install the “jaunty backports repositories” and restricted drivers or something using Synaptic.

The specifics are not important, what’s important is Jaunty Jackelope was like 4 distros or so ago and Synaptic is no longer the package manager used. I got it working but it’s always been an issue. At least it seems this round the system defaults to “disable touchpad when typing” so my coursor isn’t flying all over the place.

So anyway, new year, new… ish… OS. Not much else will probably change on my whole projects and workflow end. I can do most everything i need to do besides play games with Ubuntu and the NAS means I can get to my files reguardless of OS. The only real issue is rejiggering my blog workflow, but lately I haven’t been posting shit anywhere anyway so it really doesn’t matter much. At the moment I’m writing this with Pico (because vi is a piece of crap), but I am not real sure there is any way to push this into productions without just cut and pasting. Also, word wrapping is non existent, which makes it tricky, what with hard line returns and junk that will probably cut and paste like garbage.