Project

General

Profile

Bug #8429

radvd/IPv6 broken in 2.4.3 when using a LAN bridge

Added by Spencer Hakim 12 months ago. Updated 3 months ago.

Status:
Resolved
Priority:
High
Assignee:
Category:
radvd
Target version:
Start date:
04/03/2018
Due date:
% Done:

0%

Estimated time:
Affected Version:
2.4.3
Affected Architecture:

Description

Due to the fix for #6974 included in 2.4.3 (commits 1, 2, 3), radvd no longer works when using a bridge as the LAN interface due to bridges not actually having any media. Without radvd, IPv6 routes aren't sent to clients and IPv6 connectivity is non-existent (outside of link-local).

Sample logs:

Apr 3 19:20:09    radvd    53166    ioctl(SIOCGIFMEDIA) failed on bridge0: Invalid argument
Apr 3 19:19:58    radvd    53166    ioctl(SIOCGIFMEDIA) failed on bridge0: Invalid argument
Apr 3 19:19:48    radvd    53166    ioctl(SIOCGIFMEDIA) failed on bridge0: Invalid argument
Apr 3 19:19:38    radvd    53166    ioctl(SIOCGIFMEDIA) failed on bridge0: Invalid argument
Apr 3 19:19:28    radvd    53166    ioctl(SIOCGIFMEDIA) failed on bridge0: Invalid argument
[...]

My setup, for reference (works without issue in 2.4.2):

WAN -> em0
LAN -> bridge0 (opt1 opt2; Enabled IPv6 auto linklocal for SLAAC)
opt1 -> em1
opt2 -> ovpns1 (tap)

net.link.bridge.pfil_member=0
net.link.bridge.pfil_bridge=1

Since this is a fairly major regression, is there any chance of the original fix being reverted and a patch release issued, with an updated fix for #6974 appearing in 2.4.4?

History

#1 Updated by Jason Smith 12 months ago

Agreed, I'm facing the same issue. Please fix this in the next Dev & Rel version. Thanks.

====================================================================================
My setup, for reference:

  • Welcome to pfSense 2.4.4-DEVELOPMENT (amd64) on pfSense ***

    WAN (wan) -> em0 -> v4/DHCP4: ip
    v6/DHCP6: ip
    LAN (lan) -> bridge0 -> v4: ip
    v6/t6: ip
    OPT1 (opt1) -> igb0 ->
    OPT2 (opt2) -> igb2 ->
    OPT3 (opt3) -> igb3 ->
    OPT4 (opt4) -> igb1 ->

#2 Updated by Mat Clarke 12 months ago

Same issue for me too ....

Netgate SG-4860 - Serial: *** - Netgate Device ID: ***

  • Welcome to pfSense 2.4.3-RELEASE (amd64) on cn-inf-fw-01 ***

    WAN (wan) -> igb1 -> v4/DHCP4: ipv4
    LAN (lan) -> bridge0 -> v4: ipv4
    v6: ipv6
    OPT1 (opt1) -> igb2 ->
    OPT2 (opt2) -> igb3 ->
    OPT3 (opt3) -> igb4 ->
    OPT4 (opt4) -> igb5 ->
    VLAN50 (opt5) -> igb0.50 -> v4: ipv4
    v6: ipv6
    VLAN107 (opt6) -> igb0.107 -> v4: ipv4
    VLAN106 (opt7) -> igb0.106 -> v4: ipv4
    VLAN108 (opt9) -> igb0.108 -> v4: ipv4
    HENETV6 (opt10) -> gif0 -> v6: ipv6
    VLAN101 (opt11) -> igb0.101 -> v4: ipv4
    VLAN102 (opt12) -> igb0.102 -> v4: ipv4
    VLAN103 (opt13) -> igb0.103 -> v4: ipv4
    LAN_PORT (opt14) -> igb0 ->
    VLAN104 (opt15) -> igb0.104 -> v4: ipv4
    v6: ipv6
    VLAN105 (opt16) -> igb0.105 -> v4: ipv4
    v6: ipv6

#3 Updated by neti netwalker 12 months ago

Same Problem:
RADVD regression on 2.4.3 / radvd can not run on bridge Interface anymore...
https://forum.pfsense.org/index.php?topic=146413.0

LOG:

Apr 1 23:46:28   radvd   81728   ioctl(SIOCGIFMEDIA) failed on bridge0: Invalid argument
Apr 1 23:46:44   radvd   81728   ioctl(SIOCGIFMEDIA) failed on bridge0: Invalid argument
Apr 1 23:47:00   radvd   81728   ioctl(SIOCGIFMEDIA) failed on bridge0: Invalid argument

Small debug log with bridge0:

[Apr 08 14:15:20] radvd (90823): version 2.17 started
[Apr 08 14:15:20] radvd (90823): bridge0 interface definition ok
[Apr 08 14:15:20] radvd (90823): config file, /var/etc/radvd.conf, syntax ok
[Apr 08 14:15:20] radvd (90823): checking ipv6 forwarding not supported
[Apr 08 14:15:20] radvd (90823): radvd startup PID is 90823
[Apr 08 14:15:20] radvd (90823): opened pid file /var/run/radvd.pid
[Apr 08 14:15:20] radvd (90823): locked pid file /var/run/radvd.pid
[Apr 08 14:15:20] radvd (90823): opened pid file /var/run/radvd.pid
[Apr 08 14:15:20] radvd (90823): radvd PID is 90823
[Apr 08 14:15:20] radvd (90823): wrote pid 90823 to pid file: /var/run/radvd.pid
[Apr 08 14:15:20] radvd (90823): validated pid file, /var/run/radvd.pid: 90823
[Apr 08 14:15:20] radvd (90823): bridge0 if_index changed from 0 to 10
[Apr 08 14:15:20] radvd (90823): ioctl(SIOCGIFFLAGS) succeeded on bridge0
[Apr 08 14:15:20] radvd (90823): bridge0 is up
[Apr 08 14:15:20] radvd (90823): bridge0 is running
[Apr 08 14:15:20] radvd (90823): bridge0 supports multicast
[Apr 08 14:15:20] radvd (90823): ioctl(SIOCGIFMEDIA) failed on bridge0: Invalid argument
[Apr 08 14:15:20] radvd (90823): interface bridge0 does not exist or is not set up properly, ignoring the interface
[Apr 08 14:15:20] radvd (90823): polling for 0 second(s), next iface is bridge0
[Apr 08 14:15:20] radvd (90823): timer_handler called for bridge0
[Apr 08 14:15:20] radvd (90823): ioctl(SIOCGIFFLAGS) succeeded on bridge0
[Apr 08 14:15:20] radvd (90823): bridge0 is up
[Apr 08 14:15:20] radvd (90823): bridge0 is running
[Apr 08 14:15:20] radvd (90823): bridge0 supports multicast
[Apr 08 14:15:20] radvd (90823): ioctl(SIOCGIFMEDIA) failed on bridge0: Invalid argument
[Apr 08 14:15:20] radvd (90823): not sending RA for bridge0, interface is not ready
[Apr 08 14:15:20] radvd (90823): send_ra_forall failed on interface bridge0
[Apr 08 14:15:20] radvd (90823): bridge0 next scheduled RA in 16 second(s)
[Apr 08 14:15:20] radvd (90823): polling for 16 second(s), next iface is bridge0
[Apr 08 14:15:36] radvd (90823): timer_handler called for bridge0
[Apr 08 14:15:36] radvd (90823): ioctl(SIOCGIFFLAGS) succeeded on bridge0
[Apr 08 14:15:36] radvd (90823): bridge0 is up
[Apr 08 14:15:36] radvd (90823): bridge0 is running
[Apr 08 14:15:36] radvd (90823): bridge0 supports multicast
[Apr 08 14:15:36] radvd (90823): ioctl(SIOCGIFMEDIA) failed on bridge0: Invalid argument
[Apr 08 14:15:36] radvd (90823): not sending RA for bridge0, interface is not ready
[Apr 08 14:15:36] radvd (90823): send_ra_forall failed on interface bridge0
[Apr 08 14:15:36] radvd (90823): bridge0 next scheduled RA in 16 second(s)
[Apr 08 14:15:36] radvd (90823): polling for 16 second(s), next iface is bridge0

#4 Updated by Johannes Ullrich 11 months ago

just to confirm. Having the same problem.

[Apr 12 11:43:32] radvd (88189): polling for 0 second(s), next iface is bridge0
[Apr 12 11:43:32] radvd (88189): timer_handler called for bridge0
[Apr 12 11:43:32] radvd (88189): ioctl(SIOCGIFFLAGS) succeeded on bridge0
[Apr 12 11:43:32] radvd (88189): bridge0 is up
[Apr 12 11:43:32] radvd (88189): bridge0 is running
[Apr 12 11:43:32] radvd (88189): bridge0 supports multicast
[Apr 12 11:43:32] radvd (88189): ioctl(SIOCGIFMEDIA) failed on bridge0: Invalid argument
[Apr 12 11:43:32] radvd (88189): not sending RA for bridge0, interface is not ready
[Apr 12 11:43:32] radvd (88189): send_ra_forall failed on interface bridge0
[Apr 12 11:43:32] radvd (88189): bridge0 next scheduled RA in 16 second(s)

#5 Updated by TJ Synkral 11 months ago

I'm seeing a similar issue, but I am using a USB ethernet device for the LAN connection:
ioctl(SIOCGIFMEDIA) failed on ue0: Invalid argument

I assume it is related to this bug.

#6 Updated by Raku Smith 11 months ago

Jason Smith wrote:

Agreed, I'm facing the same issue. Please fix this in the next Dev & Rel version. Thanks.

====================================================================================
My setup, for reference:

  • Welcome to pfSense 2.4.4-DEVELOPMENT (amd64) on pfSense ***

WAN (wan) -> em0 -> v4/DHCP4: ip
v6/DHCP6: ip
LAN (lan) -> bridge0 -> v4: ip
v6/t6: ip
OPT1 (opt1) -> igb0 ->
OPT2 (opt2) -> igb2 ->
OPT3 (opt3) -> igb3 ->
OPT4 (opt4) -> igb1 ->

Same setup here, also encountering this.

#7 Updated by William Haworth 11 months ago

I have the same issue with LAN bridged over 3 ethernet interfaces. The following error is logged every 16 seconds:

May 6 18:38:08 radvd 72833 ioctl(SIOCGIFMEDIA) failed on bridge0: Invalid argument

#8 Updated by Jim Pingle 10 months ago

  • Target version set to 2.4.4

#9 Updated by Michael Duller 10 months ago

Same here:

pfSense - Serial: Default string - Netgate Device ID: ***

*** Welcome to pfSense 2.4.3-RELEASE-p1 (amd64) on gateway ***

 WAN (wan)       -> igb0       -> v4/DHCP4: ip
                                  v6/DHCP6: ip6
 LAN (lan)       -> bridge0    -> v4: ip
                                  v6/t6: ip6
 LANP3 (opt1)    -> igb2       ->
 LANP4 (opt2)    -> igb3       ->
 LANP5 (opt3)    -> igb4       ->
 LANP2 (opt4)    -> igb1       ->

opt1 through opt4 are members of bridge0 (lan)

#10 Updated by Nicolas Vollmar 10 months ago

Same here

#11 Updated by Luiz Souza 10 months ago

  • Status changed from New to Feedback

Should be fixed with radvd-2.17_5. Please check with the next 2.4.4 snapshot.

Sorry for the breakage.

#12 Updated by Constantine Kormashev 8 months ago

setup bridge from LAN, OPT1 and OPT2
setup stateless RA on LAN
connected to vswitch which is used by LAN
obtained address from pfsense
pinged LAN interface successfully

Do not observe errors in logs excepting:
invalid all-zeros prefix in /var/etc/radvd.conf, line 9

file line 9 is prefix fd80::/64 {... so that fd80:: is fd80:0000 ... :0000 this is not related to original issue

#13 Updated by Constantine Kormashev 8 months ago

Tried again with 4 ifaces, do not observe the issue

#14 Updated by Jim Pingle 8 months ago

  • Status changed from Feedback to Resolved

#15 Updated by TJ Synkral 6 months ago

This is still happening with 2.4.4 when using ue0 (USB ethernet) as the LAN interface.
ioctl(SIOCGIFMEDIA) failed on ue0: Invalid argument

#16 Updated by Kyle Klouzal 3 months ago

I am receiving this error in the logs about once every 10-15 seconds
radvd invalid all-zeros prefix in /var/etc/radvd.conf, line 9

Also available in: Atom PDF