おりそ.doc

自分のしたことをアウトプットする場所

Vagrant+VirtualboxでVyOSを複数台作る

前提

VyOSルーター3台を作成+疎通できるようにする(端同士のルーターは疎通出来なくてよいとする)

環境

構成図

今回はPC部分無し。

真ん中のルーター三台を作成する。

左から「vyos1」「vyos2」「vyos3」とする。

Vagrant box 取ってくる

この辺を取ってくる。

Vagrant box vyos/current - Vagrant Cloud

下記コマンドで初期化+Vagrantfile作成

$vagrant init vyos/current

Vagrantfileがあるか確認。

$ ls -al
total 16
drwxr-xr-x 1 orin 197121    0 Mar 10 16:34 ./
drwxr-xr-x 1 orin 197121    0 Mar  9 23:49 ../
drwxr-xr-x 1 orin 197121    0 Mar 10 02:08 .vagrant/
-rw-r--r-- 1 orin 197121 4390 Mar 10 08:25 Vagrantfile

Vagrantfileをいじる

今回は三つ作りたいので三台分の設定を書く。

$vim Vagrantfile

以下、設定内容。

Vagrant.configure("2") do |config|
  # The most common configuration options are documented and commented below.
  # For a complete reference, please see the online documentation at
  # https://docs.vagrantup.com.

  # Every Vagrant development environment requires a box. You can search for
  # boxes at https://vagrantcloud.com/search.
  config.vm.box = "vyos/current"

  config.vm.define :vyos1 do | vyos1 |
    vyos1.vm.hostname = "vyos1"
    vyos1.vm.network :private_network, ip: "192.168.0.1" , virtualbox__intnet: "intnet1"
    vyos1.vm.network :private_network, ip: "192.168.1.254" , virtualbox__intnet: "intnet2"
    vyos1.ssh.password= "vyos1"
  end

  config.vm.define :vyos2 do | vyos2 |
    vyos2.vm.hostname = "vyos2"
    vyos2.vm.network :private_network, ip: "192.168.1.1" , virtualbox__intnet: "intnet2"
    vyos2.vm.network :private_network, ip: "192.168.2.254" , virtualbox__intnet: "intnet1"
    vyos2.ssh.password= "vyos2"
  end

  config.vm.define :vyos3 do | vyos3 |
    vyos3.vm.hostname = "vyos3"
    vyos3.vm.network :private_network, ip: "192.168.2.1" , virtualbox__intnet: "intnet1"
    vyos3.vm.network :private_network, ip: "192.168.3.254" , virtualbox__intnet: "intnet2"
    vyos3.ssh.password= "vyos3"
  end
.
.
(中略)
.
.
end

ipアドレスとインターフェースをきちんと書いてみた。

また、鍵認証はうまくいかなかったので、パスワード認証にしてみた。

VM起動

下記コマンドを実行して起動する。

$vagrant up vyos1

$vagrant up vyos2

$vagrant up vyos3

・順に起動したらvyos3だけ上手くいかなかったので追記

先にvyos3を起動してみる。

パスワードを求められるので、設定したパスワードを記入してみて、ダメだったら「vyos」(初期パスワード)を記入。

そしたら起動するはず。

起動したか確認

確認コマンドは以下。

$ vagrant status
Current machine states:

vyos1                     running (virtualbox)
vyos2                     running (virtualbox)
vyos3                     running (virtualbox)

vyos2でping確認

vyos2 にSSHログイン

$ vagrant ssh vyos2
Welcome to VyOS!

   ┌── ┐
   . VyOS 1.5-rolling-202403080726
   └ ──┘  current

 * Documentation:  https://docs.vyos.io/en/latest
 * Project news:   https://blog.vyos.io
 * Bug reports:    https://vyos.dev

You can change this banner using "set system login banner post-login" command.

VyOS is a free software distribution that includes multiple components,
you can check individual component licenses under /usr/share/doc/*/copyright
Last login: Sun Mar 10 06:37:25 2024 from 10.0.2.2
vyos@vyos2:~$

ping を回数制限して実行。

configure コマンドで実行モードになろう。

vyos@vyos2:~$ configure
[edit]
vyos@vyos2#

vyos1(192.168.1.254) と疎通できるか確認。

vyos@vyos2# ping 192.168.1.254 -c 3
PING 192.168.1.254 (192.168.1.254) 56(84) bytes of data.
64 bytes from 192.168.1.254: icmp_seq=1 ttl=64 time=2.28 ms
64 bytes from 192.168.1.254: icmp_seq=2 ttl=64 time=2.32 ms
64 bytes from 192.168.1.254: icmp_seq=3 ttl=64 time=1.98 ms

--- 192.168.1.254 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2099ms
rtt min/avg/max/mdev = 1.977/2.194/2.321/0.154 ms
[edit]

vyos3(192.168.2.1) と疎通できるか確認。

vyos@vyos2# ping 192.168.2.1 -c 3
PING 192.168.2.1 (192.168.2.1) 56(84) bytes of data.
64 bytes from 192.168.2.1: icmp_seq=1 ttl=64 time=1.52 ms
64 bytes from 192.168.2.1: icmp_seq=2 ttl=64 time=3.08 ms
64 bytes from 192.168.2.1: icmp_seq=3 ttl=64 time=2.65 ms

--- 192.168.2.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2009ms
rtt min/avg/max/mdev = 1.520/2.414/3.075/0.656 ms

最後に(感想)

ひとつのVgrantfileで複数台のVMを作成できることを知った。

vyos3 がうまく起動できない謎は残ったままになってしまって残念。

久しぶりにルーター触れて楽しかった。