From aea505ddf9e99996929c498e3ea36ffeba270c4c Mon Sep 17 00:00:00 2001 From: Rick Sommerville Date: Thu, 20 May 2021 13:00:12 -0400 Subject: [PATCH] WIFI-2059 Handle br-wan/br-lan ip address conflict Signed-off-by: Rick Sommerville --- .../iface/40-fix-lan-wan-ip-conflict | 25 +++++++++++++++++++ .../files/etc/uci-defaults/99-tip-network | 2 ++ 2 files changed, 27 insertions(+) create mode 100644 feeds/wlan-ap/wlan-ap-config/files/etc/hotplug.d/iface/40-fix-lan-wan-ip-conflict diff --git a/feeds/wlan-ap/wlan-ap-config/files/etc/hotplug.d/iface/40-fix-lan-wan-ip-conflict b/feeds/wlan-ap/wlan-ap-config/files/etc/hotplug.d/iface/40-fix-lan-wan-ip-conflict new file mode 100644 index 000000000..9f15939d1 --- /dev/null +++ b/feeds/wlan-ap/wlan-ap-config/files/etc/hotplug.d/iface/40-fix-lan-wan-ip-conflict @@ -0,0 +1,25 @@ +#!/bin/sh + +[ "$ACTION" = ifup -o "$ACTION" = ifupdate ] || exit 0 +[ "$INTERFACE" = wan ] || exit 0 + +conflict=0 +wan_ipaddr="$(ubus call network.interface.wan status | grep \"address\" | grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}')" +lan_ipaddr="$(ubus call network.interface.lan status | grep \"address\" | grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}')" +logger -t hotplug "$ACTION of $INTERFACE ($DEVICE) $wan_ipaddr" + +[ "$wan_ipaddr" = "192.168.1" ] && [ "$lan_ipaddr" = "192.168.1" ] && { + conflict=1 + dest_ip="192.168.0.1" +} +[ "$wan_ipaddr" = "192.168.0" ] && [ "$lan_ipaddr" = "192.168.0" ] && { + conflict=1 + dest_ip="192.168.1.1" +} +[ $conflict = 1 ] && { + logger -t hotplug "IP conflict with br-wan. Switch br-lan to $dest_ip" + uci set network.lan.ipaddr="$dest_ip" + uci_commit + reload_config +} +exit 0 diff --git a/feeds/wlan-ap/wlan-ap-config/files/etc/uci-defaults/99-tip-network b/feeds/wlan-ap/wlan-ap-config/files/etc/uci-defaults/99-tip-network index 13b9a77e6..2c5e3d993 100644 --- a/feeds/wlan-ap/wlan-ap-config/files/etc/uci-defaults/99-tip-network +++ b/feeds/wlan-ap/wlan-ap-config/files/etc/uci-defaults/99-tip-network @@ -2,6 +2,8 @@ uci set network.wan.type=bridge uci set network.wan6.ifname=@wan +uci set network.wan.metric=1 +uci set network.lan.metric=10 uci set network.wan.vlan_filtering=1 uci set network.lan.vlan_filtering=1 exit 0