%define url $URL$
Name: NodeManager-topo
-Version: 0.3
-Release: 3
+Version: 0.4
+Release: 1
Summary: Plugin supporting creating a default virtual topology.
Group: System Environment/Daemons
LINK=${KEY}x${NODEID}
modprobe ip_gre
-modprobe etun
### Setup EGRE tunnel
EGRE=d$LINK
-$IP tunnel add $EGRE mode gre/eth remote $REMOTE key $KEY ttl 64
+$IP tunnel add $EGRE mode gre type eth remote $REMOTE key $KEY ttl 64
$IP link set $EGRE up
### Setup etun
ETUN0=a$LINK
ETUN1=b$LINK
-echo $ETUN0,$ETUN1 > /sys/module/etun/parameters/newif
+ip link add name $ETUN0 type veth peer name $ETUN1
ifconfig $ETUN0 mtu 1458 up
ifconfig $ETUN1 up
iptables -t mangle -A FORWARD -o $BRIDGE -j MARK --set-mark $SLICEID
### Put a process in the vserver so we can move the interface there
-su $SLICE -c "sleep 30" &
-sleep 1
-PID=`su $SLICE -c "pgrep sleep"`
-chcontext --ctx 1 -- echo $PID > /sys/class/net/$ETUN0/new_ns_pid
-sleep 1
+su $SLICE -c "sleep 30 &"
+PID=`su $SLICE -c "pgrep -n sleep"`
+$IP link set $ETUN0 netns $PID
+naddress --add --nid $SLICEID --ip ${VIRTIP}${SUBNET}
su $SLICE -c "sudo /sbin/ifconfig $ETUN0 ${VIRTIP}${SUBNET} up; sudo /sbin/route add -net $VIRTNET dev $ETUN0"
### Set rate
# NAT interface must be unique on a single node.
#
BASE="10.0.$KEY"
+EXTIP=$BASE.1
+EXTNET=$EXTIP/24
+INTIP=$BASE.2
+INTNET=$INTIP/24
+BASENET=$BASE.0/24
### Setup etun
ETUN0=nat$KEY
ETUN1=natx$KEY
-echo $ETUN0,$ETUN1 > /sys/module/etun/parameters/newif
-ifconfig $ETUN1 $BASE.1/24 up
+ip link add name $ETUN0 type veth peer name $ETUN1
+ifconfig $ETUN1 $EXTNET up
/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
/sbin/iptables -A FORWARD -i eth0 -o $ETUN1 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A FORWARD -i $ETUN1 -o eth0 -j ACCEPT
### Put a process in the vserver so we can move the interface there
-su $SLICE -c "sleep 30" &
-sleep 1
-PID=`su $SLICE -c "pgrep sleep"`
-chcontext --ctx 1 -- echo $PID > /sys/class/net/$ETUN0/new_ns_pid
+su $SLICE -c "sleep 30 &"
+PID=`su $SLICE -c "pgrep -n sleep"`
+$IP link set $ETUN0 netns $PID
+naddress --add --nid $SLICEID --ip $INTNET
sleep 1
-su $SLICE -c "sudo /sbin/ifconfig $ETUN0 $BASE.2/24 up; \
- sudo /sbin/route add -net $BASE.0/24 $ETUN0; \
- sudo /sbin/route add default gw $BASE.1"
+su $SLICE -c "sudo /sbin/ifconfig $ETUN0 $INTNET up; \
+ sudo /sbin/route add -net $BASENET $ETUN0; \
+ sudo /sbin/route add default gw $EXTIP; \
+ sudo /sbin/ifconfig lo 127.0.0.1/8 up"
done
# Get rid of etun devices, only need name of one of them
-echo $ETUN1 > /sys/module/etun/parameters/delif
+ip link delete dev $ETUN1
# Get rid of bridge
ifconfig $BRIDGE down
/sbin/iptables -D FORWARD -i $ETUN1 -o eth0 -j ACCEPT
# Get rid of etun devices, only need name of one of them
-echo $ETUN1 > /sys/module/etun/parameters/delif
+ip link delete dev $ETUN1
def start(options, config):
+ run ("echo 1 > /proc/sys/net/ipv4/ip_forward")
pass