DSL Setup


Hardware

Software

Setup performed on an Ubuntu 18.04

PPP

The first part of software we need is the PPP daemon, which can easily be installed from the repo.

apt install ppp

PPPoE

There is a Point-to-Point Protocol over Ethernet implementation from Roaring Penguin implementation.

Install

# Don't use this link, but get the current version!
wget https://www.roaringpenguin.com/files/download/rp-pppoe-3.12.tar.gz
tar -xf rp-pppoe-3.12.tar.gz
cd cd rp-pppoe-3.12
cd src
./configure
make
make install

Configure

Server options in /etc/ppp/pppoe-server-options

require-chap
login
lcp-echo-interval 10
lcp-echo-failure 2
ms-dns 8.8.8.8
netmask 255.255.255.0
defaultroute
noipdefault

Credentials in /etc/ppp/chap-secrets

# Secrets for authentication using CHAP
# client        server  secret  IP addresses
a               pptpd   "b"       192.168.254.100

You will also have to restrict access to this file, otherwise the server will protest. sudo chmod 600 /etc/ppp/chap-secrets

Address pool in /etc/ppp/ipaddress_pool

192.168.254.50-150

Start

pppoe-server -C isp -L 192.168.16.240 -p /etc/ppp/ipaddress_pool -I enx00e04c013655 -m 1412

You will also have to “fix” IP forwarding and routing / NAT to actually provide an uplink to the DSL clients

iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward

TR-069

genieacs

https://genieacs.com/

Installation

Installing following the instructions in the docs

apt install npm
git clone https://github.com/zaidka/genieacs.git
cd genieacs
git checkout $(git tag -l v1.1.* --sort=-v:refname | head -n 1)
npm install
npm run compile

GUI

apt install ruby-bundler ruby-dev zlib1g-dev libsqlite3-dev

git clone https://github.com/zaidka/genieacs-gui.git

cd genieacs-gui
cp config/graphs-sample.json.erb config/graphs.json.erb
cp config/index_parameters-sample.yml config/index_parameters.yml
cp config/summary_parameters-sample.yml config/summary_parameters.yml
cp config/parameters_edit-sample.yml config/parameters_edit.yml
cp config/parameter_renderers-sample.yml config/parameter_renderers.yml
cp config/roles-sample.yml config/roles.yml
cp config/users-sample.yml config/users.yml

bundle update

bundle

cd bin 
rake db:migrate

Start

To run it, you will have to start genieacs-cwmp, genieacs-fs and genieacs-nbi in genieacs/binfor the main program and run rails s in genieacs-gui/bin/.

Afterwards you can log into http://127.0.0.1:3000/ using admin:admin.