1#!/bin/bash 2 3# This example script activates an interface based on the specified 4# configuration. 5# 6# In the interest of keeping the KVP daemon code free of distro specific 7# information; the kvp daemon code invokes this external script to configure 8# the interface. 9# 10# The only argument to this script is the configuration file that is to 11# be used to configure the interface. 12# 13# Each Distro is expected to implement this script in a distro specific 14# fashion. For instance on Distros that ship with Network Manager enabled, 15# this script can be based on the Network Manager APIs for configuring the 16# interface. 17# 18# This example script is based on a RHEL environment. 19# 20# Here is the format of the ip configuration file: 21# 22# HWADDR=macaddr 23# IF_NAME=interface name 24# DHCP=yes (This is optional; if yes, DHCP is configured) 25# 26# IPADDR=ipaddr1 27# IPADDR_1=ipaddr2 28# IPADDR_x=ipaddry (where y = x + 1) 29# 30# NETMASK=netmask1 31# NETMASK_x=netmasky (where y = x + 1) 32# 33# GATEWAY=ipaddr1 34# GATEWAY_x=ipaddry (where y = x + 1) 35# 36# DNSx=ipaddrx (where first DNS address is tagged as DNS1 etc) 37# 38# IPV6 addresses will be tagged as IPV6ADDR, IPV6 gateway will be 39# tagged as IPV6_DEFAULTGW and IPV6 NETMASK will be tagged as 40# IPV6NETMASK. 41# 42# The host can specify multiple ipv4 and ipv6 addresses to be 43# configured for the interface. Furthermore, the configuration 44# needs to be persistent. A subsequent GET call on the interface 45# is expected to return the configuration that is set via the SET 46# call. 47# 48 49 50 51echo "IPV6INIT=yes" >> $1 52echo "NM_CONTROLLED=no" >> $1 53echo "PEERDNS=yes" >> $1 54echo "ONBOOT=yes" >> $1 55 56dhcp=$(grep "DHCP" $1 2>/dev/null) 57if [ "$dhcp" != "" ]; 58then 59echo "BOOTPROTO=dhcp" >> $1; 60fi 61 62cp $1 /etc/sysconfig/network-scripts/ 63 64 65interface=$(echo $1 | awk -F - '{ print $2 }') 66 67/sbin/ifdown $interface 2>/dev/null 68/sbin/ifup $interfac 2>/dev/null 69