#!/bin/bash # Copyright (c) 2015-2017, Parallels International GmbH # Copyright (c) 2017-2020 Virtuozzo International GmbH. All rights reserved. # # This script configure gateway inside Debian like VM. # # Parameters: <dev> <IP> <MAC_addr> # <dev> - name of device. (example: eth2) # <IP> - IP address of gateway # <MAC_addr> - MAC address of device # prog="$0" path="${prog%/*}" funcs="$path/functions" if [ -f "$funcs" ]; then . $funcs else echo "Program $0" echo "File $funcs not found" exit 1 fi ETH_DEV=$1 ETH_GATEWAY=$2 ETH_MAC=$3 ETH_MAC_NW=`echo $ETH_MAC | sed "s,00,0,g"` if is_netplan_controlled; then $path/$NETPLAN_CFG -a "set_gateway" -d "$ETH_DEV" -i "$ETH_GATEWAY" exit $? elif [ -f $NWSYSTEMCONF -o -f $NMCONFFILE ]; then call_nm_script $0 "$@" exit $? else for gw in ${ETH_GATEWAY}; do inet="inet" if [ "${gw}" == "remove" -o "${gw}" == "removev6" ] ; then continue fi if is_ipv6 ${gw}; then inet="inet6" fi if which route >/dev/null 2>&1 then route="route -A" add="add" via="gw" else route="ip -f" add="route add" via="via" fi awk " /^\\tup ${route} ${inet} ${add} .* dev ${ETH_DEV}/ { next; } /^\\tup ${route} ${inet} ${add} default/ { next; } /^\\taddress/ { print; next; } /^\\tnetmask/ { print; next; } /^\\tpre-down/ { print; next; } /^\\tup ip/ { print; next; } /^\\tbroadcast/ { print; next; } \$1 == \"iface\" && \$2 ~/${ETH_DEV}\$/ && \$3 == \"${inet}\" { addgw=1; print; next; } addgw { print \"\\tup ${route} ${inet} ${add} ${gw} dev ${ETH_DEV}\"; print \"\\tup ${route} ${inet} ${add} default ${via} ${gw} dev ${ETH_DEV}\"; addgw=0 } { print } " < ${DEBIAN_CONFIGFILE} > ${DEBIAN_CONFIGFILE}.$$ && \ mv -f ${DEBIAN_CONFIGFILE}.$$ ${DEBIAN_CONFIGFILE} done fi $path/debian-restart.sh ${ETH_DEV} exit 0 # end of script
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
debian-get_dhcp.sh | File | 1.32 KB | 0755 |
|
debian-netplan_restart.sh | File | 439 B | 0755 |
|
debian-restart.sh | File | 1.34 KB | 0755 |
|
debian-set_dhcp.sh | File | 1.62 KB | 0755 |
|
debian-set_gateway.sh | File | 1.85 KB | 0755 |
|
debian-set_ip.sh | File | 4.35 KB | 0755 |
|
debian-set_route.sh | File | 2.06 KB | 0755 |
|
functions | File | 20.34 KB | 0755 |
|
netplan-cfg.py | File | 8.63 KB | 0755 |
|
netplan-cfg.pyc | File | 10.45 KB | 0644 |
|
netplan-cfg.pyo | File | 10.45 KB | 0644 |
|
nm-get_dhcp.sh | File | 834 B | 0755 |
|
nm-restart.sh | File | 488 B | 0755 |
|
nm-set_dhcp.sh | File | 1.23 KB | 0755 |
|
nm-set_dns.sh | File | 1.71 KB | 0755 |
|
nm-set_gateway.sh | File | 1.11 KB | 0755 |
|
nm-set_ip.sh | File | 3.02 KB | 0755 |
|
nm-set_route.sh | File | 1.12 KB | 0755 |
|
redhat-get_dhcp.sh | File | 1.58 KB | 0755 |
|
redhat-restart.sh | File | 429 B | 0755 |
|
redhat-set_dhcp.sh | File | 2 KB | 0755 |
|
redhat-set_gateway.sh | File | 1.54 KB | 0755 |
|
redhat-set_ip.sh | File | 5.36 KB | 0755 |
|
redhat-set_route.sh | File | 1.33 KB | 0755 |
|
set_dns.sh | File | 4.03 KB | 0755 |
|
suse-get_dhcp.sh | File | 1 KB | 0755 |
|
suse-restart.sh | File | 255 B | 0755 |
|
suse-set_dhcp.sh | File | 1.7 KB | 0755 |
|
suse-set_gateway.sh | File | 970 B | 0755 |
|
suse-set_ip.sh | File | 3.01 KB | 0755 |
|
suse-set_route.sh | File | 1.12 KB | 0755 |
|