Wifi calling packet storm

Comments

24 comments

  • Avatar
    gstaylor16

    NB There isn't any option like "Preserve IKE Port for Pass Through Connections" on the Verizon Gateway or equivalent.  The Gateway is from Verizon, and it's their Wifi calling, so you'd think they'd have that figured out.  Besides, Wifi calling does actually work, it's just a packet storm shows up now and again!

    0
    Comment actions Permalink
  • Avatar
    Firewalla

    Usually, packet storms are multicast or broadcast traffic that gets replicated. In your case, they are unicast traffic; 6k pps is definitely too high; And if your wifi is congested when the storm happens, the source is the phone itself ... 

    0
    Comment actions Permalink
  • Avatar
    gstaylor16

    01:00:5e:28:00:01 is a multicast ethernet MAC address.  Yes the IPV4 address inside that packet is unicast.  Why this is done as part of the Wifi calling protocol - I don't know.

    0
    Comment actions Permalink
  • Avatar
    gstaylor16

    Further findings:

     - I can not reproduce the problem with 1 or 2 Eeros.  But easy to reproduce with 3. 

    - Whilst the problem is live, I can see it in Firewalla live data rate of ~18mbit/s.  Meanwhile the SysInfo app on my phone, which Firewalla reports is sending 18mbit/s, shows close to zero wifi usage.  The total data sent since boot on wifi shown in the phone (SysInfo app again) does not increase enough for the amount of bits sent, or for the flow data usage reported afterwards in firewalla.  This suggests to me that the phone is not sending all these packets, but perhaps it sends one and Eero then keeps repeating it.

    This leads me to suspect that Eero is the culprit here.  I wonder if there is a bug in their routing/spanning tree between using wired and wireless connection between the Eeros with multicast packets.  Again I confirmed Eero reports using wired connections and used an ethernet cable tester to be sure no obvious problems.

    Why I've not seen this for the last year I don't know, but I wonder if it's triggered by the fact Eero can now see the Verizon Router and it gets IPV6 (since Firewalla now in bridge mode and not router mode), as per my linked comment earlier. Just a wild guess, but not much else has changed.  There's no IPV6 in any of these problem packets though.

    I should probably contact Eero support, but this problem sounds pretty deep to present to a consumer product support. Might just leave Wifi calling off, or see if I can make do with 1 less Eero, assuming that continues to avoid the issue.

    0
    Comment actions Permalink
  • Avatar
    Firewalla

    How are you connecting the eero units? is it something like eero -> switch -> other eero?

    or switch -> all eero?

    The second case may cause problems according to eero. 

    0
    Comment actions Permalink
  • Avatar
    gstaylor16

    Main Eero -> switch -> other Eeros, as per original posting. Note there are other wired devices both before and after that main Eero.

    One more update: Even with 3 Eeros, if I disconnect the Ethernet from the secondary Eeros, the problem does not seem to be reproducible, even testing with the phone using each of the 3 Eeros.

    0
    Comment actions Permalink
  • Avatar
    gstaylor16

    What’s also interesting is that it can take several attempts of enabling Wi-Fi calling on a device to trigger this. So it’s not reproducible every time. I have packet dumps where I see one packet with the multicast Ethernet adresss but then no ensuing storm.

    I speculate there is some kind of race condition going on somewhere.

    0
    Comment actions Permalink
  • Avatar
    gstaylor16

    Further findings:

    - Need more than one iPhone (or presumably other Apple device) on the network attempting to talk to the Verizon Wifi calling server.  I can not reproduce the problem if only one device has wifi calling turned on. The MAC multicast packet is still transmitted but no storm results.

    My current theory:

    - The problem started happening recently. The Verizon 5G gateway firmware had a major upgrade recent.

    - Needs multiple devices. It's well known that Wifi calling needs IPSEC support in NAT to work.  Without it Wifi calling won't work at all.

    - The packets storms are on port 4500, which is IPSEC NAT traversal.

    - I speculate that something has changed (or is broken) in the Verizon gateway firmware IPSEC NAT handling.  This triggers something different in the behavior of the phone/Eero which then somehow triggers Eero to produce a packet storm (remember it does have wired and wireless connections between units).

    This is obviously speculation but it sort of fits all the facts I've work through above.  Verizon would likely tell me I'm not supposed to use someone else's Wifi, and Eero would likely tell me they don't support use with 5G gateways.

    It also looks like Verizon Wifi calling will only use IPV4 (at least through their 5G gateway), just blocking IPV4 address range blocks Wif calling completely, no switch to IPV6 takes place.

    So the solution I am going to stick with is to block wifi calling in Firewalla.   Block all traffic to UDP port 4500 will disable all 3 US networks Wifi calling. I can live without it.   A bonus is that once the phone learns that port 4500 doesn't work, it doesn't keep trying too often.

    0
    Comment actions Permalink
  • Avatar
    IHaveABigNetwork

    Beta tester with eero since 2017.  Your topology is wrong... it seems like it shouldn't be, but it is with eeros...

    Verizon 5G Home Internet Gateway --> Firewalla Purple --> Primary Eero --> Switches --> & wired devices & Secondary Eeros + wired devices

    Is the ONLY thing that will work.  Again, for those of us with networking backgrounds it doesn't SEEM like it will cause an issue, but does and has been documented for over 6 years.  I run a similar topology with a FWG+ to you in place of your purple.   You WILL have problems if you don't have that eero in bridge mode ahead of that first switch.  

    0
    Comment actions Permalink
  • Avatar
    gstaylor16

    Note I do already have the secondary Eero's 'downstream' of the Primary one already, i.e. connected to the 2nd port on the Primary Eero which is what everyone is usually pointing out is required. The difference between your topology and mine is I currently have some additional wired devices between Firewalla and the first Eero, although none of them are obviously taking part in the packet storm as far as I could see.

    Anyway, I will test this and see what happens.

    0
    Comment actions Permalink
  • Avatar
    IHaveABigNetwork

    The existence of that switch ahead of that eero is what causes the problem.  We worked with one of the original engineers at eero back in 2017-2018 and identified the behavior.  The more devices, the greater the issue.

    0
    Comment actions Permalink
  • Avatar
    gstaylor16

    I now have:  Verizon Gateway -> Firewalla purple (bridge mode) -> Eero (bridge mode) -> switches & rest of network devices & Eeros.

    Problem still occurs, confirmed with tcpdump on the Firewalla.  I'll leave the setup like that anyway, but continue to block port 4500 as a workaround.

    0
    Comment actions Permalink
  • Avatar
    IHaveABigNetwork

    What's doing your routing if the fwp is in bridge mode?

    0
    Comment actions Permalink
  • Avatar
    gstaylor16

    The 5G Gateway. Please see the first paragraph in the original comment for explanation and link to more info.

    0
    Comment actions Permalink
  • Avatar
    Support Team

    I'm not familiar with eero.

    If the problem is like what @IHaveABigNetwork said, Purple in bridge mode is kinda acting like a switch. So a bridge mode purple ahead of eero may still cause the issue.

    0
    Comment actions Permalink
  • Avatar
    gstaylor16

    Yeah, I was thinking that too.  I'll see if I can test without purple in place, the catch is then it's hard to observe anything other than internet becomes unusably slow from wifi devices.  Removing purple isn't part of any solution I want anyway, better just to disable wifi calling by blocking it.

    I took many tcpdump logs (no filter), and did some stuff with sed/sort/uniq to look see if there were many duplicate packets with the same 'seconds' in the time stamp, didn't find anything too alarming, so it's just this Wifi calling use.  Don't have any other IPSEC use though to test that.

    When I had purple in router mode I never hit this problem, but that was also with older Verizon firmware - so two variables.  I will try purple in router mode again sometime and see what happens, but again I'd rather just disable the wifi calling and be done, since except for this one snag everything is working just nicely, and getting things to work just nicely with that Verizon box has been some work...

    0
    Comment actions Permalink
  • Avatar
    gstaylor16

    One thing for example which would be different between FW in router mode and bridge mode, is that there is VLAN10 STP packets coming from the Verizon box.   I don't have any VLANs configured, so that's a little interesting.  I wonder if something like that could be having some impact on Eero.  

    22:41:53.406314 4c:ab:f8:94:6c:70 > 01:80:c2:00:00:00, ethertype 802.1Q (0x8100), length 60: vlan 10, p 0, LLC, dsap STP (0x42) Individual, ssap STP (0x42) Command, ctrl 0x03: STP 802.1d, Config, Flags [none], bridge-id 7fff.4c:ab:f8:94:6c:70.8001, length 39

    Also stuff like this is coming out of the Verizon box:

    22:41:52.986490 4c:ab:f8:94:6c:70 > 01:80:c2:00:00:13, ethertype IEEE1905.1 (0x893a), length 247: 

    IEEE19501 appears to be related to load balancing over concurrent connections.

    I guess this is happening because the Verizon box is designed to work with their wifi mesh solution. 

    I wonder if this stuff is interfering with Eero in some way.  None of it would make it to Eero with FW in router mode.

    This looks to be the only multicast ethernet traffic coming out of the Verizon box.  How can I stop Purple's bridge from forwarding to the LAN port, assuming it is doing that?  Even temporarily with some linux commands so I can test.

    0
    Comment actions Permalink
  • Avatar
    gstaylor16

    I did a quick test of "sudo ifconfig br0 -multicast".  I thought I got lucky at first but I still managed to see the packet storm.  Actually that means I have a misunderstanding as I still captured 200k plus ethernet multicast packets on an interface which showed "br0: flags=4163<UP,BROADCAST,RUNNING>  mtu 1500.

    0
    Comment actions Permalink
  • Avatar
    gstaylor16

    "sudo ifconfig eth0 -multicast" as expected stops any multicast showing up from the Verizon box.  I was able to enable wifi calling 20 times in a row, without any packet storm.  That's previously unheard of.

    Turning off all multicast on eth0 sounds a little drastic, I don't know if something else might break.  Question for 'firewalla', I'd like to block the IEEE1905.1 traffic coming from eth0 as my next test. (a) what commands to use (b) if it works which file to put that in so it runs each time firewalla boots up.

    0
    Comment actions Permalink
  • Avatar
    Support Team

    You may try with this.

             sudo ebtables -A FORWARD -i eth0 -p 0x893a -j DROP

    ethertype: 0x893a ==> IEEE1905.1

    Disclaimer: It is untested.

     

    If it works, you may add the script to /home/pi/.firewalla/config/post_main.d/ , it will auto launch when firewalla boots up.

    More info here: https://help.firewalla.com/hc/en-us/articles/360054056754-Customized-Scripting-

    0
    Comment actions Permalink
  • Avatar
    gstaylor16

    This doesn't work alone.  Of course the earlier trick of blocking all multicast might not stop the packet storm internally, but it does stop it going through the bridge (and being counted therefore I assume) and stops it reaching the Verizon box.

    I have some further experiments to try yet.  

    0
    Comment actions Permalink
  • Avatar
    gstaylor16

    The problem is reproducible without Firewalla with this arrangement.   5G Gateway --> Eero (bridge mode) --> Switches & more Eeros.   Set a 0.5s interval ping going on the phone (Net Analyzer app), wait to check its not dropping anything, force wifi calling to come on from the phone settings, the pings mostly get dropped with maybe 1 in 10 getting through.

    It also maybe looks like the phone needs to be reported by the Eero app as using a non-primary Eero at the time. I say maybe as I'm not 100% sure about this, but it does seem that I can trigger it every time that way.

    The problem is not reproducible connecting one phone directly to the 5G Gateway wifi.

    I've checked that all switches are dumb (Netgear basic GS108 model), no ethernet loops, and used a cable tester on all patch cables and through house wiring.

    Clearly my next stop would be Eero support, but thanks to having Firewalla I can block port 4500 and workaround the issue, and can capture packet dumps to know enough to find that issue.  

    0
    Comment actions Permalink
  • Avatar
    Firewalla

    Awsome, that's some good detective work!

    0
    Comment actions Permalink
  • Avatar
    gstaylor16

    Eero ticket has not really progressed but they have recorded it.  But I found something else which is interesting:

    If on Firewalla I add an allow rule for "traffic from internet, bidirectional, to/from wo.vzwwo.com", that is to permit incoming traffic from the wifi calling server, then this seems to avoid the packet storms, and wifi calling works on multiple devices (all are Verizon).  Note that the 5G gateway also has its firewall turned off.   This arrangement has been working for several days.  My guess, but I've not had the time to debug in any detail, is that the setup sequence between the server and the devices differs a little, since some additional 'return' packets get through, and the handshake somehow avoids the failure case.     Note also that when I tested earlier without firewalla present at all (see earlier comment), the 5G gateway firewall was switched back on first.  Multiple variables but a better solution, and just posting it here in case it should ever help anyone else, unlikely as that seems.

    0
    Comment actions Permalink

Please sign in to leave a comment.