wiki:SystemNotesEdgeRouterLITE

I installed BIND 10 on my EdgeRouter LITE. This runs EdgeOS, which is apparently derived from Vyatta, which is in turn derived from Debian. These system notes describe the whole process.

1. Set up the EdgeRouter LITE

If you've already got the device set up, then skip this step.

Otherwise, we want to change the default password and set the device up to act as a DHCP client.

  • Connect an Ethernet cable to port 0, with the other end going to some switch or directly to a computer.
  • Use a web browser and head to 192.168.1.1 (a certificate will be generated on the EdgeRouter which will take a short while)
  • Login with the default username/password ("ubnt"/"ubnt")
  • Change the default password:
    • Click on Users
    • For the "ubnt" user, choose Actions -> Config -> Change Password
  • Enable DHCP:
    • Click on Ethernet
    • For the "eth2" interface, choose Actions -> Config -> Use DHCP -> Save

Now connect port 2 on the device to some network with a DHCP server. You can see the IP address that it has gotten on the web UI. If your DHCP server updates the DNS, the device will be added to the DNS as "ubnt". (You can also change the device name with the Systems panel, if you want a different host name.)

2. Configure to use Debian repositories

We can get dependencies and build software from the base Debian repositories.

Instructions for this were found in a post on the EdgeMAX community site:

http://community.ubnt.com/t5/EdgeMAX-CLI-Basics-Knowledge/EdgeMAX-Add-other-Debian-packages-to-EdgeOS/ta-p/413071

Log into the device using SSH as the "ubnt" user with the password you have set above. You can use the IP address or the hostname if your DHCP/DNS setup supports that (defaults to "ubnt").

$ ssh ubnt@ubnt

Next type:

configure
set system package repository squeeze components 'main contrib non-free'
set system package repository squeeze distribution squeeze
set system package repository squeeze url http://http.us.debian.org/debian

set system package repository squeeze-security components main
set system package repository squeeze-security distribution squeeze/updates
set system package repository squeeze-security url http://security.debian.org
commit
save
exit

Now you can update the system repositories and the software:

$ sudo apt-get update
$ sudo apt-get dist-upgrade

3. Install necessary dependencies.

Most required dependencies are available as Debian packages, so their installation is easy:

$ sudo apt-get install g++ python3 python3-dev python3.1 python3.1-dev libbotan1.8-dev libbz2-dev libgmp3-dev bzip2 make libboost-dev pkg-config libsqlite3-dev sqlite3 git automake libtool

4. Install log4cplus

Almost everything is included in Debian 6.0, except log4cplus, which has to be compiled from sources. Download log4cplus from http://sourceforge.net/p/log4cplus/wiki/Home/, then use scp to copy it to the router:

$ scp log4cplus-1.1.2.xz ubnt@ubnt:.

Issue the following commands to compile and install it:

$ xz -d | tar xf - # ignore warnings...
$ cd log4cplus-1.1.2
$ ./configure --prefix=/opt/log4cplus-1.1.2
$ make -j2
$ make check
$ sudo make install
$ make clean  # optional... recover some space
$ cd /opt
$ sudo ln -s log4cplus-1.1.2 log4cplus

This puts the library in /opt.

5. Get BIND 10 via git and prepare the source

$ cd   # go back to the home directory
$ git clone git://git.bind10.isc.org/bind10
$ cd bind10
$ autoreconf --install  # ignore warnings

6. Build and install BIND 10

Once those steps are completed, you should be ready for BIND10 compilation and installation:

$ ./configure --prefix=/opt/bind10.git --with-log4cplus=/opt/log4cplus --without-shared-memory # shared memory requires a more recent version of boost
$ nice make -j2
$ sudo make install
$ make clean # optional... recover some space
$ cd /opt
$ sudo ln -s bind10.git bind10

The compilation takes about 3 hours.

7. Run BIND10!

Congratulations, you are now ready to run BIND10!

Create a user account:

$ sudo /opt/bind10/sbin/b10-cmdctl-usermgr add ubnt

Run BIND10 boss in one console:

$ sudo /opt/bind10/sbin/bind10

And start configuring it from the other console:

$ /opt/bind/10/bin/bindctl
Last modified 4 years ago Last modified on Jan 10, 2014, 3:17:49 PM