Dec 8, 2012 NGK2012B
E-ONTAP.COM 鈴木常彦
for group in `seq 0 2`
do
epairnum=`expr $epairnum + 1`
t1=`expr $group "*" 3 + 1`
ifconfig epair${epairnum}a vnet router0
ifconfig epair${epairnum}b vnet router${t1}
jexec router0 ifconfig bridge1 addm epair${epairnum}a
jexec router0 ifconfig epair${epairnum}a up
jexec router${t1} ifconfig epair${epairnum}b up
epairnum=`expr $epairnum + 1`
t2=`expr $group "*" 3 + 2`
ifconfig epair${epairnum}a vnet router${t1}
(snip)
done
Shell.def_system_command("ifconfig_org", path = "/sbin/ifconfig")
def ifconfig(param)
sh=Shell.new
sh.transact{
ifconfig_org(*param.split)
}
end
ifconfig("epair0a inet 192.168.1.1 netmask 255.255.255.0")
ifconfig("epair0a up")
class Router
def initialize(jailname)
...
jail(jailname)
jexec(jailname,'ifconfig lo0 127.0.0.1/24 up')
end
def assignip(epair,ip,mask)
...
end
end
router0=Router.new('router0')
router0.assignip('epair0b','192.168.1.254','255.255.255.0')
0.upto(10) do |num|
"router#{num}"=Router.new()
done
0.upto(10) do |num|
eval("router#{num}=Router.new('router#{num}')")
done
class Operator
def setupserver(jailname)
eval("$#{jailname}=Server.new('#{jailname}')")
end
def createpair
...
end
tomocha=Operator.new
tomocha.setuprouter(router1) tomocha.setuprouter(router2)
a,b=tomocha.createpair tomocha.connect(router1,a) tomocha.connect(router2,b)