I've been a DSL Customer for close to a decade, starting with SNET when I moved into this house and then becoming an ATT Customer when they swallowed SNET. I run a home based business, building custom software for small businesses and it has always been beneficial for me to have static IP Addresses. ATT recently "forced" me to upgrade my service to UVerse, and the upgrade has been a tedious one for me. There are various reasons for this including the fact that they block port 25, and forced me to pay to remove the block on my plan. The other reason this has been hard is my use of static IP Addresses.
This post is to tell you how to get your Static IP Addresses working with ATT UVerse. The documentation out there is somewhere between lacking and non-existent.
Why do I need static IP Addresses
The crutch of this post relates to setting up the static IP Addresses, so first I wanted to discuss why I need static IP addresses. I'm a programmer, and I make a living by solving the problems of small businesses with technology. I primarily do development with web based technologies. I need a static IP for two primary reasons, one to host a server and two to access remote servers that are IP Restricted. I'll expand on each of those.
I keep my development server on my home office network. I host a web server so my clients can check in on development in progress. The machine also hosts a database server and version control repository. It is common that I hire remote workers who have to access those services. The machine also hosts my backup repository. Every machine on my network is backed up on a daily basis. While it is not necessary for the backup server to be remotely accessible, there is a level of convenience to still perform my backups while on the road.
The second reason I need a static IP is so I can access the remote services of my clients. It is not uncommon that a client will need my static IP in order for them to give me access to their VPN or web server. It is this very reason I upgraded my SNET account to static IPs in the past. Not having a static IP was limiting the opportunities.
I'm sure if you want a static IP for your home network, you have similar reasons. Before the UVerse upgrade, my network used a Netopia router (The Netopia 3347-02 ) to assign the static IPs based on the MAC Address of the machine. This was useful for multiple reasons:
- First, I could give an individual IP Addresses to another router. I used this to segment the 'home" machines from my work machines. Home machines might be my wife's laptop or the Wii. Work machines would be my primary development machine.
- Second, I could individual IP Addresses to a specific machine. This is exactly how I set up my server. I gave its network card an external IP and pointed the DNS back at that IP address for the domain.
- Third, even though the machines had different external IP Addresses, they could be on the same internal network (192.168.1.x ). This allowed me to easily share files among the machines. To push a new build from my development machine to the development server, I merely had to move files across the network and not deal with FTP or some other such protocol. This was convenient.
Those were my primary reasons for the setup I had.
Problems with the UVerse Setup
With the UVerse setup, I ran into multiple problems. The first is that even though I was paying for a block of static IP addresses, those IP Addresses were not distributed to me manually. So, all my "DHCP" machines were seen externally as some IP Address out of my block. This was limiting access to remote services I needed to access. Before the UVerse upgrade, this was not the case.
The second is that there was no way to assign IP addresses at the hardware level. It had to be done by setting them on the specific machine. This meant that the internal network access of the machine was limited. Machines with static IPs were not discoverable on the network or accessible by their network name. I did discover-eventually-I could access the machines by their external static IP Address, though. But, remembering "123.987.54.115": is a lot harder than remembering "DotComItDevServer".
I also had another more pressing problem. Pages wouldn't load properly. It would routinely take me three reloads before my profile on Stack Overflow would load. Or, we would load up our Facebook wall and most of the images wouldn't load. These sort of dropouts are a documented issue.; and my wife was not amused.
The fix for the drop outs was to set up the ATT UVerse Router (A Motorola NVG510) to operate as a pass through router; and use another router behind it. I spent roughly a day trying to make that work with my Netopia before deciding it wasn't possible. A friend suggested I try a Linksys/Cisco RV042. I found the manual and decided to give it a shot. It sounded like the one-to-one NAT was exactly what I wanted.
As a side note, the RV042 manual is the best documentation I've ever seen come with a router. Lots of routers I've used would have a page named something like "NVM-142" setup. The help associated with that page would say "This is where you set up the NVM-142" settings." However, they were often lacking in describing what NVM-142 was or why I would want to change the settings. ( I made up the name NVM-142).
Nevertheless, the RV042 did indeed work to do exactly what I wanted.
Step 1: Give the RV042 its own Static IP Address
The UVerse router doesn't act as a pass-through. A few folks found a work around, but it didn't work for me with the Netopia. I didn't even try that approach this time. My first step was to see if I could assign one of the static IP addresses from my "block" to the RV042. I could, and did. Sign into your Motorola UVerse router, select "Home Network" from the main tab bar, and Subnets and DCHP from the submenu:
The Public Subnet information relates to my block of static IPs and was set up by the UVerse technician who did the install. The private LAN setup was chosen by me; but based heavily off the initial setup. The device IPv4 address is the IP address that you will use later to access this Router's admin system. Most likely it was set by default to 192.168.1.254 . I changed the third number to a 2. I did this because the DV042 router would not me use an IP range different than 192.168.1.*. (I find this extremely odd and may be something I did).
The start address and end address define the 'local' range that will be applied to machines that hook up directly to this router. I think 64-253 was the default. I removed the 253 during my experiments, but I don't think you have to. The "passthrough" instructions tell you to make sure this assigns only a single IP Address, but I didn't bother.
Give the Cisco RV042 a Static IP
Get into the Cisco router admin. I strongly suggest you use Internet Explorer for the admin; as it was really funky in Firefox. You may be able to do a lot of this using the setup wizard, but I'll explain assuming you won't. Click the setup, and network options:
The host name and domain name came in as the default and I left them unchanged. I do not believe that UVerse requires those there, but I'm not sure.
I set the IP mode to IPv4 only. This idea came from the instructions on the other site about setting up the other router as a passthrough. I'm not doing anything with IPv6, so this feature doesn't affect me (yet). I gave the device IP an address of 192.168.1.253. I was hoping to get both this router and the UVerse router operating off the same range, but eventually landed on the "two range" approach. In my use of this router, I am only using WAN1; and I set it to Static IP. Click the edit button next to WAN1 and you'll see this:
I set the WAN Connection type to static IP. Then I specified a WAN IP Address that was in the range provided to my ATT. I used the same Subnet mask that the ATT Folks set up in the UVerse router (see Screenshot 1). I specified the default gateway address as the public IP Address specified in the private subnet section of screenshot 1.
The DNS Servers come from the UVerse Router. Sign into it again, click the Broadband main menu button and then click Status. Copy the Primary and Secondary DNS listing from that status page into the RV042 spot here. I kept the MTU setting to the default.
Set up DHCP on the DV042
Now is a good time to set up your DHCP setting. My original intent was to make the UVerse router deliver IP addresses on one block (22.214.171.124-253) and the RV042 deliver the rest ( 192.168.1.1-192.168.1.63). However, that wouldn't work. This DHCP setup page wouldn't let me enter a value below 100 for the end range, and the router would not let me change the actual range to 192.168.2.x . That is the reason I changed the UVerse router's default IP addresses instead of this one. Here is a screenshot of the DHCP page:
I truncated some parts of this screenshot; removing the section for Static IP (which we'll get to later) , the DNS Section (which I did not use, leaving the values at 0.0.0.0), the WINS Server (which I also did not use leaving the value at 0.0.0.0), and the DNS Local database (which I also did not use).
What I did do is enabled the DHCP server, did not enable the DHCP relay. I set the start value to 126.96.36.199 and the end value to 192.168.1.063. If I the final number in the range end slot is less than three digits it gives a [confusing] error, which is why I had to add the leading 0. I could probably use a larger number span, but when I set these values I was still experimenting with getting both the UVerse and the DV042 to share the same IP range.
Around this point in the process, you'll need to restart the router. Hook up the WAN1 port on the back of the RV042 and plug it into any Network port on the back of the UVerse router. Now any machines that connect to the UVerse Router will, externally, show the static IP address assigned to the router, while internally having another address. This allows us to do the filing sharing internally, and access remote services externally; which is an important piece to why we chose this approach.
Set up the Cisco Router to assign static Internal IPs
There are two steps to route the external static IPs to a single machine in the internal network. The first is to assign an internal static IP to the mac address of the machine. The second is to tell the router to redirect all incoming traffic to one of the IPs in your block to that internal IP. I'll cover each step separately. From the DHCP Setup page in the RV042, take a look at the Static IP section:
Click the Show Unknown MAC Addresses button. This button is designed strictly to make it real easy for you to assign internal IPs to the static IP Address. This popup should open:
Choose the MAC Address that represents the machine-or device-you want to assign a static IP address to and click the enable button. You can also give the machine a name so you remember what it is later. I use the computer names that I use internally, such as "DotComItDevServer" or similar. Click the OK button and the settings will be saved.
Your new entry will show up in the white box below the edit form. You can change the Internal Static IP Address by clicking on it in the box, making your changes, and then selecting update.
Assign External IPs to Internal IPs
Next you'll want to enable one-to-one NAT on the RV042 router. Select from the Settings navigation on the left and then click the one-to-one NAT button. I believe this was disabled by default, but there should be a checkbox you can select to enable it. You'll see a screen similar to this:
This part was not intuitive to me; however the full manual provides the details. This section of the admin will let you assign a range of external IPs to a range of static IPs. If you use the range, then the first number of the public range will apply to the first number of the private range, and so on. When using DHCP you really never know which machine is going to get which static IP. That would be fine for the use of my range to access external computers, but less than idea for providing a public IP that people can access from the outside. I set up all my ranges with a 1 to 1 ratio.
For the internal IP Address use the one you assigned to a specific MAC address earlier. ( 192.168.1.3 ). For the public range, just choose a number from the public block you were provided by UVerse. For the range length, select 1. Click the "Add to List" button. You should be good to go, but you may want to restart the routers and the computers just to be on the safe side. You may be able to get by doing an IPConfig /release | ipconfig /renew on the computer in question.
Setting up a Wireless
My next step-which does not relate to static IPs-was to turn off the wireless in the UVerse router, plug my old Netopia router into the RV042, and then set the Netopia's DHCP to relay mode. This means any wireless devices that connect to my network will get an internal IP address from the RV042.
This is not the only way to set up static IP addresses. My friend Andrew has a post about his adventures doing the same thing. He has similar reasons for wanting this that I do. Andrew took a different approach than me; but his blogging about it inspired me to write this. If you're still 'researching' then I suggest reading his post too.
I think the "nightmare" portions of my UVerse upgrade are almost over. I just have to call them to find out if they did force me into a yearly "premium support" subscription-as per the email I got from them or if what I was told about being charged a 1 time fee was the truth.