Commit 1fd13c25 authored by Igor Pecovnik's avatar Igor Pecovnik
Browse files

More metric fixes, changes are now saved, changing the way dnsmas is loaded

parent 579c941e
...@@ -555,7 +555,7 @@ function select_default_interface () ...@@ -555,7 +555,7 @@ function select_default_interface ()
else else
IFS=$'\r\n' IFS=$'\r\n'
GLOBIGNORE='*' GLOBIGNORE='*'
local ADAPTER=($(ls /sys/class/net | grep -E -v 'lo|tun|bonding_masters|dummy0|bond0|sit0|br0')) local ADAPTER=($(nmcli -t -f DEVICE connection show --active))
local LIST=() local LIST=()
for i in "${ADAPTER[@]}" for i in "${ADAPTER[@]}"
do do
...@@ -573,35 +573,53 @@ function select_default_interface () ...@@ -573,35 +573,53 @@ function select_default_interface ()
else else
exec 3>&1 exec 3>&1
DEFAULT_ADAPTER=$(dialog --nocancel --backtitle "$BACKTITLE" --no-collapse \ DEFAULT_ADAPTER=$(dialog --nocancel --backtitle "$BACKTITLE" --no-collapse \
--title "Select default interface" --clear --menu "" $((6+${LIST_LENGTH})) 0 15 "${LIST[@]}" 2>&1 1>&3) --title "Select default interface" --clear --menu "" $((6+${LIST_LENGTH})) 74 14 "${LIST[@]}" 2>&1 1>&3)
exec 3>&- exec 3>&-
fi fi
fi fi
# set highest metric to default adaptor # set highest metric to default adaptor
HIGHEST_METRIC=$(nmcli -t -f UUID,TYPE,DEVICE connection show --active | grep $DEFAULT_ADAPTER | sed 's/:.*$//') HIGHEST_METRIC=$(nmcli -t -f UUID,TYPE,DEVICE connection show --active | grep $DEFAULT_ADAPTER | sed 's/:.*$//')
METRIC=100
# set metric to 100 # set metric to 50
nmcli connection modify $HIGHEST_METRIC ipv4.route-metric $METRIC nmcli connection modify $HIGHEST_METRIC ipv4.route-metric 50 2> /dev/null
METRIC=77
# set others wired # set others wired
REMAINING=( `nmcli -t -f UUID,TYPE,DEVICE connection show --active | grep ethernet | grep -v $DEFAULT_ADAPTER | sed 's/:.*$//'` ) REMAINING=( `nmcli -t -f UUID,TYPE,DEVICE connection show --active | grep ethernet | grep -v $DEFAULT_ADAPTER | sed 's/:.*$//'` )
if [[ ${#REMAINING[@]} -ge 1 ]]; then
for i in "${REMAINING[@]}" for i in "${REMAINING[@]}"
do do
METRIC=$(( $METRIC + 1 )) METRIC=$(( $METRIC + 1 ))
nmcli connection modify ${i} ipv4.route-metric $METRIC nmcli connection modify ${i} ipv4.route-metric $METRIC
done done
fi
# set other wireless # set other wireless
METRIC=1000 METRIC=88
REMAINING=( `nmcli -t -f UUID,TYPE,DEVICE connection show --active | grep wireless | grep -v $DEFAULT_ADAPTER | sed 's/:.*$//'` ) REMAINING=( `nmcli -t -f UUID,TYPE,DEVICE connection show --active | grep wireless | grep -v $DEFAULT_ADAPTER | sed 's/:.*$//'` )
if [[ ${#REMAINING[@]} -ge 1 ]]; then
for i in "${REMAINING[@]}" for i in "${REMAINING[@]}"
do do
METRIC=$(( $METRIC + 1 )) METRIC=$(( $METRIC + 1 ))
nmcli connection modify ${i} ipv4.route-metric $METRIC nmcli connection modify ${i} ipv4.route-metric $METRIC
done done
fi
# create default metrics file
cat <<-EOF > /etc/NetworkManager/conf.d/armbian-default-metric.conf
[connection-ethernet-gateway]
match-device=interface-name:$DEFAULT_ADAPTER
ipv4.route-metric=50
[connection-wifi-other]
match-device=type:wifi
ipv4.route-metric=88
[connection-ethernet-other]
match-device=type:ethernet
ipv4.route-metric=77
EOF
} }
......
...@@ -361,6 +361,7 @@ function jobs () ...@@ -361,6 +361,7 @@ function jobs ()
rm -f /etc/network/interfaces.d/armbian.ap.nat rm -f /etc/network/interfaces.d/armbian.ap.nat
rm -f /etc/network/interfaces.d/armbian.ap.bridge rm -f /etc/network/interfaces.d/armbian.ap.bridge
rm -f /etc/dnsmasq.conf rm -f /etc/dnsmasq.conf
iptables -t nat -D POSTROUTING 1
rm -f /etc/iptables.ipv4.nat rm -f /etc/iptables.ipv4.nat
rm -f /var/run/hostapd/* >/dev/null 2>&1 rm -f /var/run/hostapd/* >/dev/null 2>&1
reload-nety reload-nety
...@@ -396,6 +397,7 @@ function jobs () ...@@ -396,6 +397,7 @@ function jobs ()
rm -f /etc/network/interfaces.d/armbian.ap.nat rm -f /etc/network/interfaces.d/armbian.ap.nat
rm -f /etc/network/interfaces.d/armbian.ap.bridge rm -f /etc/network/interfaces.d/armbian.ap.bridge
rm -f /etc/dnsmasq.conf rm -f /etc/dnsmasq.conf
iptables -t nat -D POSTROUTING 1
rm -f /etc/iptables.ipv4.nat rm -f /etc/iptables.ipv4.nat
rm -f /var/run/hostapd/* >/dev/null 2>&1 rm -f /var/run/hostapd/* >/dev/null 2>&1
sed -i '/^iptables/ d' /etc/rc.local sed -i '/^iptables/ d' /etc/rc.local
...@@ -536,6 +538,7 @@ function jobs () ...@@ -536,6 +538,7 @@ function jobs ()
echo -e "# armbian NAT hostapd\nallow-hotplug $WIRELESS_ADAPTER\niface $WIRELESS_ADAPTER inet static " > $TEMP_CONF echo -e "# armbian NAT hostapd\nallow-hotplug $WIRELESS_ADAPTER\niface $WIRELESS_ADAPTER inet static " > $TEMP_CONF
echo -e "\taddress 172.24.1.1\n\tnetmask 255.255.255.0\n\tnetwork 172.24.1.0\n\tbroadcast 172.24.1.255" >> $TEMP_CONF echo -e "\taddress 172.24.1.1\n\tnetmask 255.255.255.0\n\tnetwork 172.24.1.0\n\tbroadcast 172.24.1.255" >> $TEMP_CONF
echo -e "\tpost-up service dnsmasq start\tpost-up \n\tiptables-restore < /etc/iptables.ipv4.nat\n\tpost-down service dnsmasq stop" >> $TEMP_CONF
# create new configuration # create new configuration
echo "interface=$WIRELESS_ADAPTER # Use interface $WIRELESS_ADAPTER" > /etc/dnsmasq.conf echo "interface=$WIRELESS_ADAPTER # Use interface $WIRELESS_ADAPTER" > /etc/dnsmasq.conf
echo "listen-address=172.24.1.1 # Explicitly specify the address to listen on" >> /etc/dnsmasq.conf echo "listen-address=172.24.1.1 # Explicitly specify the address to listen on" >> /etc/dnsmasq.conf
...@@ -557,11 +560,11 @@ function jobs () ...@@ -557,11 +560,11 @@ function jobs ()
# - Save IP tables, applied during ifup in /etc/network/interfaces. # - Save IP tables, applied during ifup in /etc/network/interfaces.
iptables-save > /etc/iptables.ipv4.nat iptables-save > /etc/iptables.ipv4.nat
sed -i 's/^bridge=.*/#&/' /etc/hostapd.conf sed -i 's/^bridge=.*/#&/' /etc/hostapd.conf
sed -e 's/exit 0//g' -i /etc/rc.local #sed -e 's/exit 0//g' -i /etc/rc.local
# workaround if hostapd is too slow # workaround if hostapd is too slow
echo "service dnsmasq start" >> /etc/rc.local #echo "service dnsmasq start" >> /etc/rc.local
echo "iptables-restore < /etc/iptables.ipv4.nat" >> /etc/rc.local #echo "iptables-restore < /etc/iptables.ipv4.nat" >> /etc/rc.local
echo "exit 0" >> /etc/rc.local #echo "exit 0" >> /etc/rc.local
;; ;;
3)exit;; 3)exit;;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment