brintos

brintos / linux-shallow public Read only

0
0
Text · 2.4 KiB · 440a91b Raw
93 lines · bash
1#!/bin/bash2# SPDX-License-Identifier: GPL-2.03 4# This example script activates an interface based on the specified5# configuration.6#7# In the interest of keeping the KVP daemon code free of distro specific8# information; the kvp daemon code invokes this external script to configure9# the interface.10#11# The only argument to this script is the configuration file that is to12# be used to configure the interface.13#14# Each Distro is expected to implement this script in a distro specific15# fashion. For instance, on Distros that ship with Network Manager enabled,16# this script can be based on the Network Manager APIs for configuring the17# interface.18#19# This example script is based on a RHEL environment.20#21# Here is the ifcfg format of the ip configuration file:22#23# HWADDR=macaddr24# DEVICE=interface name25# BOOTPROTO=<protocol> (where <protocol> is "dhcp" if DHCP is configured26# 			or "none" if no boot-time protocol should be used)27#28# IPADDR0=ipaddr129# IPADDR1=ipaddr230# IPADDRx=ipaddry (where y = x + 1)31#32# NETMASK0=netmask133# NETMASKx=netmasky (where y = x + 1)34#35# GATEWAY=ipaddr136# GATEWAYx=ipaddry (where y = x + 1)37#38# DNSx=ipaddrx (where first DNS address is tagged as DNS1 etc)39#40# IPV6 addresses will be tagged as IPV6ADDR, IPV6 gateway will be41# tagged as IPV6_DEFAULTGW and IPV6 NETMASK will be tagged as42# IPV6NETMASK.43#44# Here is the keyfile format of the ip configuration file:45#46# [ethernet]47# mac-address=macaddr48# [connection]49# interface-name=interface name50#51# [ipv4]52# method=<protocol> (where <protocol> is "auto" if DHCP is configured53#                       or "manual" if no boot-time protocol should be used)54#55# address1=ipaddr1/plen56# address2=ipaddr2/plen57#58# gateway=gateway1;gateway259#60# dns=dns1;61#62# [ipv6]63# address1=ipaddr1/plen64# address2=ipaddr2/plen65#66# gateway=gateway1;gateway267#68# dns=dns1;dns269#70# The host can specify multiple ipv4 and ipv6 addresses to be71# configured for the interface. Furthermore, the configuration72# needs to be persistent. A subsequent GET call on the interface73# is expected to return the configuration that is set via the SET74# call.75#76 77echo "IPV6INIT=yes" >> $178echo "NM_CONTROLLED=no" >> $179echo "PEERDNS=yes" >> $180echo "ONBOOT=yes" >> $181 82cp $1 /etc/sysconfig/network-scripts/83 84chmod 600 $285interface=$(echo $2 | awk -F - '{ print $2 }')86filename="${2##*/}"87 88sed '/\[connection\]/a autoconnect=true' $2 > /etc/NetworkManager/system-connections/${filename}89 90 91/sbin/ifdown $interface 2>/dev/null92/sbin/ifup $interface 2>/dev/null93