Multiple DHCPv6 WAN interfaces connection loss

I have multiple DHCPv6 based wan interfaces to work around an ISP limitation, see this post, however in setting up 2 DHCPv6 wan interfaces they seem to reset every hour or so which I assume is roughly when the DHCP lease expires. If they're both tied to eth3 then only the older one(has longer uptime) goes down and never comes back up, if one is an alias of the other then they both go down and both come back up but interrupt internet service in the process. Disabling one of the WANs fixes the issue but limits me to only one LAN network. I've attached the relevant snippet from the OpenWRT syslog.

Sun Aug  4 12:04:48 2019 daemon.warn odhcpd[1984]: A default route is present but there is no public prefix on br-lan thus we don't announce a default route!
Sun Aug  4 12:04:48 2019 daemon.notice hostapd: wlan0: AP-STA-DISCONNECTED 64:bc:0c:51:02:63
Sun Aug  4 12:04:52 2019 daemon.info hostapd: wlan0: STA 64:bc:0c:51:02:63 IEEE 802.11: authenticated
Sun Aug  4 12:04:52 2019 daemon.info hostapd: wlan0: STA 64:bc:0c:51:02:63 IEEE 802.11: associated (aid 1)
Sun Aug  4 12:04:52 2019 daemon.notice hostapd: wlan0: AP-STA-CONNECTED 64:bc:0c:51:02:63
Sun Aug  4 12:04:52 2019 daemon.info hostapd: wlan0: STA 64:bc:0c:51:02:63 RADIUS: starting accounting session A7300141873B6D21
Sun Aug  4 12:04:52 2019 daemon.info hostapd: wlan0: STA 64:bc:0c:51:02:63 WPA: pairwise key handshake completed (RSN)
Sun Aug  4 12:04:53 2019 daemon.warn odhcpd[1984]: A default route is present but there is no public prefix on br-lan thus we don't announce a default route!
Sun Aug  4 12:05:08 2019 daemon.notice netifd: Interface 'wan6' has lost the connection
Sun Aug  4 12:05:09 2019 daemon.notice netifd: Interface 'guest_wan' is now down
Sun Aug  4 12:05:09 2019 daemon.notice netifd: Network alias '' link is down
Sun Aug  4 12:05:09 2019 daemon.notice netifd: Interface 'guest_wan' has link connectivity loss
Sun Aug  4 12:05:09 2019 daemon.notice netifd: Interface 'guest_wan' is disabled
Sun Aug  4 12:05:20 2019 daemon.notice netifd: Interface 'guest_wan' is enabled
Sun Aug  4 12:05:20 2019 daemon.notice netifd: Network alias 'eth3' link is up
Sun Aug  4 12:05:20 2019 daemon.notice netifd: Interface 'guest_wan' has link connectivity
Sun Aug  4 12:05:20 2019 daemon.notice netifd: Interface 'guest_wan' is setting up now
Sun Aug  4 12:05:20 2019 daemon.notice netifd: Interface 'wan6' is now up
Sun Aug  4 12:05:20 2019 user.notice firewall: Reloading firewall due to ifup of wan6 (eth3)
Sun Aug  4 12:05:21 2019 daemon.notice netifd: Interface 'guest_wan' is now up
Sun Aug  4 12:05:21 2019 user.notice firewall: Reloading firewall due to ifup of guest_wan (eth3)

Possible solutions:

  1. Try to force the prefix length (48, 56, 60, etc.):
uci set network.wan6.reqprefix="60"
uci set network.wan6.forceprefix="1"
uci commit network
service network restart
  1. Don't send a RELEASE when the interface is brought down:
uci set network.wan6.norelease="1"
uci commit network
service network restart

And/or try to renew the lease via cron without restarting the network/interface:

killall -SIGUSR1 odhcp6c
  1. Configure additional prefixes with a tunnel broker.

  2. Use ULA with NAT6 for non-important networks.

  3. File a bug report for your use case, try OpenWrt snapshot release.

Forcing larger prefixes does not work, that's something I've tried in the past but I tried it again just to be sure, I always get a /64 no matter what. I tried no release but no luck, I tried the cron job but again no luck. I'm going to try the snapshot and see if I have better luck but I doubt it at this point. I'm aware NAT and a tunnel broker are options but I have 16 native /64s available to me. Would be a shame if I couldn't use them. If the snapshot doesn't work I might file a bug report.

1 Like

I have a solution...finally. Use a macvlan to create separate interfaces for every OpenWRT WAN interface. I created a macvlan called eth3_guest and then an interface in OpenWRT called guest_wan and bound it to eth3_guest and sure enough I get my other prefix and everything stays and works great.

You'll need to install kmod-macvlan to use this

Commands to setup

uci set network.eth3_guest=device
uci set network.eth3_guest.name=eth3_guest
uci set network.eth3_guest.type=macvlan
uci set network.eth3_guest.ifname=eth3

uci set network.guest_wan=interface
uci set network.guest_wan.proto=dhcpv6
uci set network.guest_wan.ifname=eth3_guest
uci commit
1 Like

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.