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.

8 comments:

  1. Is there an update coming on this?

    ReplyDelete
  2. Absolutely, but unfortunately the install date for connections in my area keep getting pushed back. The latest I got was "spring 2015". I did see a comment recently from a guy who did pretty much exactly this using OpenWRT and he reported it working fine so I'm hopeful. Thanks for dropping by.

    ReplyDelete
    Replies
    1. Thanks for the reply. We've had GF since 2012. I'm working on a pfsense box right now. We'll see how it goes.

      Delete
  3. FWIW, I just read this page from Google themselves which lists their basic info about how to use their service without using their network box

    https://support.google.com/fiber/faq/3333053

    I finally get my install 11/11 so I'll be able to test this soon myself, but it's nice to see Google provide official guidelines for doing so and it not just be a public-discussion topic on their forum.

    ReplyDelete
  4. Looking over their doc closer, one thing that stands out is that they mention setting the CoS bit but didn't give any examples of actually doing so. They do roughly cover setting the VLAN tagging though, for Linux and Mac at least. I don't use pfsense so I can't say how that information translates but I reckon you know it well enough to do that on your own. Without setting the CoS bit I think your UPloads will be limited to 10Mbps or so, but DOWNloads should still be 1Gbps assuming your own network equipment can sustain it. My source for that is just what others have reported. Eager to get my install 11/11!

    ReplyDelete
  5. My in-home install completed 11/11 but family plans kept me from geeking with it as much as I'd have liked so it's just basically setup the default "Google" way at the moment. The installer was competent with running cables but didn't seem to understand anything about VLANs or CoS. He seemed really puzzled for example when I told him Google has documented that they dedicate a /29 IPv4 range to each premises, so it must be possible to connect even several of my own devices to the public side of the Ethernet, just out of the fiber converter, but that baffled him and he didn't think it would be possible. I wasn't going to pester him as he was far better with the actual cable runs than I have ever been, and I'll put this to the test on my own with these guidelines by the weekend.

    ReplyDelete
  6. A little late, but want to say setting the VLAN and CoS as you pointed out above worked for me on Debian Jessie. For IPv6, I followed the guide at http://www.ipcalypse.ca/?p=204 and verified a workstation behind the firewall receives a "scope global mngtmpaddr dynamic" address and is pingable from the Internet.

    ReplyDelete
  7. Thanks for the feedback Adam. Yes, I've long since had this up and running and never got back to clean up this guide, but it turned out to be fairly simple. I even got the IGMP proxy service setup for the TV side of it and it was fully functional and completely painless.

    I simply installed and used igmpproxy, setup as follows

    -----
    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
    -----

    ReplyDelete