networkのプライベート検証環境
プライベート用の検証環境を作った話
最近はメーカがクラウドベースの検証サービスをいろいろ出しているみたいだけど、まぁ勉強ということで
ざっくりできたこと
- DigitalOcean に droplet 立てる
- ansible で 基本設定と kvm 、vagrant 入れる
- vagrant-libvirtd で kvm 上に vyos を複数台立てて相互接続
上記の採用理由
- プライベート用なので費用はできるだけ抑えたい
- ある程度スケールして欲しい
- DigitalOcean 安くて kvm 動く。スケールもする(お金かかるけど)
- droplet のスナップショット使わずになぜ ansible?
- ansible やってみたかった
- いつでもDigitalOcean やめれるように
- vyos は一番手軽に使えるソフトウェアルータなので。Vagrant の Box もあるし
Vagrantファイル
もっと良い書き方あると思うけどわからなかった...
# Vagrantfile for Vagrant version 2.0.0 VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.box = "higebu/vyos" ## vyos01 config.vm.define :vyos01 do |vyos| vyos.vm.host_name = "vyos01" vyos.vm.network "private_network", ip: "192.168.10.101", libvirt__netmask: "255.255.255.0", libvirt__network_name: "Vlan10", libvirt__forward_mode: "none" vyos.vm.network "private_network", ip: "192.168.20.101", libvirt__netmask: "255.255.255.0", libvirt__network_name: "Vlan20", libvirt__forward_mode: "none" end ## vyos02 config.vm.define :vyos02 do |vyos| vyos.vm.host_name = "vyos02" vyos.vm.network "private_network", ip: "192.168.10.102", libvirt__netmask: "255.255.255.0", libvirt__network_name: "Vlan10", libvirt__forward_mode: "none" vyos.vm.network "private_network", ip: "192.168.40.102", libvirt__netmask: "255.255.255.0", libvirt__network_name: "Vlan40", libvirt__forward_mode: "none" end ## vyos03 config.vm.define :vyos03 do |vyos| vyos.vm.host_name = "vyos03" vyos.vm.network "private_network", ip: "192.168.20.103", libvirt__netmask: "255.255.255.0", libvirt__network_name: "Vlan20", libvirt__forward_mode: "none" vyos.vm.network "private_network", ip: "192.168.30.103", libvirt__netmask: "255.255.255.0", libvirt__network_name: "Vlan30", libvirt__forward_mode: "none" end ## vyos04 config.vm.define :vyos04 do |vyos| vyos.vm.host_name = "vyos04" vyos.vm.network "private_network", ip: "192.168.30.104", libvirt__netmask: "255.255.255.0", libvirt__network_name: "Vlan30", libvirt__forward_mode: "none" vyos.vm.network "private_network", ip: "192.168.40.104", libvirt__netmask: "255.255.255.0", libvirt__network_name: "Vlan40", libvirt__forward_mode: "none" vyos.vm.network "private_network", ip: "192.168.50.104", libvirt__netmask: "255.255.255.0", libvirt__network_name: "Vlan50", libvirt__forward_mode: "none" end config.vm.provider :libvirt do |v| v.memory = 128 end end
やった内容はまた後ほど