5/07/2014

Getting a Linux router to work with a direct connect to Google Fiber


  • 22 Sep 2015
    • I've had this working for a long time, but wanted to officially post instructs for setting up the IGMP portion for TV service.
    • I simply installed igmpproxy and configured it as follows. br-wan is my WAN interface, br-lan is my LAN interface, you'll just need to adjust those interface names for your own environment. This is the entirety of my igmpproxy.conf file and I haven't had any problem with it for months. Technically you should only need the 10.30. and 10.79. altnets, but I was getting intermittent igmpproxy log errors about other 10. unknown upstream IP sources (even though my TV service appeared to be working fine) so I added the 10.16. altnet as a catch-all and that got rid of the errors, and even though my own network runs a 10.

      • quickleave

      • phyint br-wan upstream ratelimit 0 threshold 1
      •         altnet 10.16.0.0/16
      •         altnet 10.30.0.0/16
      •         altnet 10.79.0.0/16

      • phyint br-lan downstream ratelimit 0 threshold 1

  • 13 Nov 2014
    • Tested this guide with my own setup and it worked exactly as planned.
    • Test environment
      • GF Jack to a standard (non-managed) 5-port Netgear 1Gb switch
      • Netgear switch to two legs
        • GF Network Box
          • Was running simultaneously, with its own pubic IPv4 and IPv6 address
        • OpenSUSE Linux box
          • Got a different public IPv4 address
  • 12 Nov 2014
    • Greatly simplified the CoS settings per the latest FAQ from Google. Simply set default egress CoS to 2.
  • I got my install 11/11/2014 and will finally be able to test this myself.
  • Google has provided some official-but-vague guidelines for using their service without their network box here: https://support.google.com/fiber/faq/3333053
 -----
  • This is a work in progress. The content will likely change frequently until the details are worked out so check back often for updated info.
  • I'm posting publicly for peer review, questions, and collaboration.
  • While being developed, it assumes you already have basic familiarity with the effort and the how, what, and why it is being done.
  • Assuming eventual success, I'll rewrite this for a more general audience at that time.
Goal:
  • To completely replace the Google Fiber Network Box (GFNB) with a Linux router
  • Capable of full link performance.
  • Reliably proxy IGMP for Google Fiber TV (GFTV) functionality.
    • note: The GFTV/IGMP aspect is only precursorily addressed at this time by setting the Google-specified VLAN CoS bits for it. I will get to the GFTV/IGMP functionality in more detail if/when the Internet connection itself works as intended.


1. Your Internet interface must be configured for VLAN 2.

ensure the VLAN module is loaded:
--
modprobe 8021q

2. Create VLAN 2 on your Internet interface, eth0 (for example)
--
vconfig add eth0 2

3. Google has said the VLAN CoS bit must be set on packets egressing to the fiber. Without setting the CoS you will likely be limited to 10Mbits/s UPload, if it works at all.

To set CoS for VLAN 2, map (default) skb-priority 0 to CoS 2:
--
vconfig set_egress_map eth0.2 0 2

5. Use your DHCP client to get an IPv4 address for your VLAN 2 interface: (dhclient for example)
--
dhclient eth0.2


As I understand it that should do it for a basic IPv4 connection. IPv6 steps can be extrapolated from the above though I intend to document the IPv6 setup in the final version.

Feedback very much appreciated, thank you.