X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=factory%2Fsetup-link;h=cc800ce8701183a867df118d1b754a4f96295b77;hb=ec3b7dbe56acbc80e7d22dc88a70146f25aed42c;hp=df3638f57847ed1025658d2321acfa4ad20e4da7;hpb=a73b5037e7e3d2dc9520d3ce40e4ef3e2756ab6b;p=vsys.git diff --git a/factory/setup-link b/factory/setup-link index df3638f..cc800ce 100755 --- a/factory/setup-link +++ b/factory/setup-link @@ -1,47 +1,93 @@ #!/bin/sh +x -IP=/sbin/ip - SLICE=$1 SLICEID=`id -u $SLICE` -read LABEL +read INDEX read REMOTE read KEY -LINK=${LABEL}k$KEY +LINK=${KEY}if${INDEX} modprobe ip_gre -modprobe etun ### Setup EGRE tunnel -EGRE=egre$LINK -$IP tunnel add $EGRE mode gre/eth remote $REMOTE key $KEY -$IP link set $EGRE up +EGRE=d$LINK +ip tunnel add $EGRE mode gre type eth remote $REMOTE key $KEY ttl 64 +ip link set $EGRE up ### Setup etun -ETUN0=v$LINK -ETUN1=etun$LINK -echo $ETUN0,$ETUN1 > /sys/module/etun/parameters/newif -ifconfig $ETUN0 up +ETUN0=a$LINK +ETUN1=b$LINK +ip link add name $ETUN0 type veth peer name $ETUN1 +ifconfig $ETUN0 mtu 1458 up ifconfig $ETUN1 up ### Setup bridge -BRIDGE=br$LINK +BRIDGE=c$LINK brctl addbr $BRIDGE brctl addif $BRIDGE $EGRE brctl addif $BRIDGE $ETUN1 ifconfig $BRIDGE up +### Setup iptables so that packets are visible in the vserver +iptables -t mangle -A FORWARD -o $BRIDGE -j MARK --set-mark $SLICEID + ### Create "grab link" script -GRAB=/vsys/grab-$ETUN0 +GRAB=/vsys/local_grab-$ETUN0 +echo $SLICE > $GRAB.acl +rm -f $GRAB cat > $GRAB < /sys/class/net/$ETUN0/new_ns_pid +ip link set $ETUN0 netns \$PID EOF chmod +x $GRAB -echo $SLICE > $GRAB.acl +### Create script for setting link rate +BIND=/vsys/local_rate-$ETUN0 +echo $SLICE > $BIND.acl +rm -f $BIND +cat > $BIND < $DELETE.acl +rm -f $DELETE +cat > $DELETE <