Overlay VXLAN network manually, not from the docker.
authorFrantišek Dvořák <valtri@civ.zcu.cz>
Thu, 14 Apr 2016 18:14:51 +0000 (20:14 +0200)
committerFrantišek Dvořák <valtri@civ.zcu.cz>
Thu, 21 Apr 2016 11:49:28 +0000 (13:49 +0200)
config/network/if-down.d/meta_vxlan [new file with mode: 0755]
config/network/if-down.d/vxlan [deleted file]
config/network/if-up.d/meta_vxlan [new file with mode: 0755]
config/network/if-up.d/vxlan [deleted file]
docker.sh
machines/hador-gen-virt-frontend.sh
machines/hador-gen-virt-master.sh
machines/hador-gen-virt-node.sh

diff --git a/config/network/if-down.d/meta_vxlan b/config/network/if-down.d/meta_vxlan
new file mode 100755 (executable)
index 0000000..964dd21
--- /dev/null
@@ -0,0 +1,10 @@
+#!/bin/sh -e
+
+# added manually by valtri
+
+# to launch only once
+[ "$IFACE" = "overlaybr0" ] || exit 0
+
+ip link set down dev vxlan0
+ip link del vxlan0
+
diff --git a/config/network/if-down.d/vxlan b/config/network/if-down.d/vxlan
deleted file mode 100755 (executable)
index 3fa3efe..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/sh -e
-# VXLAN Example
-
-if [ $IFACE != "eth0" ]; then
-  exit 0
-fi
-
-ip link set down dev vxlan0
-ip link del vxlan0
diff --git a/config/network/if-up.d/meta_vxlan b/config/network/if-up.d/meta_vxlan
new file mode 100755 (executable)
index 0000000..59827f6
--- /dev/null
@@ -0,0 +1,11 @@
+#!/bin/sh -e
+
+# added manually by valtri
+
+# to launch only once
+[ "$IFACE" = "overlaybr0" ] || exit 0
+
+/root/system/ip link add vxlan0 type vxlan id 142 group 239.1.1.142 dev ib0 dstport 4789
+ip link set up dev vxlan0
+
+brctl addif overlaybr0 vxlan0
diff --git a/config/network/if-up.d/vxlan b/config/network/if-up.d/vxlan
deleted file mode 100755 (executable)
index fc3b5c9..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh -e
-# VXLAN Example
-
-if [ $IFACE != "eth0" ]; then
-  exit 0
-fi
-
-ip link add vxlan0 type vxlan id 142 group 239.1.1.1 dev eth0 dstport 4789
-ip link set up dev vxlan0
-
-brctl addif overlaybr0 vxlan0
index 73cc295..cba3780 100755 (executable)
--- a/docker.sh
+++ b/docker.sh
@@ -132,7 +132,9 @@ docker run -itd \
 #fi
 
 # ==== public IPv6 + private IPv4 ====
-dev=veth`devname`
+dev4=veth`devname`
+dev6=`devname`
+dev6=veth`expr ${dev6} + 1`
 # this is not persistent, let's create a script
 cat << EOF > /etc/docker/${FACTER_hostname}.sh
 mkdir -p /var/run/netns || :
@@ -140,16 +142,27 @@ find -L /var/run/netns -type l -delete || :
 pid=\`docker inspect -f '{{.State.Pid}}' ${FACTER_hostname}\`
 
 ln -s /proc/\${pid}/ns/net /var/run/netns/\${pid} || :
-ip link add ${dev}a type veth peer name ${dev}b
-brctl addif ${XENBR} ${dev}a
-ip link set ${dev}a up
-ip link set ${dev}b netns \${pid}
-ip netns exec \${pid} ip link set dev ${dev}b name ethx0
-ip netns exec \${pid} ip link set ethx0 address ${FACTER_macaddress}
-ip netns exec \${pid} ip link set ethx0 up
+
+ip link add ${dev6}a type veth peer name ${dev6}b
+brctl addif ${XENBR} ${dev6}a
+ip link set ${dev6}a up
+ip link set ${dev6}b netns \${pid}
+ip netns exec \${pid} ip link set dev ${dev6}b name ethx6
+ip netns exec \${pid} ip link set ethx6 address ${FACTER_macaddress}
+ip netns exec \${pid} ip link set ethx6 up
 EOF
 if [ -n "${FACTER_ip}" ]; then
-       echo "ip netns exec \${pid} ip addr add ${FACTER_ip}/24 dev ethx0" >> /etc/docker/${FACTER_hostname}.sh
+       cat << EOF >> /etc/docker/${FACTER_hostname}.sh
+
+ip link add ${dev4}a type veth peer name ${dev4}b
+brctl addif overlaybr0 ${dev4}a
+ip link set ${dev4}a up
+ip link set ${dev4}b netns \${pid}
+ip netns exec \${pid} ip link set dev ${dev4}b name ethx4
+ip netns exec \${pid} ip link set ethx4 address ${FACTER_macaddress2}
+ip netns exec \${pid} ip link set ethx4 up
+ip netns exec \${pid} ip addr add ${FACTER_ip}/24 dev ethx4
+EOF
 fi
 chmod +x /etc/docker/${FACTER_hostname}.sh
 sh -xe /etc/docker/${FACTER_hostname}.sh
index 7a1a558..32417a1 100755 (executable)
@@ -15,6 +15,7 @@ cat <<EOF
 export FACTER_fqdn="hador-${NVIRT}.ics.muni.cz"
 export FACTER_hostname=\`echo \$FACTER_fqdn | sed 's/\..*//g'\`
 export FACTER_macaddress="02:93:0a:00:${NVIRT_HEX}:${NIP_HEX}"
+export FACTER_macaddress2="02:93:0b:00:${NVIRT_HEX}:${NIP_HEX}"
 export FACTER_ip="10.0.${NVIRT}.`expr ${NIP} + 100`"
 
 export XENBR="br0"
index 1a144fa..2f8fa8c 100755 (executable)
@@ -20,6 +20,7 @@ cat <<EOF
 export FACTER_fqdn="hador-c${N}-${NVIRT}.ics.muni.cz"
 export FACTER_hostname=\`echo \$FACTER_fqdn | sed 's/\..*//g'\`
 export FACTER_macaddress="02:93:0a:00:${NVIRT_HEX}:${NIP_HEX}"
+export FACTER_macaddress2="02:93:0b:00:${NVIRT_HEX}:${NIP_HEX}"
 export FACTER_ip="10.0.${NVIRT}.`expr ${N} + 100`"
 
 export XENBR="br0"
index 3c24987..2ec0ad7 100755 (executable)
@@ -26,6 +26,7 @@ cat <<EOF
 export FACTER_fqdn="hador${N}-${NVIRT}.ics.muni.cz"
 export FACTER_hostname=\`echo \$FACTER_fqdn | sed 's/\..*//g'\`
 export FACTER_macaddress="02:93:0a:00:${NVIRT_HEX}:${N_HEX}"
+export FACTER_macaddress2="02:93:0b:00:${NVIRT_HEX}:${N_HEX}"
 export FACTER_ip="10.0.${NVIRT}.${N}"
 
 export XENBR="br0"