Previously, I discussed various options when considering the replacement of a CenturyLink Technicolor C2000T router/modem in Getting Rid of the CenturyLink Router.

Time to get rid of the CenturyLink router. With the Ubiquiti EdgeRouter X plugged in, and the eth1 port hooked up to my laptop’s LAN port, getting to the login was easy enough.

In the Windows Network and Sharing Center, I selected the ethernet adapter’s properties and gave it a static IP of 192.168.1.100 with a subnet mask of 255.255.255.0

Next, I pointed the browser to 192.168.1.1 and was greeted with the EdgeMax login screen. The default user name and password are both ubnt.

There were a lot of settings, so I wandered over to https://community.ubnt.com/t5/EdgeMAX/CenturyLink-FTTH-w-Prism-IPTV-working-with-hardware-offload/td-p/1343070 and grabbed the following script for FTTH and Prism.

firewall {
    all-ping enable
    broadcast-ping disable
    ipv6-receive-redirects disable
    ipv6-src-route disable
    ip-src-route disable
    log-martians enable
    name WAN_IN {
        default-action drop
        description "packets from Internet to LAN"
        enable-default-log
        rule 1 {
            action accept
            description "allow established sessions"
            log disable
            protocol all
            state {
                established enable
                invalid disable
                new disable
                related enable
            }
        }
        rule 3 {
            action accept
            description "allow multicast UDP in"
            log disable
            protocol udp
            source {
                address 224.0.0.0/4
            }
        }
        rule 4 {
            action accept
            description "allow CenturyLink Prism multicast UDP in"
            log disable
            protocol udp
            source {
                address 67.12.0.0/15
            }
        }
        rule 5 {
            action accept
            description "allow CenturyLink Prism multicast UDP in"
            log disable
            protocol udp
            source {
                address 151.118.0.0/16
            }
        }
        rule 6 {
            action drop
            description "drop invalid state"
            log disable
            protocol all
            state {
                established disable
                invalid enable
                new disable
                related disable
            }
        }
    }
    name WAN_LOCAL {
        default-action drop
        description "packets from Internet to the router"
        enable-default-log
        rule 1 {
            action accept
            description "allow established session to the router"
            log disable
            protocol all
            state {
                established enable
                invalid disable
                new disable
                related enable
            }
        }
        rule 2 {
            action accept
            description "allow IGMP in"
            log disable
            protocol igmp
        }
        rule 3 {
            action drop
            description "drop invalid state"
            log enable
            protocol all
            state {
                established disable
                invalid enable
                new disable
                related disable
            }
        }
    }
    receive-redirects disable
    send-redirects enable
    source-validation disable
    syn-cookies enable
}
interfaces {
    ethernet eth0 {
        duplex auto
        speed auto
        vif 201 {
            address dhcp
            description "CenturyLink VLAN"
            firewall {
                in {
                    name WAN_IN
                }
                local {
                    name WAN_LOCAL
                }
            }
        }
    }
    ethernet eth1 {
        address 192.168.53.1/24
        duplex auto
        speed auto
    }
    ethernet eth2 {
        disable
        duplex auto
        speed auto
    }
    loopback lo {
    }
}
protocols {
    igmp-proxy {
        interface eth0.201 {
            alt-subnet 0.0.0.0/0
            role upstream
            threshold 1
        }
        interface eth1 {
            alt-subnet 0.0.0.0/0
            role downstream
            threshold 1
        }
    }
}
service {
    dhcp-server {
        disabled false
        hostfile-update disable
        shared-network-name eth1 {
            authoritative disable
            subnet 192.168.53.0/24 {
                default-router 192.168.53.1
                dns-server 192.168.53.1
                lease 86400
                start 192.168.53.100 {
                    stop 192.168.53.199
                }
            }
        }
    }
    dns {
        forwarding {
            cache-size 150
            listen-on eth1
        }
    }
    gui {
        https-port 443
    }
    nat {
        rule 5000 {
            description NAT
            log disable
            outbound-interface eth0.201
            protocol all
            type masquerade
        }
    }
    ssh {
        port 22
        protocol-version v2
    }
}
system {
    conntrack {
        expect-table-size 4096
        hash-size 4096
        table-size 32768
        tcp {
            half-open-connections 512
            loose enable
            max-retrans 3
        }
    }
    host-name ubnt
    login {
        user ubnt {
            authentication {
                encrypted-password $1$zKNoUbAo$gomzUbYvgyUMcD436Wo66.
            }
            level admin
        }
    }
    name-server 8.8.8.8
    name-server 8.8.4.4
    ntp {
        server 0.ubnt.pool.ntp.org {
        }
        server 1.ubnt.pool.ntp.org {
        }
        server 2.ubnt.pool.ntp.org {
        }
        server 3.ubnt.pool.ntp.org {
        }
    }
    offload {
        ipv4 {
            forwarding enable
            vlan enable
        }
    }
    syslog {
        global {
            facility all {
                level notice
            }
            facility protocols {
                level debug
            }
        }
    }
    time-zone America/Denver
}]

So, I copied that to a text file.

Next, I fired up Putty to take a look at the EdgeOS Command Line Interface (CLI). Pointing Putty to 192.168.1.1 and using the default ubnt user/pass combo, I was in.

Then, I fired up WinSCP, but FileZilla should do just as well. Again pointing to 192.168.1.1 and logging in with the default.

The first thing I did was to back up the original config file. There are CLI operations to do this, but I was in the FTP client anyway.

I went up to the root and copied /config/config.boot to my local machine. Then, I edited the config.boot file on the router. I copied the config from the ubnt forum into the router’s boot.config, saved it, then went back to Putty and issued a reboot command.

The script above turns on DHCP using the 192.168.53.0 range. I went back into my ethernet settings and turned on DHCP discovery. When the router rebooted, I was able to browse to 192.168.53.1 and log into the web gui. Scuttling over to the users tab, I did the following:

  1. Create a new admin user with a strong password.
  2. Log out.
  3. Log in with the new admin user.
  4. Delete the original admin user.
  5. Shutdown the router.

Now it was time to hook up the WAN to to eth0 and the LAN to eth1.

Voila!

Now you can hook up a wireless router to eth1 or look at setting up WAPs instead.

I got some great start on this project by reading a post the following post. It has some good pointers on what to look for in your CenturyLink setup to make sure this solution will work for you.

http://kmwoley.com/blog/bypassing-needless-centurylink-wireless-router-on-gigabit-fiber/