Disabling Iface-MoDem(igb0) pulls Iface-WAN(igb0) down



  • pfSense-2.3.1-DEV full amd64. I use a MoDem in bridge with pfSense in PPPoE.
    So I created a separate interface on WAN for the MoDem to see it.

    I used this: https://doc.pfsense.org/index.php/Accessing_modem_from_inside_firewall.
    Or another method, I used creating a gateway and use that in the interface,
    like this: https://forum.pfsense.org/index.php?topic=99324.msg553480#msg553480

    It works OK in both setups. But, when I disable the interface-MoDem, then it pulls the WAN down.
    (Unbound goes haywire and number of States increases massively).
    Why is disabling Iface-MoDem pulling the WAN down ?
    As soon as I enable the interface-MoDem, the WAN comes up again, all normalizing. What happens here ?



  • Well, the PPPoE virtual interface depends on the WAN interface, thus if you bring that down, it will also bring PPPoE down. That's absolutely normal.



  • Right there. I was busy into VLAN's and thought in terms of membership disabling :) I found the correct way is to disconnect PPPoE first, then disabling the Iface-MoDem, next connect PPPoE for WAN up again. Thanks.



  • If you don't want the parent assignment anymore, you should delete the assignment rather than disabling the interface.



  • @hda:

    pfSense-2.3.1-DEV full amd64. I use a MoDem in bridge with pfSense in PPPoE.
    So I created a separate interface on WAN for the MoDem to see it.

    You're not creating a separate interface. You are creating a pfSense interface on the physical interface that was already in use by mpd5, the PPPoE daemon, for your WAN interface.

    When you disable the modem interface, line 465 (I'm looking at 2.3) of /usr/local/www/interfaces.php will call interface_bring_down() with the destroy parameter set to true on the modem interface. interface_bring_down() (in /etc/inc/interfaces.inc) does not contain a check as to whether the physical interface is in use for PPPoE - it will just ifconfig down the physical interface. At this point, the ground is torn out from under mpd5 daemon as well as the underlying netgraph structure used for PPPoE on the interface. Things go very wrong at this point - worst case, you'll get a kernel panic.

    Arguably interface_bring_down() should check that the physical interface is not in use for a PPPoE port, CARP or similar before calling pfSense_interface_destroy() on the interface (line 1438 of /etc/inc/interfaces.inc).

    If you want to disable the parent assignment, find some other way to disabling the interface, as cmb says.


Log in to reply