Dre4m Shell
Server IP : 127.0.0.2  /  Your IP : 18.117.167.132
Web Server : Apache/2.4.18 (Ubuntu)
System :
User : www-data ( )
PHP Version : 7.0.33-0ubuntu0.16.04.16
Disable Function : disk_free_space,disk_total_space,diskfreespace,dl,exec,fpaththru,getmyuid,getmypid,highlight_file,ignore_user_abord,leak,listen,link,opcache_get_configuration,opcache_get_status,passthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,php_uname,phpinfo,posix_ctermid,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid,posix,_getppid,posix_getpwnam,posix_getpwuid,posix_getrlimit,posix_getsid,posix_getuid,posix_isatty,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_times,posix_ttyname,posix_uname,pclose,popen,proc_open,proc_close,proc_get_status,proc_nice,proc_terminate,shell_exec,source,show_source,system,virtual
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /lib/modules/4.4.0-1128-aws/build/tools/hv/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME SHELL ]     

Current File : /lib/modules/4.4.0-1128-aws/build/tools/hv/bondvf.sh
#!/bin/bash

# This example script creates bonding network devices based on synthetic NIC
# (the virtual network adapter usually provided by Hyper-V) and the matching
# VF NIC (SRIOV virtual function). So the synthetic NIC and VF NIC can
# function as one network device, and fail over to the synthetic NIC if VF is
# down.
#
# Usage:
# - After configured vSwitch and vNIC with SRIOV, start Linux virtual
#   machine (VM)
# - Run this scripts on the VM. It will create configuration files in
#   distro specific directory.
# - Reboot the VM, so that the bonding config are enabled.
#
# The config files are DHCP by default. You may edit them if you need to change
# to Static IP or change other settings.
#

sysdir=/sys/class/net
netvsc_cls={f8615163-df3e-46c5-913f-f2d2f965ed0e}
bondcnt=0

# Detect Distro
if [ -f /etc/redhat-release ];
then
	cfgdir=/etc/sysconfig/network-scripts
	distro=redhat
elif grep -q 'Ubuntu' /etc/issue
then
	cfgdir=/etc/network
	distro=ubuntu
elif grep -q 'SUSE' /etc/issue
then
	cfgdir=/etc/sysconfig/network
	distro=suse
else
	echo "Unsupported Distro"
	exit 1
fi

echo Detected Distro: $distro, or compatible

# Get a list of ethernet names
list_eth=(`cd $sysdir && ls -d */ | cut -d/ -f1 | grep -v bond`)
eth_cnt=${#list_eth[@]}

echo List of net devices:

# Get the MAC addresses
for (( i=0; i < $eth_cnt; i++ ))
do
	list_mac[$i]=`cat $sysdir/${list_eth[$i]}/address`
	echo ${list_eth[$i]}, ${list_mac[$i]}
done

# Find NIC with matching MAC
for (( i=0; i < $eth_cnt-1; i++ ))
do
	for (( j=i+1; j < $eth_cnt; j++ ))
	do
		if [ "${list_mac[$i]}" = "${list_mac[$j]}" ]
		then
			list_match[$i]=${list_eth[$j]}
			break
		fi
	done
done

function create_eth_cfg_redhat {
	local fn=$cfgdir/ifcfg-$1

	rm -f $fn
	echo DEVICE=$1 >>$fn
	echo TYPE=Ethernet >>$fn
	echo BOOTPROTO=none >>$fn
	echo ONBOOT=yes >>$fn
	echo NM_CONTROLLED=no >>$fn
	echo PEERDNS=yes >>$fn
	echo IPV6INIT=yes >>$fn
	echo MASTER=$2 >>$fn
	echo SLAVE=yes >>$fn
}

function create_eth_cfg_pri_redhat {
	create_eth_cfg_redhat $1 $2
}

function create_bond_cfg_redhat {
	local fn=$cfgdir/ifcfg-$1

	rm -f $fn
	echo DEVICE=$1 >>$fn
	echo TYPE=Bond >>$fn
	echo BOOTPROTO=dhcp >>$fn
	echo ONBOOT=yes >>$fn
	echo NM_CONTROLLED=no >>$fn
	echo PEERDNS=yes >>$fn
	echo IPV6INIT=yes >>$fn
	echo BONDING_MASTER=yes >>$fn
	echo BONDING_OPTS=\"mode=active-backup miimon=100 primary=$2\" >>$fn
}

function create_eth_cfg_ubuntu {
	local fn=$cfgdir/interfaces

	echo $'\n'auto $1 >>$fn
	echo iface $1 inet manual >>$fn
	echo bond-master $2 >>$fn
}

function create_eth_cfg_pri_ubuntu {
	local fn=$cfgdir/interfaces

	create_eth_cfg_ubuntu $1 $2
	echo bond-primary $1 >>$fn
}

function create_bond_cfg_ubuntu {
	local fn=$cfgdir/interfaces

	echo $'\n'auto $1 >>$fn
	echo iface $1 inet dhcp >>$fn
	echo bond-mode active-backup >>$fn
	echo bond-miimon 100 >>$fn
	echo bond-slaves none >>$fn
}

function create_eth_cfg_suse {
        local fn=$cfgdir/ifcfg-$1

        rm -f $fn
	echo BOOTPROTO=none >>$fn
	echo STARTMODE=auto >>$fn
}

function create_eth_cfg_pri_suse {
	create_eth_cfg_suse $1
}

function create_bond_cfg_suse {
	local fn=$cfgdir/ifcfg-$1

	rm -f $fn
	echo BOOTPROTO=dhcp >>$fn
	echo STARTMODE=auto >>$fn
	echo BONDING_MASTER=yes >>$fn
	echo BONDING_SLAVE_0=$2 >>$fn
	echo BONDING_SLAVE_1=$3 >>$fn
	echo BONDING_MODULE_OPTS=\'mode=active-backup miimon=100 primary=$2\' >>$fn
}

function create_bond {
	local bondname=bond$bondcnt
	local primary
	local secondary

	local class_id1=`cat $sysdir/$1/device/class_id 2>/dev/null`
	local class_id2=`cat $sysdir/$2/device/class_id 2>/dev/null`

	if [ "$class_id1" = "$netvsc_cls" ]
	then
		primary=$2
		secondary=$1
	elif [ "$class_id2" = "$netvsc_cls" ]
	then
		primary=$1
		secondary=$2
	else
		return 0
	fi

	echo $'\nBond name:' $bondname

	echo configuring $primary
	create_eth_cfg_pri_$distro $primary $bondname

	echo configuring $secondary
	create_eth_cfg_$distro $secondary $bondname

	echo creating: $bondname with primary slave: $primary
	create_bond_cfg_$distro $bondname $primary $secondary

	let bondcnt=bondcnt+1
}

for (( i=0; i < $eth_cnt-1; i++ ))
do
        if [ -n "${list_match[$i]}" ]
        then
		create_bond ${list_eth[$i]} ${list_match[$i]}
        fi
done

Anon7 - 2022
AnonSec Team