diff --git a/context-linux/src/etc/one-context.d/loc-10-network.d/functions b/context-linux/src/etc/one-context.d/loc-10-network.d/functions index 9f781c76..8451ace1 100644 --- a/context-linux/src/etc/one-context.d/loc-10-network.d/functions +++ b/context-linux/src/etc/one-context.d/loc-10-network.d/functions @@ -533,7 +533,7 @@ setup_iface_vars() export ip6_gateway=$(get_iface_var "$1" "IP6_GATEWAY") export ip6_metric=$(get_iface_var "$1" "IP6_METRIC") export ip6_method=$(get_iface_var "$1" "IP6_METHOD") - export static_routes=$(get_iface_var "$1" "ROUTES") + export static_routes=${ROUTES} # backward compatibility [ -z "$ip6_gateway" ] && ip6_gateway=$(get_iface_var "$1" "GATEWAY6") diff --git a/context-linux/src/etc/one-context.d/loc-10-network.d/netcfg-nm b/context-linux/src/etc/one-context.d/loc-10-network.d/netcfg-nm index 6ef3c21b..6412a857 100644 --- a/context-linux/src/etc/one-context.d/loc-10-network.d/netcfg-nm +++ b/context-linux/src/etc/one-context.d/loc-10-network.d/netcfg-nm @@ -136,10 +136,19 @@ gen_iface_conf() rsplit=( ${route} ) dst="${rsplit[0]}" gw="${rsplit[2]}" + if [[ ${rsplit[4]} ]]; then + route_dev="${rsplit[4]}" + fi + if [[ ${rsplit[6]} ]]; then + metric="${rsplit[6]}" + fi - nmcli con mod "$dev" +ipv4.routes "${dst} ${gw}" + if [[ ${route_dev} = ${dev} ]]; then + nmcli con mod --temporary "$route_dev" +ipv4.routes "${dst} ${gw}" + fi done - + else + nmcli con mod "${dev}" ipv4.routes "" fi # Add ONEGATE Proxy static route ip route replace 169.254.16.9 dev eth0 @@ -162,6 +171,7 @@ gen_iface_conf() reset_iface() { # the order is significant - ip.addresses cannot be erased while gateway is set + nmcli con mod "${dev}" ipv4.routes "" nmcli con mod "${dev}" ipv4.route-metric "" nmcli con mod "${dev}" ipv4.gateway "" nmcli con mod "${dev}" ipv4.addresses ""