メモのページ - チラシの裏メモ 3枚目

通信技術や気になった事を黙々とメモし続ける

Dockerを使ってVyOS 1.4.0-epa2をビルドした

時々見ているVyOS Network Blogの2024年3月15日の記事にて、VyOS 1.4.0-epa2がリリースされた旨の記事が掲載されていた。epaとは、early production accessの略称である。
VyOS Network Blogは通常であれば斜め読みする程度で、必要であれば無償版のRolling Release版のisoファイルをダウンロードし使用するのだが、今回は何故かビルド欲が湧いてきた。はてなブログやqiita等の過去の記事を参考に、VirtualBox内で動作するUbuntu Linuxの中でビルドしてみた。
VyOSはサブスクリプション契約無しの個人利用のため、バージョン1.2以降は無償でダウンロードが可能なRolling Release版しか利用していない。
たまには商用版やそれに最も近いバージョンを使用したいという事で、今回はVyOS 1.4.0-epa2をDockerを使ってソースからビルドした。
https://blog.vyos.io/vyos-1.4.0-epa2-release VyOS Network Blog


当方の環境
ホスト機:macOS 14.4.1 / MacBook Pro 2020 / RAM: 16GB / CPU: Intel Core i5 2.0GHz
仮想化環境:Oracle VirtualBox 7.0.14
ゲスト機:Ubuntu Linux 22.04.1 LTS
ビルド対象:VyOS 1.4.0-epa2 amd64


VyOS 1.4のビルドの大まかな流れ
ビルドの大まかな流れは以下のとおり。Ubuntu Linuxのデプロイから始めて、ゴールはVirtualBoxにVyOSをデプロイし動作確認するところまでとする。VyOSの動作確認の際の対向先として、Cisco CSR1000vを使用する。
・Ubuntu Linuxのデプロイ
・Ubuntu LinuxにてVyOSのビルドに必要なパッケージをインストール
・Ubuntu LinuxにてDockerをインストール
・VyOSのソースコードの取得
・VyOSのビルド
・VyOSのisoファイルの吸い出し
・デプロイ後のVyOSの動作確認


VyOSのビルド環境の構築

1.Ubuntu Linuxのデプロイ
VyOSのビルド環境を作る為、まずはVirtualBoxにUbuntu Linuxをデプロイを実施。
尚、VirtualBoxにUbuntu Linuxをデプロイする手順に関しては、当記事では割愛する。
 
母艦となるUbuntu Linuxは以下の条件でVirtualBoxにてデプロイした。
・Ubuntu Linux 22.04.1 LTS
・Mem: 4096MB
・HDD: 132GB
最初のうちはUbuntu Linuxの仮想HDDの容量を32BGや64GBでVyOSをビルドしたが、VyOSのビルド中に空き容量が無い事を示すログが吐き出され正常にビルドが完了しなかった。
128GBや132GBなど大容量に設定した際は正常にビルドが完了した為、当記事の作成時は132GBでデプロイした。

Ubuntu Linuxのデプロイが完了したら、ターミナルを立ち上げてsshでUbuntu Linuxにログイン。
IPアドレスは事前にip add sコマンドで確認する。

apple@macbook ~ % ssh hechtia@192.168.3.29
hechtia@192.168.3.29's password: 
Welcome to Ubuntu 22.04.1 LTS (GNU/Linux 5.15.0-101-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Tue Apr  2 02:19:58 PM UTC 2024

  System load:             0.39697265625
  Usage of /:              10.5% of 63.42GB
  Memory usage:            5%
  Swap usage:              0%
:
省略
:
hechtia@jpmtkvmsv99:~$ 


2.VyOSのビルドに必要なパッケージをインストール
続けて、aptコマンドまたはapt-getコマンドでVyOSのビルドに必要なパッケージをインストールする。

hechtia@jpmtkvmsv99:~$ sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
[sudo] password for hechtia: 
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
lsb-release is already the newest version (11.1.0ubuntu4).
lsb-release set to manually installed.
gnupg is already the newest version (2.2.27-3ubuntu2.1).
gnupg set to manually installed.
The following additional packages will be installed:
  libcurl4
The following NEW packages will be installed:
  apt-transport-https
:
省略
:
hechtia@jpmtkvmsv99:~$ 


各パッケージのインストールが完了したら、sudo apt update実行時にDockerのパッケージの信頼性を検証出来るようにする為、Dockerで公式に公開されている署名鍵をダウンロードする。

hechtia@jpmtkvmsv99:~$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
hechtia@jpmtkvmsv99:~$ 


Dockerの署名鍵のダウンロード後、Dockerの最新版かつ安定版がインストールされるようにリポジトリを追加する。

hechtia@jpmtkvmsv99:~$ echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
hechtia@jpmtkvmsv99:~$ 


aptのリポジトリおよびパッケージの更新を実施。

hechtia@jpmtkvmsv99:~$ sudo apt-get update
Get:1 file:/cdrom jammy InRelease
Ign:1 file:/cdrom jammy InRelease
Get:2 file:/cdrom jammy Release
Err:2 file:/cdrom jammy Release
  File not found - /cdrom/dists/jammy/Release (2: No such file or directory)
Get:3 https://download.docker.com/linux/ubuntu jammy InRelease [48.8 kB]
Get:4 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages [29.1 kB]       
Hit:5 http://jp.archive.ubuntu.com/ubuntu jammy InRelease                                       
Hit:6 http://jp.archive.ubuntu.com/ubuntu jammy-updates InRelease
Hit:7 http://jp.archive.ubuntu.com/ubuntu jammy-backports InRelease
Hit:8 http://jp.archive.ubuntu.com/ubuntu jammy-security InRelease
Get:9 http://jp.archive.ubuntu.com/ubuntu jammy/main Translation-en [510 kB]
Get:10 http://jp.archive.ubuntu.com/ubuntu jammy/restricted Translation-en [18.6 kB]
:
省略
:
hechtia@jpmtkvmsv99:~$ 


3.Dockerのパッケージをインストール
aptのリポジトリおよびパッケージの更新が完了したら、aptコマンドまたはapt-getコマンドでDockerのパッケージをインストールする。

hechtia@jpmtkvmsv99:~$ sudo apt-get install docker-ce docker-ce-cli containerd.io
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  docker-buildx-plugin docker-ce-rootless-extras docker-compose-plugin libltdl7 libslirp0 pigz slirp4netns
Suggested packages:
  aufs-tools cgroupfs-mount | cgroup-lite
The following NEW packages will be installed:
  containerd.io docker-buildx-plugin docker-ce docker-ce-cli docker-ce-rootless-extras docker-compose-plugin libltdl7
  libslirp0 pigz slirp4netns
0 upgraded, 10 newly installed, 0 to remove and 205 not upgraded.
Need to get 120 MB of archives.
After this operation, 429 MB of additional disk space will be used.
:
省略
:
hechtia@jpmtkvmsv99:~$


続いて、curlを使用してDocker composeをインストールする。

hechtia@jpmtkvmsv99:~$ sudo curl -L "https://github.com/docker/compose/releases/download/1.28.6/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 11.6M  100 11.6M    0     0  4845k      0  0:00:02  0:00:02 --:--:-- 5860k
hechtia@jpmtkvmsv99:~$ 


Docker composeのインストールの完了後、Docker composeに実行権限を付与しdockerサービスを再起動させる。

hechtia@jpmtkvmsv99:~$ sudo chmod +x /usr/local/bin/docker-compose
hechtia@jpmtkvmsv99:~$ 
hechtia@jpmtkvmsv99:~$ sudo systemctl restart docker


VyOSのisoをビルドする為のdocker imageをpullする。
VyOS 1.4をビルドしたい為、vyos/vyos-build:オプションはsagittaを指定する。
sagittaではなくcurrentを指定すると、当記事の作成時の段階ではVyOS 1.5のRolling Release版が降ってくる。

hechtia@jpmtkvmsv99:~$ sudo docker pull vyos/vyos-build:sagitta
sagitta: Pulling from vyos/vyos-build
71215d55680c: Pulling fs layer 
b0ebb4c3acd1: Pulling fs layer 
a9d55640641f: Pulling fs layer 
6f868b089cad: Pulling fs layer 
ea5e727de434: Pulling fs layer 
22151fd335df: Pull complete 
49eb335eca47: Pull complete 
f6f2f7566cf9: Pull complete 
:
省略
:
Digest: sha256:16708566760e89a7eb1a7d0c3d26f11643aee301317e0b1c1224feadbf79dea0
Status: Downloaded newer image for vyos/vyos-build:sagitta
docker.io/vyos/vyos-build:sagitta
hechtia@jpmtkvmsv99:~$


作業用ディレクトリを作成。作成後、作業用ディレクトリに移動する。
作業用ディレクトリ名は任意の文字列で良いが、自分の場合はvyos-1.4.0とした。

hechtia@jpmtkvmsv99:~$ mkdir vyos-1.4.0
hechtia@jpmtkvmsv99:~$ cd vyos-1.4.0
hechtia@jpmtkvmsv99:~/vyos-1.4.0$ 


VyOS 1.4のビルド

1.VyOSのソースコードの取得
VyOSのビルドの下準備が出来た。git cloneを実行し、VyOSのソースコードを取得する。

hechtia@jpmtkvmsv99:~/vyos-1.4.0$ git clone -b current --single-branch https://github.com/vyos/vyos-build
Cloning into 'vyos-build'...
remote: Enumerating objects: 11431, done.
remote: Counting objects: 100% (11430/11430), done.
remote: Compressing objects: 100% (4107/4107), done.
remote: Total 11431 (delta 6806), reused 11299 (delta 6763), pack-reused 1
Receiving objects: 100% (11431/11431), 7.49 MiB | 7.72 MiB/s, done.
Resolving deltas: 100% (6806/6806), done.
hechtia@jpmtkvmsv99:~/vyos-1.4.0$ 


2.VyOSのビルド
VyOSのソースコードの取得後、ビルド用のディレクトリvyos-buildに移動し、docker runコマンドを叩きVyOSのビルドを実行する。
今回はVyOS 1.4をビルドする為、vyos/vyos-build:オプションはsagittaを指定する。
docker runコマンドを叩いた後はDocker環境に移行する為、プロンプトが変化する。

hechtia@jpmtkvmsv99:~/vyos-1.4.0$ cd vyos-build
hechtia@jpmtkvmsv99:~/vyos-1.4.0/vyos-build$ 
hechtia@jpmtkvmsv99:~/vyos-1.4.0/vyos-build$ sudo docker run --rm -it --privileged -v $(pwd):/vyos -w /vyos vyos/vyos-build:sagitta bash
Current UID/GID: 1000/1000
vyos_bld@5abf82edb6e2:/vyos$ 


続けて、build-vyos-imageスクリプトを走らせ、VyOSのビルドの続きを実行する。
ファイル形式はiso、アーキテクチャはamd64、生成されるisoファイルのファイル名に付くバージョンの文字列は1.4.0-epa2を指定。
ビルドの完了まで長時間を要する。自分の環境では30分程で完了した。
VyOSのバージョン1.4の場合はbuild-vyos-imageスクリプトを使用するが、他のバージョンでは異なるとの情報が有るので要注意。

vyos_bld@5abf82edb6e2:/vyos$ sudo ./build-vyos-image iso --architecture amd64 --build-type release --version 1.4.0-epa2
I: Checking if packages required for VyOS image build are installed
build/config
I: Cleaning the build workspace
[2024-04-02 21:36:01] lb clean 
P: Cleaning chroot
I: Setting up additional APT entries
:
省略
:
P: Saving caches...
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
[2024-04-02 22:00:36] lb source 
P: Source stage disabled, skipping
P: Build completed successfully
vyos_bld@5abf82edb6e2:/vyos$ 


ビルドの際に吐き出されるログの最終行にて P: Build completed successfully が出力され、ビルドは成功で終了した。
lsコマンドを叩きbuildディレクトリの中を確認したところ、VyOS 1.4.0-epa2のisoファイルが生成された事が分かる。

vyos_bld@5abf82edb6e2:/vyos$ ls -la build
total 925268
drwxr-xr-x  9 root     root          4096 Apr  2 22:00 .
drwxrwxr-x 12 vyos_bld vyos_bld      4096 Apr  2 21:36 ..
drwxr-xr-x  2 root     root          4096 Apr  2 21:36 auto
drwxr-xr-x  7 root     root          4096 Apr  2 21:36 binary
-rw-r--r--  1 root     root           930 Apr  2 22:00 binary.modified_timestamps
drwxr-xr-x  2 root     root          4096 Apr  2 22:00 .build
drwxr-xr-x  6 root     root          4096 Apr  2 21:59 cache
drwxr-xr-x 18 root     root          4096 Apr  2 22:00 chroot
-rw-r--r--  1 root     root       6247396 Apr  2 21:44 chroot.files
-rw-r--r--  1 root     root         20742 Apr  2 21:43 chroot.packages.install
-rw-r--r--  1 root     root         20586 Apr  2 21:44 chroot.packages.live
drwxrwxr-x 21 root     root          4096 Apr  2 21:36 config
-rw-r--r--  1 root     root         18237 Apr  2 22:00 live-image-amd64.contents
-rw-r--r--  1 root     root       6247396 Apr  2 21:44 live-image-amd64.files
-rw-r--r--  1 root     root     466616320 Apr  2 21:36 live-image-amd64.hybrid.iso
-rw-r--r--  1 root     root       1595106 Apr  2 22:00 live-image-amd64.hybrid.iso.zsync
-rw-r--r--  1 root     root         20586 Apr  2 21:44 live-image-amd64.packages
drwxr-xr-x  3 root     root          4096 Apr  2 21:36 local
-rw-r--r--  1 root     root     466616320 Apr  2 22:00 vyos-1.4.0-epa2-amd64.iso
vyos_bld@5abf82edb6e2:/vyos$ 


Docker環境から抜けてbuildディレクトリ内のファイルを確認すると、VyOSのisoファイルが自環境にも有る事が確認出来る。

vyos_bld@5abf82edb6e2:~$ exit
hechtia@jpmtkvmsv99:~/vyos-1.4.0/vyos-build$ 
hechtia@jpmtkvmsv99:~/vyos-1.4.0/vyos-build$ ls build
auto                        chroot                   config                       live-image-amd64.hybrid.iso.zsync
binary                      chroot.files             live-image-amd64.contents    live-image-amd64.packages
binary.modified_timestamps  chroot.packages.install  live-image-amd64.files       local
cache                       chroot.packages.live     live-image-amd64.hybrid.iso  vyos-1.4.0-epa2-amd64.iso
hechtia@jpmtkvmsv99:~/vyos-1.4.0/vyos-build$ 


 
生成したisoファイルの吸い出し

1.VyOSのisoファイルの吸い出し
上記にて生成したVyOSのisoファイルをVirtualBoxのゲストOSとして動かしたい為、まずはvyos-1.4.0-epa2-amd64.isoをFTPやSFTP等を使用しUbuntu Linuxの中から吸い出す。
今回はSFTPを使用して、vyos-1.4.0-epa2-amd64.isoを自PCの適当なフォルダ内に保存する。

まずは、Ubuntu LinuxをSFTPサーバにする為、Ubuntu Linuxの/etc/ssh/sshd_confファイルを編集する。
自分の場合、自アカウント(hechtia)のホームディレクトリをSFTPサーバの公開ディレクトリとして使用する為に以下の内容に編集した。

hechtia@jpmtkvmsv99:~$ sudo vi /etc/ssh/sshd_conf
:
省略
:
# override default of no subsystems
#Subsystem	sftp	/usr/libexec/openssh/sftp-server
Subsystem	sftp	internal-sftp

# Example of overriding settings on a per-user basis
Match User hechtia
	X11Forwarding no
	AllowTcpForwarding no
#	PermitTTY no
#	ForceCommand cvs server
	ChrootDirectory /home/hechtia
	ForceCommand internal-sftp


/etc/ssh/sshd_confファイルの編集後はUbuntu Linuxのsshdサービスを再起動させ、上記の設定を読み込ませる。
その後、vyos-1.4.0-epa2-amd64.isoを上記で設定した公開ディレクトリ内に移動させる。

hechtia@jpmtkvmsv99:~$ sudo systemctl restart ssh
hechtia@jpmtkvmsv99:~$
hechtia@jpmtkvmsv99:~$ mv vyos-1.4.0/vyos-build/vyos-1.4.0-epa2-amd64.iso /home/hechtia/vyos-1.4.0-epa2-amd64.iso

この後はSFTPクライアントもしくはSFTP接続が対応可能なFTPクライアントを使用し、Ubuntu Linux内に保存されているVyOSのisoファイルを吸い出し、自PCの適当なフォルダ内に保存する。


動作確認

1.デプロイ後のVyOSの動作確認
ビルドで生成されたVyOSのisoファイルを使用しVirtualBoxにデプロイ。その後は前回の記事にて扱ったCisco CSR1000vを使用しVyOSとの間でOSPFのネイバを張らせてみた。
当記事ではVyOSのデプロイ手順とCisco CSR1000vの設定に関しては割愛する。

以下は、VyOSの設定内容。
各インターフェースにIPアドレスとディスクリプション、OSPFとデフォルトルート、ホスト名やNTPサーバ等の設定を投入。
投入時に弾かれたコマンドや、commitコマンドやsaveコマンド実行時のエラーの出力は発生せず、正常に設定投入が出来た。

vyos@jpmtkvmrt99:~$ show configuration 
interfaces {
    ethernet eth0 {
        address 192.168.3.254/24
        description To_jpmtkvmrt98_ge1
        hw-id 08:00:27:7b:f1:cd
    }
    ethernet eth1 {
        address 192.168.56.1/24
        description To_jpmtkvmsw01_ge0/0/0
        hw-id 08:00:27:a5:48:db
    }
    ethernet eth2 {
        address 192.168.57.1/24
        description To_jpmtkvmsw02_ge0/0/0
        hw-id 08:00:27:a5:e4:a8
    }
    loopback lo {
        address 10.1.1.99/32
        description Polling/Monitoring
    }
}
protocols {
    ospf {
        area 0 {
            network 10.1.1.99/32
            network 192.168.3.0/24
        }
        interface eth0 {
            dead-interval 12
            hello-interval 3
        }
        redistribute {
            connected {
            }
        }
    }
    static {
        route 0.0.0.0/0 {
            next-hop 192.168.3.1 {
                distance 100
            }
        }
    }
}
service {
    ntp {
        allow-client {
            address 0.0.0.0/0
            address ::/0
        }
        server ntp.jst.mfeed.ad.jp {
        }
        server ntp.nict.jp {
            prefer
        }
    }
    ssh {
    }
}
system {
    config-management {
        commit-revisions 100
    }
    conntrack {
        modules {
            ftp
            h323
            nfs
            pptp
            sip
            sqlnet
            tftp
        }
    }
    console {
        device ttyS0 {
            speed 115200
        }
    }
    domain-name localhost
    host-name jpmtkvmrt99
    login {
        user vyos {
            authentication {
                encrypted-password ****************
                plaintext-password ****************
            }
        }
    }
    syslog {
        global {
            facility all {
                level info
            }
            facility local7 {
                level debug
            }
        }
    }
}
vyos@jpmtkvmrt99:~$ 
<||


対向先のCisco CSR1000vの設定後、VyOSにてshow interfacesコマンドを叩く。
設定内容が正常に反映されているように見え、各インターフェースがリンクアップしている事から、問題は無さそうである。

>||
vyos@jpmtkvmrt99:~$ show interfaces 
Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down
Interface    IP Address        MAC                VRF        MTU  S/L    Description
-----------  ----------------  -----------------  -------  -----  -----  ----------------------
eth0         192.168.3.254/24  08:00:27:7b:f1:cd  default   1500  u/u    To_jpmtkvmrt98_ge1
eth1         192.168.56.1/24   08:00:27:a5:48:db  default   1500  u/u    To_jpmtkvmsw01_ge0/0/0
eth2         192.168.57.1/24   08:00:27:a5:e4:a8  default   1500  u/u    To_jpmtkvmsw02_ge0/0/0
lo           127.0.0.1/8       00:00:00:00:00:00  default  65536  u/u    Polling/Monitoring
             10.1.1.99/32
             ::1/128
vyos@jpmtkvmrt99:~$ 


show ip routeコマンドを叩き、VyOSが持っているルーティングテーブルを確認する。
WANのネットワーク192.168.3.0/24と、Cisco CSR1000vのLAN側のネットワーク192.168.156.0/24と192.168.157.0/24をOSPFを介して学習している事が分かる。
これらのネットワークをOSPFを介して学習しているという事は、OSPFのHelloとDeadのインターバルの設定が正常に反映されていると言ってもいいだろう。

vyos@jpmtkvmrt99:~$ show ip route
Codes: K - kernel route, C - connected, S - static, R - RIP,
       O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
       T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
       f - OpenFabric,
       > - selected route, * - FIB route, q - queued, r - rejected, b - backup
       t - trapped, o - offload failure

S>* 0.0.0.0/0 [100/0] via 192.168.3.1, eth0, weight 1, 00:16:43
O>* 10.1.1.98/32 [110/2] via 192.168.3.253, eth0, weight 1, 00:03:26
O   10.1.1.99/32 [110/0] is directly connected, lo, weight 1, 00:16:42
C>* 10.1.1.99/32 is directly connected, lo, 00:16:43
O   192.168.3.0/24 [110/1] is directly connected, eth0, weight 1, 00:16:19
C>* 192.168.3.0/24 is directly connected, eth0, 00:31:20
C>* 192.168.56.0/24 is directly connected, eth1, 00:31:21
C>* 192.168.57.0/24 is directly connected, eth2, 00:31:20
O>* 192.168.156.0/24 [110/20] via 192.168.3.253, eth0, weight 1, 00:03:25
O>* 192.168.157.0/24 [110/20] via 192.168.3.253, eth0, weight 1, 00:03:25
vyos@jpmtkvmrt99:~$ 


show ip ospf neighborコマンドを叩く。
VyOS側はOSPFネイバ(Cisco CSR1000v)を認識出来ている事と、OSPFネイバ関係を確立出来ている事が確認出来た。

vyos@jpmtkvmrt99:~$ show ip ospf neighbor 

Neighbor ID   Pri State         Up Time  Dead Time Address         Interface             RXmtL RqstL DBsmL
10.1.1.98       1 Full/Backup   4m38s      10.344s 192.168.3.253   eth0:192.168.3.254        0     0     0

vyos@jpmtkvmrt99:~$ 


最後に、今後も様々な設定の投入と動作確認をしたい為、VyOSを初期化する。
初期化の際は設定モードにてloadコマンドで初期設定ファイルを読み込ませcommitコマンドでconfigへの反映およびsaveコマンドで保存し、VyOSを再起動させる。
VyOSの初期化の流れは大まかに以下のとおり。
① load /opt/vyatta/etc/config.boot.defaultコマンドを叩き、初期設定ファイルを読み込ませる
② commitコマンドを叩き初期設定を反映させる
③ saveコマンドを叩き設定内容をディスクに保存
④ rebootコマンドでVyOSを再起動
⑤ 再起動の完了後、VyOSにログイン

vyos@jpmtkvmrt99:~$ configure
[edit]
vyos@jpmtkvmrt99# load /opt/vyatta/etc/config.boot.default
Loading configuration from '/opt/vyatta/etc/config.boot.default'
Load complete. Use 'commit' to make change effective.
[edit]
vyos@jpmtkvmrt99# commit
[edit]
vyos@jpmtkvmrt99# save
[edit]
vyos@jpmtkvmrt99# exit
exit
vyos@jpmtkvmrt99:~$ reboot
Are you sure you want to reboot this system? [y/N] y
:
再起動
:
Welcome to VyOS - vyos tty1

vyos login: vyos
Password:
Welcome to VyOS!

   ┌── ┐
   . VyOS 1.4.0-epa2
   └ ──┘  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
vyos@vyos:~$ 

 
 
今回はここまで。
VirtualBoxの中で動作するUbuntu Linuxの中でDockerを使用しVyOSをビルドする事が出来た。また、ビルドで生成されたVyOSのisoファイルをUbuntu Linuxから吸い出して、VirtualBoxにデプロイし他のゲストOSとの間でOSPFのネイバ関係を確立するところまで確認する事が出来た。
VyOSのサブスクリプション契約が無くても、VyOSをソースからビルドする事でRolling Release版ではないバージョンを使用する事が出来たが、常用可能か判断する為に他の設定や消費帯域などの確認も進めたい。


たまにコマンドの構文が大きく変わる点は残念であるものの、Rolling Release版や今回のような自家ビルド版であれば無償で利用が可能であり、使い勝手が非常に良く、ちょっとした動作確認程度であれば低スペックな環境でも機敏に動作するので、VyOSはお気に入りのソフトウェアルータのうちの一つである。
しかし懸念点が1つ。
自分でビルドしたVyOSは公開せず自分の環境で動かす事に留めているが、ユーザがビルドした野良VyOSが公開されてしまうのではないか、改変されたVyOSが製品版のVyOSと同じ名称で公開されてしまう可能性が有るのではないか心配している。それらを商用環境で利用するユーザはいないだろうけど。
ソフトウェアでよく見かける公開方式、例えばRolling Release版をコミュニティ版として無償で公開、製品版は誰でもビルド可能な状態で公開するのではなくサブスクリプション契約したユーザのみ公開という形で良いのではないかと思う。
 
 
参照サイト
https://vyos.io/ VyOS - Open source router and firewall platform
https://blog.vyos.io/vyos-1.4.0-epa2-release VyOS Platform Blog
https://docs.vyos.io/en/sagitta/contributing/build-vyos.html VyOS User Guide
https://qiita.com/shihou-ono/items/2a902183111f4dce2193 vyosをまたisoからbuildした
https://www2.filewo.net/wordpress/2022/09/11/2855/ EC2にVyOS isoイメージビルド用のマシンを作成する
https://yokohama539.hatenablog.com/entry/2023/08/19/164003 VyOSを使ってみる① (VyOSビルド)


関連記事
https://debslink.hatenadiary.jp/entry/20220213/1644755282 DebianにFRRを実装しVyOSごっこをやってみた
https://debslink.hatenadiary.jp/entry/20220211/1644579656 VyOSでIPsec VTI構成を組んでみた
https://debslink.hatenadiary.jp/entry/20220131/1643632170 VyOSの中に保存されているファイルを吸い出す
https://debslink.hatenadiary.jp/entry/20220130/1643510508 VyOSでGRE over IPsec VPN構成を組んでみた