Monthly Archives: October 2016

Using an Ubiquiti Edgerouter with AT&T Gigapower fiber

I was really excited when I found out that AT&T was running fiber to our neighborhood.  For the last 5 years we’ve been limping along with 5mbps DSL.  After the install I started poking around in the provided AT&T gateway, the Arris 5268AC.  I was immediately disappointed with the lack of control it provided for my network; specifically absent was the ability to add any additional routes to the route table.  I would need this functionality for my site-to-site vpn tunnel.  This among other deficiencies led me to research options to add more control.  Surprisingly this particular gateway does not provide a true IP pass-through or bridged mode.  The closest you can get is the DMZ+ functionality which still sits behind the devices stateful firewall.

After some research I found a few great posts how others have overcome the limitations of the AT&T provided solution.  The posts below were great resources when building my configuration.

http://blog.0xpebbles.org/Bypassing-At-t-U-verse-hardware-NAT-table-limits

https://strscrm.io/bypassing-gigapowers-provided-modem.html

https://www.dslreports.com/forum/r30708210-

With this solution, like the others, we utilize the AT&T provided gateway to authenticate our service but nothing more.  To accomplish this we will bridge two interfaces allowing 802.1X/EAP traffic to the Arris gateway for authentication while utilizing an additional interface for LAN traffic.

First, we need to pull our connection specific information.  You’ll need the following, all available from the AT&T provided gateway.  I currently have a static IP provided by AT&T but I believe with a little extra work DHCP should be possible.

  • IP address
  • Gateway IP
  • Gateway MAC address

edgerouter-1

Once everything is connected as shown above run the following commands:

Create the bridge interface:

set interfaces bridge br0

Add eth1 and eth2 to br0

set interfaces ethernet eth1 bridge-group bridge br0
set interfaces ethernet eth2 bridge-group bridge br0

create a sub-interface on br0 with your static IP.

set interfaces bridge br0 vif 0 address X.X.X.X/X

set your routing

set protocols static route 0.0.0.0/0 next-hop X.X.X.X

define a source NAT masquerade rule for the br0.0 interface

set service nat rule 5000 outbound-interface br0.0
set service nat rule 5000 type masquerade

Next we need to allow the gateway to pass auth traffic through the bridge

echo 8 > /sys/class/net/br0/bridge/group_fwd_mask

Because of the nature of an interface bridge all traffic is copied to both interfaces. Running a tcpdump on the Arris interface shows all ingress and egress traffic.   To only allow 802.1X/EAP traffic to the gateway we need to use ebtables.

ebtables -t filter -A FORWARD -i eth2 -p 802_1Q --vlan-encap 0x888e -j ACCEPT
ebtables -t filter -A FORWARD -i eth2 -p 802_1Q -j DROP
ebtables -t filter -A FORWARD -o eth2 -p 802_1Q --vlan-encap 0x888e -j ACCEPT
ebtables -t filter -A FORWARD -o eth2 -p 802_1Q -j DROP

Finally, we need to spoof our br0.0 MAC address so that it presents itself as the AT&T gateway. Run these commands as root.

ip link set br0.0 down
ip link set br0.0 address XX:XX:XX:XX:XX:XX
ip link set br0.0 up

Remember every time that br0.0 is created it needs to have its MAC spoofed, this means on every reboot.  To accomplish this we will create a simple script in /config/scripts/post-config.d/

#!/bin/bash
echo 8 > /sys/class/net/br0/bridge/group_fwd_mask
ip link set br0.0 down
ip link set br0.0 address XX:XX:XX:XX:XX:XX
ip link set br0.0 up
ebtables -t filter -A FORWARD -i eth2 -p 802_1Q --vlan-encap 0x888e -j ACCEPT
ebtables -t filter -A FORWARD -i eth2 -p 802_1Q -j DROP
ebtables -t filter -A FORWARD -o eth2 -p 802_1Q --vlan-encap 0x888e -j ACCEPT
ebtables -t filter -A FORWARD -o eth2 -p 802_1Q -j DROP

interfacesinterfaces

routing tablerouting

I hope others find this useful, let me know if you have any questions. Remember tcpdump is your friend when troubleshooting interfaces.