WAN Interface continuously cycles up and down



  • I'm running pfsense 2.0 (i386) using the "EXPI9402PT 10/ 100/ 1000Mbps PCI-Express PRO/1000 PT Dual Port Server Adapter" NIC. I've been trying to play with setting the MTU and the Speed and Duplex. It appears that if I try and set any value other than the default for either, the WAN interface starts cycling up and down and will not stop (dropping IP, then getting IP, then dropping again). I've tried setting just the Speed and Duplex, and just the MTU, as well as both at the same time and I'm experiencing this issue. The only way this works for me is if I leave the MTU blank and the Speed and Duplex setting to Default (not even the autoselect option works).

    1. Can any one else reproduce this? Is it a driver or pfsense issue?
    2. Is there a way to tell in pfsense what the WAN interface's MTU is currently set to?

    Thanks in advance!



  • Has anyone seen this behavior or can test by modifying these settings and then watching the WAN interface on the portal page. If you keep refreshing you will see the IP 0.0.0.0, then the correct WAN IP from ISP, then it will go back to 0.0.0.0 and then pull the ISP IP again…weird!


  • Rebel Alliance Developer Netgate



  • Sounds similar but not identical. I'm not MAC spoofing on my end and on my end when I reboot it does not correct the issue. The only way to resolve is to set the Speed and Duplex to Default and clear the MTU. How can we troubleshoot/report as a bug?


  • Rebel Alliance Developer Netgate

    First, try setting either the speed/duplex or MTU alone to see if it triggers on just one of them or the other.

    It could be that your specific network card has a similar issue to setting the MAC when applying the speed/duplex or MTU where it cycles the link and ends up in an endless loop.



  • Hey Jimp…funny you mention this. I have tried setting just the MTU or just the Speed and Duplex and the issue can be reproduced. The problem occurs when setting either/or/both. Any suggestions to prove this is the same issue? I want to make sure this gets covered as it's a big one. Thank you


  • Rebel Alliance Developer Netgate

    What driver does that NIC use? It would show in the network card name, such as re0, sk0, etc.



  • The driver it's running is the "EM" driver and the NIC is: "EXPI9402PT 10/ 100/ 1000Mbps PCI-Express PRO/1000 PT Dual Port Server Adapter"


  • Rebel Alliance Developer Netgate

    That doesn't happen with any em chip that I have access to, real or virtual, as I've set those options on there before without problems, as have many in the field.



  • What do you suggest I do to further troubleshoot? I'd appreciate your help with this


  • Rebel Alliance Developer Netgate

    If possible, first I'd try a different NIC to be sure it's not directly related to that one card/chip. It is not a general problem with that driver, so it's possible there is a hardware issue as well. It could also be related to the switch/cable/etc that it's plugged into.



  • Jimp, I've tested every cable on our network, including patch cables and the cabling in the walls…everything it wired as straight through no crossover which is good.

    I'm running Verizon FIOS and have a straightthrough ethernet cable connecting the ONT box to the back of my pfsense box. Could it be that this cable should be a crossover and that's causing the problem? Any ideas anyone? If anyone is runnings FIOS with an ethernet connection directly from the ONT (Not COAX), plesae chime in. Thanks!



  • JIMP…What is the difference between setting the Speed and Duplex to "Default" rather than "autoselect" anyways?


  • Rebel Alliance Developer Netgate

    In practice, very little. Default expresses no preference, leaving it up to the card/OS, which is almost every case will be autoselect.

    Choosing autoselect will explicitly tell the card to do autoselect.



  • Jimp, I received a brand new NIC from Intel (same model I was running before) and it's also experiencing the same issue


  • Rebel Alliance Developer Netgate

    Can you edit /etc/inc/interfaces.inc and make a change?

    Change line 2639 from this:

    if (!empty($wancfg['mtu']))
    

    to this:

    if (!empty($wancfg['mtu']) && (get_interface_mtu($realhwif) != $wancfg['mtu']))
    

    If that works I can check that fix in as well.



  • I see the following:

    if (!empty($wancfg['mtu']))
    pfSense_interface_mtu($realhwif, $wancfg['mtu']);

    Am I changing this whole string to: if (!empty($wancfg['mtu']) && (get_interface_mtu($realhwif) != $wancfg['mtu']));


  • Rebel Alliance Developer Netgate

    Just that first line, not the second line. No semicolon at the end since it's the opening of an if statement, just copy/paste my 'new' line over the existing single line.



  • Ok I replaced the line as mentioned and I'm still having the same problem. Once I change the setting from Default to autoselect, the WAN interface cycles up and down from obtaining an IP address, to dropping, to obtaining once again. Could it be a driver issue since this is a brand new NIC with the same problem?


  • Rebel Alliance Developer Netgate

    that change would have only affected the MTU, not the link speed.

    It could be a quirk with that specific chipset, yes. If it cycles the physical link when certain settings are applied, it can fall into a loop inside of the interface code because it does something like this:

    Configuring the interface…
      Set the link speed...
        Interface speed causes link to go down/up
          devd code sees the link go down/up and runs rc.newwanip
            rc.newwanip configures the interface...
              Which sets the link speed...
                  Which causes the link to go down/up
                    devd sees the link go down/up and runs rc.newwanip

    Lather, rinse, repeat.



  • @jimp:

    Sounds like this:

    http://redmine.pfsense.org/issues/1572

    It's been fixed in 2.0.1 (pending release) and 2.1.
    https://github.com/bsdperimeter/pfsense/commit/0389f03498994dbdaf47543a325b58d14b1cdbab

    Thanks for the heads up on this fix. I applied this fix manually and now I am able to spoof without it going into a loop. Thanks!!


Log in to reply