VyOS 1.4.x (Sagitta) のビルド

2024/04/07

ルーターとして VyOS – Open source router and firewall platform を利用し、他に無線AP をたてて無線利用をしている。

古いバージョンを使っており、更新したく、この更新の際の資料を整理がてらブログに書き出すこととする。

本記事は Build VyOS — VyOS 1.4.x (sagitta) documentation を参照し整理している。

環境は Debian on Windows11 にて Docker コンテナ内でビルドを行う。 ビルドは Debian でしか進まないため、Debian を利用してビルドをすること。 最初 CentOS 9 Stream で行い進まずはまってしまった。

なお、Debian における KVM の構築は KVM - Debian Wiki を参考すること。

1. git clone

対応するバージョンのビルド環境を clone する。

$ git clone -b sagitta https://github.com/vyos/vyos-build.git vyos-build-sagitta
$ cd vyos-build-sagitta

参考: Build VyOS — VyOS 1.4.x (sagitta) documentation

1. Docker コンテナの起動

ビルドのためのコンテナを起動する。

$ docker pull docker.io/vyos/vyos-build:sagitta
$ docker run --rm -it \
    -v "$(pwd):/mnt" -w /mnt \
    --privileged \
    --sysctl net.ipv6.conf.lo.disable_ipv6=0 \
    -e GOSU_UID=$(id -u) -e GOSU_GID=$(id -g) \
    docker.io/vyos/vyos-build:sagitta \
    bash

コマンドのオプションなどは Tips and Tricks — Build VyOS — VyOS 1.4.x (sagitta) documentation を流用している。

資料によると、 --sysctl net.ipv6.conf.lo.disable_ipv6=0 については、 指定しないとビルド時のテストで失敗するようだ。

3. ビルド

ビルドを進める。 custom-package の指定でカスタムパッケージを追加することができる。

$ sudo make clean
$ sudo ./scripts/build-vyos-image iso \
    --build-by blah@example.com \
    --version 1.4.2024_03_23 \
    --architecture amd64 \
    --build-type release \
    --custom-package vim

4. 動作検証

検討した設定などが VyOS 上で有効か確認を行うため、仮想環境を起動する。 network のしても実はできるが動かなかったので試していない。

環境構築と起動まで。起動時は少し時間がかかるので待つこと。

$ virt-install -n vyos_r1 \
    --memory 4096 \
    --vcpus 2 \
    --cdrom build/live-image-amd64.hybrid.iso \
    --os-variant debian10 \
    --graphics vnc \
    --hvm \
    --virt-type kvm \
    --disk path=/tmp/vyos_r1.qcow2,bus=virtio,size=8 \
    --noautoconsole
$ virsh console vyos_r1
Connected to domain vyos_r1
Escape character is ^]

実行後の環境破棄手順。

$ virsh destroy vyos_r1
$ virsh undefine vyos_r1