OSDN Git Service

The net-gateway command is added.
authorniwa-hideyuki <niwa.hideyuki@jp.fujitsu.com>
Sat, 24 Jan 2015 05:18:41 +0000 (14:18 +0900)
committerniwa-hideyuki <niwa.hideyuki@jp.fujitsu.com>
Sat, 24 Jan 2015 05:18:41 +0000 (14:18 +0900)
lxcf/lib/lxcf-net-gateway [new file with mode: 0755]

diff --git a/lxcf/lib/lxcf-net-gateway b/lxcf/lib/lxcf-net-gateway
new file mode 100755 (executable)
index 0000000..2794aed
--- /dev/null
@@ -0,0 +1,57 @@
+#!/bin/bash
+# copyright (C) 2015 FUJITSU LIMITED All Rights Reserved
+
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; version 2
+# of the License.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  
+# 02110-1301, USA.
+
+# check distro
+DISTRO=`/usr/lib64/lxcf/lxcf-distro`
+
+# check root
+if [ ${EUID:-${UID}} != 0 ]; then
+    echo "error: Because you are not root, you cannot execute this command. "
+    exit 1
+fi
+
+# check args
+if [ $# -ne 1 ]; then
+       echo "usage: net-gateway CONTAINER_NAME IP_ADDR"
+       exit -1
+fi
+
+LXCNAME=$1
+LXCGATEWAY=$2
+
+brctl show  |& egrep vh${LXCNAME}${NUM} >& /dev/null
+if [ $? -ne 0 ]; then
+       echo "error: can't find" vh${LXCNAME}${NUM}
+       exit -1
+fi
+
+mkdir -p /var/run/netns/
+ln -s /proc/${LXCPROC}/ns/net /var/run/netns/${LXCNAME}${NUM}
+
+
+# setting up of gateway
+if [ x$LXCGATEWAY != x"" ]; then
+       ip netns exec ${LXCNAME}${NUM} ip route delete default >& /dev/null
+       IPADDR=$LXCGATEWAY
+       IPMASK=$LXCMASK
+       ip netns exec ${LXCNAME}${NUM} ip route add default via ${IPADDR}
+fi
+
+rm -f /var/run/netns/${LXCNAME}${NUM}
+
+exit 0