Univention Bugzilla – Attachment 3497 Details for
Bug 23514
using more than one virtual network bridge
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
modified initscript
univention-virtual-machine-manager-node-vlan (text/plain), 5.31 KB, created by
Tim Petersen
on 2011-09-05 14:39:03 CEST
(
hide
)
Description:
modified initscript
Filename:
MIME Type:
Creator:
Tim Petersen
Created:
2011-09-05 14:39:03 CEST
Size:
5.31 KB
patch
obsolete
>#!/bin/sh ># Univention Virtual Machine Manager KVM Node ># VLAN init script ># ># Most parts of this script are taken from the xen bridging scripts. ># Details to the copyright can be found under ># /usr/share/doc/univention-virtual-machine-manager-node-kvm/copyright > >### BEGIN INIT INFO ># Provides: univention-virtual-machine-manager-node-vlan ># Required-Start: $network $local_fs univention-virtual-machine-manager-node-kvm ># Required-Stop: ># Should-Start: $named ># Should-Stop: ># Default-Start: 2 3 4 5 ># Default-Stop: 0 1 6 ># Short-Description: Univention Virtual Machine Manager VLAN initialisation ># Description: Create a bridging network interface on secondary and VLAN Interfaces >### END INIT INFO > ># Usage: setup_bridge_port device ># Configure interfaces which act as pure bridge ports: >setup_bridge_port() { > local dev="$1" > > # take interface down ... > ip link set ${dev} down > > # ... and configure it > ip addr flush ${dev} >} > ># Usage: create_bridge bridge ># Create named bridge >create_bridge () { > local bridge=$1 > > # Don't create the bridge if it already exists. > if [ ! -e "/sys/class/net/${bridge}/bridge" ]; then > brctl addbr ${bridge} > brctl stp ${bridge} off > brctl setfd ${bridge} 0 > fi >} > ># Usage: add_to_bridge bridge device ># Add device to existing bridge >add_to_bridge () { > local bridge=$1 > local dev=$2 > > # Don't add $dev to $bridge if it's already on a bridge. > if [ -e "/sys/class/net/${bridge}/brif/${dev}" ]; then > ip link set ${dev} up || true > return > fi > brctl addif ${bridge} ${dev} > ip link set ${dev} up >} > ># Usage: link_exists dev ># Returns 0 if the interface named exists (whether up or down), 1 otherwise. ># >link_exists() >{ > local dev=$1 > if ip link show "${dev}" >/dev/null 2>/dev/null > then > return 0 > else > return 1 > fi >} > ># Usage: add_to_bridge2 bridge device ># adds device to bridge but waits for device to be in running state first >add_to_bridge2() { > local bridge=$1 > local dev=$2 > local maxtries=10 > > echo -n "Waiting for ${dev} to negotiate link." > ip link set ${dev} up > for i in `seq ${maxtries}` ; do > if ifconfig ${dev} | grep -q RUNNING ; then > break > else > echo -n '.' > sleep 1 > fi > done > > if [ ${i} -eq ${maxtries} ] ; then echo -n '(link isnt in running state)' ; fi > echo > > add_to_bridge ${bridge} ${dev} >} > ># Usage: load_mod_8021q ># Check for kernel module 8021q and load if not loaded >load_mod_8021q () { > if ! lsmod | grep -q '8021q' ; then > if ! modprobe 8021q ; then > return 1; > fi > fi > return 0; >} > ># Usage: show_status ># Print bridges and routes. >show_status () { > > echo '============================================================' > echo ' ' > brctl show > echo ' ' > ip route list > echo ' ' > route -n > echo '============================================================' >} > >###################################################################### ># ># Start-Stop-Routines. ># > >op_start () { > local dev=$1 > local vlan=$2 > local bridge=lan${vlan} > > if [ $vlan -le 1 ] ; then > # special case: vlan1 = network interface (untagged) > local iface=$dev > else > # normal case: vlan > 1; extra interface > > # test for 802.1q > if ! load_mod_8021q ; then > # could not load module > [ -x /usr/bin/logger ] && /usr/bin/logger "univention-virtual-machine-manager-node-vlan: could not load module 802.1q; not started" > exit > fi > > # set vlan-name-type > vconfig set_name_type VLAN_PLUS_VID > > # create vlan if not existing > if ! grep "${dev}" /proc/net/vlan/config | egrep -q "| +${vlan} +|" ; then > vconfig add ${dev} ${vlan} > fi > local iface=`grep "${dev}" /proc/net/vlan/config | egrep "| +${vlan} +|" | cut -d ' ' -f 1` > fi > > # create bridge and add interface > create_bridge $bridge > add_to_bridge $bridge $iface > > if [ ${antispoof} = 'yes' ] ; then > antispoofing ${dev} > fi > # finally, set bridge up > ip link set $bridge up >} > >op_stop () { > local dev=$1 > local vlan=$2 > local bridge=lan${vlan} > > if ! link_exists "$bridge"; then > return > fi > > if [ $vlan -le 1 ] ; then > # special case: vlan1 = network interface (untagged) > local iface=$dev > else > # normal case: vlan > 1; extra interface > local iface=`grep "${dev}" /proc/net/vlan/config | egrep "| +${vlan} +|" | cut -d ' ' -f 1` > fi > > brctl delif ${bridge} ${iface} > brctl delbr ${bridge} >} > >###################################################################################### ># ># This is where all the things start ># > >command=$1 >case "$command" in > start) > # check ucr autostart setting > if [ -f "/usr/share/univention-config-registry/init-autostart.lib" ]; then > source "/usr/share/univention-config-registry/init-autostart.lib" > check_autostart univention-virtual-machine-manager-node-kvm uvmm/kvm/bridge/autostart > fi > > antispoof=${antispoof:-no} # set iptables to forward to the bridge? > op_start eth1 1 > op_start eth1 1720 > ;; > stop) > op_stop eth1 1 > op_stop eth1 1720 > ;; > status) > show_status > ;; > *) > echo "Unknown command: $command" >&2 > echo 'Valid commands are: start, stop, status' >&2 > exit 1 >esac
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 23514
: 3497