Created
July 21, 2014 13:50
-
-
Save netmarkjp/e58f32c7a4abf85e93b3 to your computer and use it in GitHub Desktop.
verification environment for http://d.hatena.ne.jp/hirose31/20060817/1155795703
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -*- mode: ruby -*- | |
# vi: set ft=ruby : | |
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing! | |
VAGRANTFILE_API_VERSION = "2" | |
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| | |
[ :client ].each do |sym| | |
config.vm.define sym do |config| | |
config.vm.box = sym.to_s | |
config.vm.hostname = sym.to_s | |
config.vm.box_url = "https://dl.dropboxusercontent.com/u/423294/box/c6.box" | |
config.vm.network :private_network, ip: "10.0.0.70" | |
config.vm.provider :virtualbox do |vb| | |
vb.gui = false | |
vb.customize ["modifyvm", :id, "--cpus", "2"] | |
vb.customize ["modifyvm", :id, "--memory", "512"] | |
end | |
$script = <<SCRIPT | |
yum -y install tcpdump | |
ip route add 172.16.0.0/24 dev eth1 via 10.0.0.254 | |
SCRIPT | |
config.vm.provision "shell", inline: $script | |
end | |
end | |
[ :client2 ].each do |sym| | |
config.vm.define sym do |config| | |
config.vm.box = sym.to_s | |
config.vm.hostname = sym.to_s | |
config.vm.box_url = "https://dl.dropboxusercontent.com/u/423294/box/c6.box" | |
config.vm.network :private_network, ip: "192.168.8.50" | |
config.vm.provider :virtualbox do |vb| | |
vb.gui = false | |
vb.customize ["modifyvm", :id, "--cpus", "2"] | |
vb.customize ["modifyvm", :id, "--memory", "512"] | |
end | |
$script = <<SCRIPT | |
yum -y install tcpdump | |
ip route del default | |
ip route add default dev eth1 via 192.168.8.254 | |
SCRIPT | |
config.vm.provision "shell", inline: $script | |
end | |
end | |
[ :rt ].each do |sym| | |
config.vm.define sym do |config| | |
config.vm.box = sym.to_s | |
config.vm.hostname = sym.to_s | |
config.vm.box_url = "https://dl.dropboxusercontent.com/u/423294/box/c6.box" | |
config.vm.network :private_network, ip: "10.0.0.254" | |
config.vm.network :private_network, ip: "192.168.8.254" | |
config.vm.provider :virtualbox do |vb| | |
vb.gui = false | |
vb.customize ["modifyvm", :id, "--cpus", "2"] | |
vb.customize ["modifyvm", :id, "--memory", "512"] | |
end | |
$script = <<SCRIPT | |
yum -y install tcpdump | |
ip route add 172.16.0.0/24 dev eth2 | |
sysctl -w net.ipv4.ip_forward=1 | |
iptables -F | |
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE | |
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE | |
SCRIPT | |
config.vm.provision "shell", inline: $script | |
end | |
end | |
[ :lb ].each do |sym| | |
config.vm.define sym do |config| | |
config.vm.box = sym.to_s | |
config.vm.hostname = sym.to_s | |
config.vm.box_url = "https://dl.dropboxusercontent.com/u/423294/box/c6.box" | |
config.vm.network :private_network, ip: "192.168.8.10" | |
config.vm.provider :virtualbox do |vb| | |
vb.gui = false | |
vb.customize ["modifyvm", :id, "--cpus", "2"] | |
vb.customize ["modifyvm", :id, "--memory", "512"] | |
end | |
$script = <<SCRIPT | |
yum -y install tcpdump | |
yum -y install keepalived ipvsadm | |
iptables -F | |
iptables -t mangle -A PREROUTING -d 172.16.0.100 -j MARK --set-mark 1 | |
ip rule add prio 100 fwmark 1 table 100 | |
ip route add local 0/0 dev lo table 100 | |
sysctl -w net.ipv4.conf.eth1.rp_filter=0 | |
ip route del default | |
ip route add default dev eth1 via 192.168.8.254 | |
cat <<FIN >/etc/keepalived/keepalived.conf | |
global_defs { | |
router_id LVS_DEVEL | |
} | |
vrrp_instance VI_1 { | |
state MASTER | |
interface eth1 | |
virtual_router_id 51 | |
priority 100 | |
advert_int 1 | |
virtual_ipaddress { | |
172.16.0.100 | |
} | |
} | |
virtual_server 172.16.0.100 80 { | |
delay_loop 6 | |
lb_algo rr | |
lb_kind DR | |
nat_mask 255.255.255.0 | |
protocol TCP | |
real_server 192.168.8.101 80 { | |
weight 1 | |
} | |
real_server 192.168.8.102 80 { | |
weight 1 | |
} | |
} | |
FIN | |
service keepalived start | |
SCRIPT | |
config.vm.provision "shell", inline: $script | |
end | |
end | |
[ :web1 ].each do |sym| | |
config.vm.define sym do |config| | |
config.vm.box = sym.to_s | |
config.vm.hostname = sym.to_s | |
config.vm.box_url = "https://dl.dropboxusercontent.com/u/423294/box/c6.box" | |
config.vm.network :private_network, ip: "192.168.8.101" | |
config.vm.provider :virtualbox do |vb| | |
vb.gui = false | |
vb.customize ["modifyvm", :id, "--cpus", "2"] | |
vb.customize ["modifyvm", :id, "--memory", "512"] | |
end | |
$script = <<SCRIPT | |
yum -y install tcpdump | |
yum -y install httpd | |
service httpd start | |
iptables -F | |
iptables -t nat -A PREROUTING -d 172.16.0.100 -j REDIRECT | |
ip route del default | |
ip route add default dev eth1 via 192.168.8.254 | |
SCRIPT | |
config.vm.provision "shell", inline: $script | |
end | |
end | |
[ :web2 ].each do |sym| | |
config.vm.define sym do |config| | |
config.vm.box = sym.to_s | |
config.vm.hostname = sym.to_s | |
config.vm.box_url = "https://dl.dropboxusercontent.com/u/423294/box/c6.box" | |
config.vm.network :private_network, ip: "192.168.8.102" | |
config.vm.provider :virtualbox do |vb| | |
vb.gui = false | |
vb.customize ["modifyvm", :id, "--cpus", "2"] | |
vb.customize ["modifyvm", :id, "--memory", "512"] | |
end | |
$script = <<SCRIPT | |
yum -y install tcpdump | |
yum -y install httpd | |
service httpd start | |
iptables -F | |
iptables -t nat -A PREROUTING -d 172.16.0.100 -j REDIRECT | |
ip route del default | |
ip route add default dev eth1 via 192.168.8.254 | |
SCRIPT | |
config.vm.provision "shell", inline: $script | |
end | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
network diagram
https://cacoo.com/diagrams/yEH7TUJ3crv4OMG9